转载自:

http://www.jianshu.com/p/f37a96f83d51

前言

博客从wordpres迁移到Jekyll上来了,整个过程还是很顺利的。Jekyll是什么?它是一个简单静态博客生成工具,为什么是静态,因为它是不需要数据库的,通过markdown编写静态文件,生成Html页面,它的优点是提升了页面的响应速度,并且让博主可以只专注于写文章,不用再去考虑如何排版(markdown语法很好的解决了排版问题)。那么为什么要迁移到Jekyll呢?不是因为跟风,也不是为了提高自我,完全就是瞎折腾!

本地搭建Jekyll

本次安装可以MacOS或Linux下进行。

使用gem安装Jekyll

gem install jekyll

这样就把jekyll安装完成了。
如果本地没有gem,那么需要先安装Ruby和gem,这里就不介绍了。

使用Jekyll创建你的博客站点

jekyll new blog  #创建你的站点

控制台可以看见类似 New jekyll site installed in /home/user/blog.的提示

开启Jekyll服务

cd blog         #进入blog目录,记得一定要进入创建的目录,否则服务无法开启
jekyll serve      #启动你的http服务

本地服务开启后,Jekyll服务默认端口是4000,所以我打开浏览器,输入:http://localhost:4000 即可访问

使用Jekyll写博文

我们进入blog目录后,会发现Jekyl的结构如下:

.
├ about.md
├ _config.yml
├ css
│   └ main.scss
├ feed.xml
├ _includes
│   ├ footer.html
│   ├ header.html
│   ├ head.html
│   ├ icon-github.html
│   ├ icon-github.svg
│   ├ icon-twitter.html
│   └ icon-twitter.svg
├ index.html
├ _layouts
│   ├ default.html
│   ├ page.html
│   └ post.html
├ _posts
│   └ 2016-03-04-welcome-to-jekyll.markdown
└ _sass├ _layout.scss└ _syntax-highlighting.scss

我们进入_post目录,撰写的markdown语法的博文都放在这里。默认会有一篇测试文章:2016-03-04-welcome-to-jekyll.markdown.
拷贝测试博文

cp 2016-03-04-welcome-to-jekyll.markdown 2016-03-04-test.markdown

然后刷新一下浏览器、发现页面并没有变化.因为我们还没有通过Jekyll build去生成。

jekyll build

默认情况下,服务会以前台的方式挂起,如果希望用后台进程运行服务,我们可以使用 --detach参数,缩写参数为-B(应该是Background的首字母)

jekyll serve build --detach

或者

jekyll serve build -B

值得注意的是:如果用vagrant虚拟机去安装jekyll,那么启动服务时还需要加上-H参数,指定访问主机号为0.0.0.0,即jekyll serve build -B -H 0.0.0.0,否则vagrant下可能启动失败

再查看首页,发现已经有两篇文章了!因为没有更改标题,所以都是一样的。

好的,打开复制的 2016-03-04-test.markdown-test.markdown,可以看见开头有如下几个东东。

---
layout: post
title:  "Welcome to Jekyll!"
date: 2016-03-04 10:52:19 +0100 categories: jekyll update ---

layout表示使用的是post布局,title是文章标题,date是自动生成的日期,categories是该文章生成html文件后存放的目录,可以去_site/jekyll/update下找到对应日期下面的html文档。当然你也可以只设置jekyll单一的目录,甚至是更多级别的目录,用空格分开即可。头信息设置完成后就可以书写正文了。

如果每次都输入这些头信息,还要去整理格式,那么一定很烦躁,这种重复性的东西我们就把它自动化,通过Rakefile去解决,它类似shell这样的脚本,可以使用交互模式。以下是我的Rakefile,可以复制后命名为Rakefile,放在站点根目录直接使用,也可以修改为适合自己的Rakefile:

task :default => :newrequire 'fileutils' desc "创建新 post" task :new do puts "请输入要创建的 post URL:" @url = STDIN.gets.chomp puts "请输入 post 标题:" @name = STDIN.gets.chomp puts "请输入 post 子标题:" @subtitle = STDIN.gets.chomp puts "请输入 post 分类,以空格分隔:" @categories = STDIN.gets.chomp puts "请输入 post 标签:" @tag = STDIN.gets.chomp @slug = "#{@url}" @slug = @slug.downcase.strip.gsub(' ', '-') @date = Time.now.strftime("%F") @post_name = "_posts/#{@date}-#{@slug}.md" if File.exist?(@post_name) abort("文件名已经存在!创建失败") end FileUtils.touch(@post_name) open(@post_name, 'a') do |file| file.puts "---" file.puts "layout: post" file.puts "title: #{@name}" file.puts "subtitle: #{@subtitle}" file.puts "author: pizida" file.puts "date: #{Time.now}" file.puts "categories: #{@categories}" file.puts "tag: #{@tag}" file.puts "---" end exec "vi #{@post_name}" end

