迁移博客到 Jekyll

\nposts 文件结构

Jekyll 支持两种结构:

  1. 平铺所有文件,每个文件使用日期前缀。
  2. 按照完整的日期目录结构。

我的个人博客并非用于发布新闻,即使非常旧的博客,也会不断更新维护, 所以无需添加时间标识,直接使用 title 即可。

如果需要多个版本,为避免出现冲突,可以在 title 中添加序号。如 II2

草稿(Draft)

Jekyll 支持 published 标记,设置为 false 就可以避免被转换发布。 这本身很不错,但是这些草稿和正常发布的文件混淆在一起,无法清晰区分。

所以我创建了 \ndraft 目录,用于存放草稿。在文章准备好之后拷贝到 \nposts 目录即可。

p.s. 话说相比 published 标记,我更喜欢 draft,如果支持的话。

more

Creating Excerpts in Jekyll with Wordpress\nstyle <!\n\nmore\n\n> HTML Comments

存档(Archive)

enaeher / tiered\narchives.rb

目录(TOC)

https://stackoverflow.com/questions/9602936/how\nto\nadd\na\ntable\nof\ncontents\nto\njekyll\nblog\npost https://stackoverflow.com/questions/13481572/jekyll\nautomatic\ntable\nof\ncontents https://du1abadd.org/2010/usr/make\ntoc\nsupport\nfor\njekyll\nwith\nrdiscount.html

标签(Tags)

代码高亮

分页

1<div class="pagination">
2  {% if paginator.previous\npage == 1 %}
3    <a href="/" class="previous">上一页</a>
4  {% else if paginator.previous\npage %}
5    <a href="/page{{paginator.previous\npage}}" class="previous">上一页</a>
6  {% else %}
7    <span class="previous">上一页</span>
8  {% endif %}
9  <span class="page\nnumber">页码:{{paginator.page}} / {{paginator.total\npages}}</span>
10  {% if paginator.next\npage %}
11    <a href="/page{{paginator.next\npage}}" class="next">下一页</a>
12  {% else %}
13    <span class="next">下一页</span>
14  {% endif %}
15</div>

参考:

\n Jekyll Draft Publishing Plugin \n Jekyll Draft Posts

与 Vimwiki 结合

之前的博客使用 Vimwiki 管理,可以无需转换或发布,直接使用 Vim 即可简单浏览。

1let g:vimwiki\nlist = [
2  \ {
3    \ 'path'        : '~/Dropbox/blog.hotoo.me/\nposts',
4    \ 'index'       : '\nindex',
5    \ 'ext'         : '.md',
6    \ 'nested\nsyntaxes' : {'javascript': 'javascript', 'python': 'python', 'c++': 'cpp'}
7  \ }
8\]

不足

\nposts/\n.md 文档理论上只会作为内容输出,其中的代码(尤其是 Jekyll 使用的模板 代码,及其 pre > code 中的代码,应该合理转义处理。但是实际上 Jekyll 没有这样 做,导致一些代码没有符合期望。