作为一名IT爱好者,也基本认定以后会投身到IT事业中,确实也应该需要有一个博客,可以记一些技术笔记供自己查阅。web技术我涉猎不够多,基本只是个入门级别,所以选择了jekyll模板+github+markdown来写博客。这第一篇博客就写写这个过程吧。
安装本地Jekyll环境(windows)
windows 上安装还是挺繁琐的,大致分为以下几个步骤:
- 安装Ruby
- 安装Devkit
- 安装Jekyll
- 安装Pygments
- 启动Jekyll
安装Ruby
- 在http://rubyinstaller.org/downloads/中的RubyInstallers下载相应的安装包,这次下的是
Ruby 2.2.2 (x64) - 安装并配置好环境变量
- 通过
ruby -v来检查是否成功安装
安装Devkit
DevKit是一个在Windows 帮助简化安装及使用Ruby C/C++扩展如RDiscount和RedCloth的工具箱。
- 仍然在http://rubyinstaller.org/downloads/中的DEVELOPMENT KIT中下载与Ruby对应的版本。版本一定要对应,不对应的话在安装jekyll时会出现问题
- 安装解压到相应文件夹
- 通过
cd命令到该文件夹或者直接 在该文件夹打开命令行 - 输入
ruby dk.rb init初始化创建config.yml,并确保config.yml最后一行是Ruby目录 - 通过
ruby dk.rb review命令检测配置是否正确,最后通过ruby dk.rb install安装Devkit。 - 通过
gem -v来检查是否成功安装gem,gem可以用来安装各种包,包括jekyll
安装Jekyll
因为伟大的万里长城,Rubygems很难连接上,这也导致直接通过gem安装是件很困难的事,万幸的是国内已经有同步更新的镜像站,由淘宝提供:http://ruby.taobao.org/。
-
把默认的官方源换成镜像源,并确保只有镜像源
~ $ gem sources --remove https://rubygems.org/ ~ $ gem sources -a https://ruby.taobao.org/ ~ $ gem sources -l -
通过
gem install jekyll命令安装,会安装许多相关的包,这需要一些时间
安装Pygments
Jekyll里默认的语法高亮插件是Pygments。它需要安装Python并在配置文件_config.yml里加入highlighter: pygments。
- 在http://www.python.org/download/中下载适合的安装包并安装,尽量选择Python 2版本,我使用Python 3时不能正常使用高亮插件,不知道哪里出了问题
- 配置环境变量,通过
python -v检测是否成功安装 - 安装”Easy Install”,跟gem作用类似,https://pypi.python.org/pypi/setuptools#installation-instructions是详细的安装指南。
- win7环境下载ez_setup.py,并通过命令
python ez_setup.py运行次文件。 - 把python根目录中的Scripts目录加入环境变量,依然通过
easy_install --version检查是否成功。 - 通过
easy_install Pygments命令安装 - jekyll中也要安装,通过
gem install pygments.rb命令安装
启动Jekyll
- 通过
jekyll new blog命令创建新的模板或者直接找别人已经做好的模板,我是在http://jekyllthemes.org/中找的一个模板,改了一些css。以后熟悉了可以定制更个性化的东西,可以在http://jekyll.bootcss.com/查看相关的中文文档。 - 在blog根目录运行
jekyll serve启动jekyll serve,这样就可以通过http://localhost:4000/本地看效果了,并且是可以实时监测变化的。
建立Github博客
使用Github不用负担域名和空间的费用,很适合用来写个人博客。
- 新建名为
yourusername.github.io的Repository,其中的yourusername是你的Github用户名。这样就可以直接通过http://yourusername.github.io/访问博客了 - Github是使用Jekyll解析该Repository,所以我们可以直接把刚才在本地的Jekyll博客push到master分支,不出意外这时候我们的博客就建立成功了
使用markdown写博客
在Jekyll中,每篇博客都是一个独立的在_post中以.md或者.markdown为后缀的文件,可以通过Ruby脚本快速生成md文件。使用markdown书写。这里记录一些常用基本语法以便可以随时查看。
-
两种标题语法 类Setext形式,利用
=(最高阶标题)和-(第二阶标题):第一级标题 ================ 第二级标题 ----------------类Atx形式,利用行首插入1到6个
#,对应相应级别的标题:# 第一级标题 ### 第三级标题 -
列表 无序列表使用
*、-和+后紧跟一个空格做标记,这三个符号作用是相同的。有序列表使用数字紧接英文句点作为标记,序号不是根据所写的数字而是自动排序:* A * B * C和
1. A 2. B 3. C列表项可以有多个段落或者其他区块,但需要靠缩进来表示是在当前列表项中,这样就可以做到列表的嵌套:
靠四个空格或一个制表符来缩进
1. 第一段 第二段 2. 另一个列表项嵌套列表或者其他区块(引用、代码块等)
1. ol level 1. li level 2. li level 2. ol level -
区块引用 区块引用的标记为
>,在每行前加上>代表区块引用,也允许在整个段落首行前加上>:> blockquote 区块引用 > blockquote 区块引用区块引用也可以嵌套使用,包括嵌套其他语法:
> blockquote 区块引用 > >> 嵌套blockquote 区块引用 > > ## 标题 > > 1. 列表项 > 2. 列表项 -
代码区块 代码区块简单的通过四个空格或者一个制表符缩进来表示,代码块会被
pre和code标签包裹:普通段落 代码块GFM语法还允许包裹型的代码块:
~~~ language 代码块 ~~~小段的行内代码可以通过反引号
`包裹:`代码` -
强调 Markdown使用
*和_来标记强调,被一个*或_包裹的会被转换为<em>标签包裹,两个则会被转换为<strong>标签包裹。 -
链接 Markdown支持两种形式,行内式和参考式。
行内式[方括号]标记链接文字,后面紧跟圆括号并插入链接,链接后还可以用双引号加上title文字,如果链接即为链接文字,也可简单在尖括号中插入链接:
[text](http://example.com/ "title") <http://example.com/>参考式在链接文字方括号后再加一个方括号,并在第二个方括号中填入辨识标记,并在文章任意处把标记的联机内容定义出来:
[text][id] [id]: http://example.com/ "title" -
图片 Markdown标记图片语法与链接类似,也分为行内式和参考式。基本就是在链接的语法前面加一个
!,链接改为图片的链接或者本地相对路径: ![img][id] [id]:images/img.jpg "title"基本的语法没有办法定义大小,有需要的话可以使用标签定义。
-
分割线 可以在一行中用三个
*或者-表示分割线:--- ---------- * * * ****** -
表格 Markdown基本语法中没有表格,扩展语法可以这样表示表格:
| 默认 | 中间对齐 | 右对齐 | |----------|:------------:|----------:| | 1 1 | 2 1 | 3 1 | | 2 1 | 2 2 | 3 2 | | 3 1 | 3 2 | 3 3 | -
转义 Markdown转义字符为反斜杠
\,可以再前面加上\来输入一些有特殊意义的符号:\ 反斜线 ` 反引号 * 星号 _ 底线 {} 花括号 [] 方括号 () 括弧 # 井字号 - 加号 * 减号 . 英文句点 ! 惊叹号
遇到的问题
-
使用
gem isntall安装时不能正常安装,出现time out。官方源被墙,换成淘宝的镜像源即可。
-
安装Jekyll时,某些包安装不正常,报错
ERROR: Failed to build gem native extension导致不能成功安装Jeklly。
Ruby版本安的是32位,而DevKit却是64位,版本的不匹配导致某些包不能安装DevKit中的本地扩展,统一为64位即可。
-
启动jekyll serve的时候,不能导入
.sass文件,报错Syntax error: File to import not found or unreadable目录包含中文,可能ruby不能正常识别,改为全英文即可。
-
启动jekyll serve的时候,博客中使用高亮语句会报错
undefined method `[]` for nil:NilClass高亮插件Pygments是Python语言写的,怀疑是Ptyhon的问题,最终发现把Python版本由3改为2就可以正常使用高亮语句了,原因不明。
-
代码块不能正常显示。
MarkDown解析器kramdown默认使用代码高亮coderay,可是Github却不支持很多插件。只好把解析器换成redcarpet,并修改相应css。
-
模板中的估计阅读时间不正确。
liquid中的number_of_words变量只记录英文单词,造成估计阅读时间不正确。因为不清楚怎么通过liquid统计汉字,直接去掉了。
-
脚本
rake post生成新文章失败。查看
Rakefile脚本文件发现,task命令为new_post,并且需要在Gemfile文件中导入脚本文件中用到的包。 -
图片Markdown语法失效。
不要用汉字标点,用英文标点
!。