Jekyll初接触问题汇总
在Jekyll中遇到的一些markdown问题
Jekyll的markdown processor默认是kramdown. 经测试, 它:
- 不支持
$1_2$
这种数学符号 #
与标题之间必须有空格- 换行必须要行尾两个空格.
- 块级元素前面必须要有空行
- [笔记] 走进 Pocket,看看只有 20 位员工的 Pocket 是如何搞定 2000 万用户的中, 列表中的引用无法正确显示.
- 两个有关Knockout自定义拓展方法fn的小技巧中, 列表中的代码块将一个完整的列表分割成了两部分.
- 在Matrix Zigzag Traversal中, cpp代码中有两个连着的
{
, 结果报错Liquid syntax error
. - 标题中的MD代码为什么不被解析?
- 如何支持
==highlight==
?
自己用haroopad用得很顺手, 所以这些习惯都是haroopad惯出来的.
第2点, GFM不支持.
md中必须要两个空格才能换行?
做如下设置即可:
kramdown:
hard_wrap: true
从这里可以看出, kramdown有四个parser, 分别是kramdown, markdown, GFM, 和HTML.
hard_wrap
是GFM Parser的一个配置选项, 默认值为true
.
而我发现Jekyll中设置不设置input: GFM
是一样的, 所以我怀疑Jekyll默认启用了GFM Parser, 并且hard_wrap
的默认值是false
.
更多信息参考:
Jekyll Default Configuration中提示, Jekyll不支持kramdown中的remove_block_html_tags
和remove_span_html_tags
两个参数.
无法使用redcarpet?
_config.yml中设置markdown: redcarpet
就提示错误:
Dependency Error: Yikes! It looks like you don't have redcarpet or one of its dependencies installed. In order to use Jekyll as currently configured, you'll need to install this gem. The full error message from Ruby is: 'cannot load such file -- redcarpet' If you run into trouble, you can find helpful resources at http://jekyllrb.com/help/!
Conversion error: Jekyll::Converters::Markdown encountered an error while converting '_posts/2016-02-18-my first ps work.md':
redcarpet
ERROR: YOUR SITE COULD NOT BE BUILT:
------------------------------------
redcarpet
运行gem install redcarpet
提示:
ERROR: Error installing redcarpet:
The 'redcarpet' native gem requires installed build tools.
Please update your PATH to include build tools or download the DevKit
from 'http://rubyinstaller.org/downloads' and follow the instructions
at 'http://github.com/oneclick/rubyinstaller/wiki/Development-Kit'
从http://rubyinstaller.org/downloads中下载DevKit安装exe, 然后按照http://github.com/oneclick/rubyinstaller/wiki/Development-Kit中的方法去安装即可. 简单来说就是解压后ruby dk.rb init
, ruby dk.rb install
.
jekyll中的categories和tags有什么区别?
What’s the difference between Categories and Tags in Jekyll?
跟我观察的结果一样: categories会导致url变化, 但是tags不会.
如何引入Read More链接?
jekyll原生支持这个功能, 只需要在_config.yml
中加入:
excerpt_separator: "<!-- more -->"
即可. excerpt_separator
的默认值是"\n\n"
, 详见jekyll Configuration.
现在我的摘要部分是用以下代码完成的:
<div class="post-excerpt">
</div>
strip_html
可以帮你移除所有html标签, 以纯文本输出. truncate: 300
确保至多输出300个字. 仅当文章内容超过300字的时候才会添加Read more链接.