Jekyll
升级jekyll
要定期升级jekyll
的版本,使之与github
上的版本一致。
bundle update
kramdown
Jekyll
使用了kramdown
作为Markdown
的解释引擎,其具有比标准的Markdown
更多的扩展标记,因此也能提供更加丰富的表现形式。
支持的标签有:
小技巧
- 在行尾加2个或更多的空格可以添加换行(
<br/>
) - 当代码块中含有
{
标签时,可以使用raw
块,参见本文档gist
部分。 - 可以通过将从其他软件(如
Jupyter
、Excel
等数据处理软件)导出csv
格式的数据拷贝到Markdown
文档中,并借助于atom-csv-markdown
插件来方便地将其转换为html
表格。 - $ $ inline formula
- \(\) formula code block
- sub and sup tags for subscript and superscript
- — will become an em-dash (like this —)
- – will become an en-dash (like this –)
- … will become an ellipsis (like this …)
- « will become a left guillemet (like this «) – an optional following space will become a non-breakable space
- >> will become a right guillemet (like this ») – an optional leading space will become a non-breakable space
- ^ 可以用来将隔离两个
list
Liquid
Jekyll
使用了Liquid
语言作为模板语言,其主要有三种类型:
-
object 可以直接生成
html
字符串内容 -
Tag
-
Control Flow: if, unless, elsif/else, case/when
-
Iteration: for, break, continue, for(limit, offset, range, reversed), cycle, tablerow
-
Variable: assign, capture
-
-
Filter map, sort, uniq, strip_html, url_encode, url_decode, etc
jekyll-gist插件
安装好gist-it
插件后,设置好对应的token
,就可以在Atom
中直接 gist 代码片段了。
接下来,就需要在markdown
文档中引用刚刚创建的gist
。
{% gist ericluo/8a94b03781aaa65941b6978c9b89c578 %}
jekyll应用疑难问题
添加具有 {
符号的 code block
由于 Jekyll
对 code block
中的 Liquid filters or tags
进行处理,因此代码中如果含有 {
等符号,需要用 和 进行封装,如上述 jekyll-gist插件
部分所示。
Jekyll processes all Liquid filters in code blocks If you are using a language that contains curly braces, you will likely need to place and tags around your code.
SSL认证
在Windows上启动jekyll
以后,会碰到的问题如下:
GitHub Metadata: No GitHub API authentication could be found. Some fields may be missing or have incorrect data.
Error: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
主要解决的问题有:
- 下载证书< https://curl.haxx.se/ca/cacert.pem>,并设置环境变量
SSL_CERT_FILE
指向该文件 - 设置
GitHub Token
相关的环境变量JEKYLL_GITHUB_TOKEN
- 升级
Rubygems
的版本到最新版本
gem update --system
文章无法显示
今天碰到一个问题,新写的帖子再本地和GitHub
上均无法显示,好像是丢失了。但是查看文件缺失在哪里。最后最终到原因在于在_config.yml
中设置的时区,导致其认为是一个将来的帖子,自动忽略了,没有生产对应的文件。解决这个问题可以在启动时加上 future 的开关。
bundle exec jekyll server --future
还有一个坑是总是报错说错误地使用了post_url
这个Tag
,即:
正确的写法如下,其中指向文件目录为相对应_posts
的相对路径,且文件名可以不用添加后缀名。而使用link
这个tag的时候,文件路径是相对于根目录的,且文件名必须加后缀名。详细调用方法参见http://jekyllrb.com/docs/templates/
但是,将错误的写法改正后,系统还是报原来的错误!经过网上查找相关解答,似乎是当前Jekyll
的版本(3.3.1)的一个缺陷。待 将 GitHub Pages
升级后,试试新版本的Jekyll
还有没有类似的问题。github-pages
的版本升级到129以后(对应的Jekyll
的版本升到到了3.4.3),改问题解决了。