如何使用Rake,输入一下命令:

rake new

rake会启动交互模式,让你依次输入title,subtitle,author,categories,tag等信息,并为你创建好具有头信息的markdown文件。如下一样:

请输入要创建的 post URL:
testurl
请输入 post 标题:
testpost
请输入 post 子标题:
subtitle
请输入 post 分类,以空格分隔: jekyll 请输入 post 标签: 技术

我们查看_post目录,发现已经有一篇2016-03-05-testurl.md文章,打开看下

---
layout: post
title: testpost
subtitle: subtitle
author: pizida date: 2016-03-05 07:31:27 +0800 categories: jekyll tag: 技术 ---

已经为我们创建好头信息了。

本地搭建jekyll和写博文大致就是如此,有更多疑问可到官网https://jekyllrb.com/或中文镜像站http://jekyllcn.com/查阅资料。


使用Github pages服务生成个人博客

创建我们的仓库

我们repository name设置为username.github.com(这里的username是指你在Github上的用户名,我的用户名是engine-go,后面的username均指的是个人账户,不再做说明),选择Public仓库类型:

创建git仓库

为仓库创建Github Pages

创建仓库后,选择setting

创建Github Pages

点击Launch automatic page generator

生成pages

然后编辑下标题和描述,任意选择一个模板,点击Publish

如此,我们已经可以通过浏览器输入 http://username.github.io访问博客主页。那么我就访问engine-go.github.com。
如下图所示,就是你的博客首页。

将本地jekyll代码部署到Github上的仓库

前面我们已经详细地说明如何搭建Jekyll,我们可以在本地开发测试,推送代码到仓库,发布到线上。

克隆仓库到本地

请确保本地安装了git客户端,克隆你的username.github.com仓库到本地。

git clone https://github.com/username/username.github.com.git

此时你会看见当前存在username.github.com这个目录,我们启动jekyll服务(启动前确保其他目录下没有jekyll服务,可以ps aux|grep jekyll查看进程,有的话,用kill -9 进程号杀掉):

cd username.github.com
jekyll serve -B

现在我们打开<a href="localhost:4000">http://localhost:4000</a>,即可看见我们在Github上创建的主页,理论上和http://username.github.com 访问的应该是一模一样的。

拷贝本地的jekyll目录到版本库

删除username.github.com下面的示例文件(README.md,不要删除,绑定域名会用到):

rm -rf _site index.html params.json  stylesheets

拷贝本地blog(这个是前面本地搭建的blog,后续等同,不再说明)下的所有目录及文件到username.github.com

cp -r blog/* username.github.com

重启服务,就可以在本地看见jekyll的站点页面了。

本地Jekyll站点部署到Github Pages上(相当于线上环境)

git add --all               #添加到暂存区
git commit -m "提交jekyll默认页面" #提交到本地仓库
git push origin master           #线上的站点是部署在master下面的

稍等10分钟左右,Github Pages有一定时间缓存,我们刷新username.github.io看看,已经ok了!

现在已经可以在本地blog下写文章,然后通过git推送到远程仓库,大家可以通过http://username.github.io/访问你的站点了

为username.github.io绑定个性域名

写博客的朋友一般都有自己的域名,请根据以下方法设置:

  1. 我们要绑定的话需要在username.github.com目录下增加一个CNAME文件。
    在里面添加你的域名,假设为example.com,然后推送CNAME文件到远程仓库:
git add CNAME
git push origin master
  1. 到域名服务商增加你的CNAME记录。
    添加两条记录,@和www的主机记录,记录类型为CNAME类型,CNAME表示别名记录,该记录可以将多个名字映射到同一台计算机。
    记录值请写username.github.io.,值得注意的是io后面还有一个圆点,切记。

  2. 过个几分钟,刷新博客,我的博客域名是pizida.com,就能直接访问了,不截图了。


总结

本文介绍了Jekyll本地搭建过程和远程部署Jekyll的流程,我们梳理一下思路,以后可这样开发以及发布到线上:

本地开发:

  1. 通过jekyll serve -B启动服务,使用Rakefile创建文章,然后用自己喜欢的工具进行写作。
  2. 创作完成,通过jekyll build生成页面,本地localhost:4000查看文章。

发布线上

  1. 本地确认文章无误,可以通过git add,git commit,git push等git命令推送文章到Github Pages服务器。
  2. 通过绑定的域名,查看线上文章,这个时候大家都能访问了。

转载于:https://www.cnblogs.com/mochaMM/p/7076722.html

Jekyll本地搭建开发环境以及Github部署流程相关推荐

  1. Windows8.1+Eclipse搭建Hadoop2.7.2本地模式开发环境

    下面介绍如何在Windows8.1上搭建hadoop2.7.2的本地模式开发环境,为后期做mapreduce的开发做准备. 在搭建开发环境之前,首先选择开发工具,就是大家都很熟悉的Eclipse(本人 ...

  2. docker mysql 操作_[Docker] Docker 快速搭建本地MySQL开发环境

    [Docker] Docker 快速搭建本地MySQL开发环境 关于 Docker 的安装使用本文不再赘述,有兴趣的可以通过官网或是浏览我的专栏文章了解.今天着重给大家介绍下如何利用Docker快速搭 ...

  3. docker本地PHP开发环境搭建

    一.搭建本地PHP开发环境 概述 本文简单介绍通过启动一个nginx和fpm容器来搭建一个php web运行环境,以文档命令为例,H:/home/code/docker/web 目录下可以放多个子项目 ...

  4. ecology9 后端开发环境搭建_利用Vagrant快速搭建开发环境

    Docker大家应该都了解吧,一个非常方便的技术,可以让我们随时随地部署应用.但是部署应用虽然方便了,开发环境的搭建还是那样的,要自己安装一大堆软件.那么有没有类似的工具可以方便我们呢?这就是本文要的 ...

  5. 深入浅出Docker(五):基于Fig搭建开发环境

    本文原创版权归 infoq 肖德时 所有,此处为技术收藏,如有再转,请于篇头保留原创作者及出处,以示尊重! 作者: 肖德时 原文: http://www.infoq.com/cn/articles/d ...

  6. Android移动APP开发笔记——最新版Cordova 5.3.1(PhoneGap)搭建开发环境

    引言 简单介绍一下Cordova的来历,Cordova的前身叫PhoneGap,自被Adobe收购后交由Apache管理,并将其核心功能开源改名为Cordova.它能让你使用HTML5轻松调用本地AP ...

  7. (001) RN开发之Mac搭建开发环境

    接触RN第一步:React Native中文网 搭建开发环境 必须安装的依赖有:Node.Watchman 和 Xcode. 我们推荐使用Homebrew来安装 Node 和 Watchman.在命令 ...

  8. 使用Docker高效搭建开发环境

    女主宣言 Docker 作为轻量级的基于容器的解决方案,它对系统侵入性低,容易移植,天生就适合做复杂业务部署和开发环境搭建,今天给大家带来的是我司开发是如何使用 Docker 高效搭建开发环境的.本文 ...

  9. 初学编程者如何摆脱搭建开发环境的困扰?

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 你是否也有过类似惨痛的经历:一不小心设错一个环境参数或路径,代码就死活也跑不起来:明明严格按 ...

最新文章

  1. 推荐60+ Flex开发参考网站
  2. 20172328《程序设计与数据结构》实验二:树
  3. 基于Hi3559A ARM64位嵌入式平台的OpenCV2.4.9+ffmpeg2.0.7移植
  4. 动态so库的链接:运行时链接和编译时链接
  5. 运动会加油稿计算机学院,信息工程学院运动会加油稿
  6. linux 到文件的最后一行,linux – 将第一行复制到文件中的最后一行
  7. beetl模板入门例子
  8. 深度揭秘 如何将PDF转换成Word的技巧
  9. 移动咪咕盒子10款型号刷机固件汇总分享(附刷机教程)
  10. java100道逻辑题及答案_100道Java面试题收集整理及参考答案
  11. 潘多拉网吧防火墙 1.0 双线破解
  12. (附源码)springboot菠萝大学课室预约系统分析与设 毕业设计 641656
  13. 团队管理31-典型场景(向上沟通)
  14. curl 访问 IPv6 url
  15. win10能上网显示无法连接服务器,电脑不能联网怎么办 Win10无法连接网络解决方法...
  16. 做了两年P7面试官,谈谈我认为的阿里人才画像,你配吗?
  17. 图片内容转文字用Java怎么实现?
  18. 万里归途投资多少起投?投资能按时分红吗?资金安全有保障吗?
  19. 【论文笔记】视频息肉分割VPS:Video Polyp Segmentation A Deep Learning Perspective
  20. last_ack状态及rst标记

热门文章

  1. Node Sass version 6.0.0 is incompatible with ^4.0.0.
  2. Webpack執行打包:“You may need an appropriate loader to handle this file type“
  3. 父子/父孙传参(Provide/inject方式)
  4. Android Studio隐藏标题栏(Bar)
  5. 福一中招聘计算机教师,2017福建福州一中招聘拟聘公示
  6. linux开发板调试,用arm-gdb和gdbserver调试开发板的方法
  7. lookup函数和vlookup_VLOOKUP和LOOKUP两个函数PK,哪个才是你心目中的查找之王?
  8. vb在 ListBox 之中点击右键弹出菜单
  9. SCPPO(二十八):通过JS实现自动刷新进度
  10. 零基础可上手 | 手把手教你用Cloud AutoML做毒蜘蛛分类器