关于写作环境
在电脑上我是选择了 GitHub 的 Windows 客户端 + Sublime Text 3 来编辑和提交修改,不但可以很方便地编辑和预览 Markdown 文件,还可以对其它格式的文件很方便地操作。为了保持热情和更方便地更新文档,我还在手机上安装了 Pocket Git + JotterX 来执行相同的事情。这也有助于我对 Git 的版本管理和分支管理有更直观的理解。
我之前也有在用 Sublime Text, 不过还是又看了这篇 Sublime Text 全程指南, GUI 环境下我也同意这是目前综合考虑最好的编辑器了。
Jekyll 的主要作用:
从 GitHub 的 dependency versions 可以得到默认支持的插件
- jekyll
- jekyll-coffeescript
- jekyll-sass-converter
- kramdown
- maruku
- rdiscount
- redcarpet
- RedCloth
- liquid
- pygments.rb
- jemoji
- jekyll-mentions
- jekyll-redirect-from
- jekyll-sitemap
- github-pages
- ruby
- 把 Markdown 等标记语言的文件生成为静态文件。(支持数种转换引擎,在 _confi.yml 进行设置,我设为了 GFM 默认的 redcarpet)
- 使用 Liquid 把一些动态数据转化为静态页面。
- 转换 SASS 为标准 CSS
- 生成站点结构
##如果直接使用 HTML+JS+CSS?
肉身管理静态站点的问题有很多,例如有的东西一旦修改就要一个一个文件全部改一遍。人又不可能把所有东西都做到最好保证以后就永远不需要修改,所以必然很痛苦。更何况世上本来就没有最好这一说。
JS 和 CSS 本来就是要人手写的, CoffeeScript 和 LESS SCSS 之类的据我目前的了解知识能一定程度地把这些东西简化而已。
所以思考了一番我还是坚持现在的选择,以后如果想改动或者迁移,这里的架构也很方便导入到别的地方去。
##Liquid 的研究
Jekyll 的最大优点之一就是对 Liquid 的支持,通过模板的指令在生成的静态页面里加入动态的内容。 比如 rsms 在他的首页 html 加入了一些循环、判断、和限制:
{% for post in site.posts limit:25 %}<a
href="{{ post.url }}" class="post-excerpt{% if post.photo_url %} photo{% endif %}">
<div class="padded-content">
<div class="title">{{ post.title }}</div>
{% if post.photo_url %}
<div class="image" style="background-image:url('{{ post.photo_url }}')"></div>
{% else %}
<!-- <div class="title">{{ post.title }}</div> -->
<info datetime="{{ page.date | date: "%Y-%m-%d" }}">
{{ post.date | date: "%b %Y" }}
</info>
{% if post.description %}
<span class="body">{{ post.description | strip_html }}</span>
{% else %}
<span class="body">{{ post.excerpt | strip_html }}</span>
{% endif %}
{% endif %}<!-- post.photo_url -->
</div>
</a>{% endfor %}
在首页显示日志,限制在25篇以内,判断是否显示为图片日志,判断是否显示摘要,都是很智能的规则。不过我还没找到 Liquid 的这些定义文档,或者应该是 GitHub 预设的这些定义?
Update:
找到了 Liquid for Designers 因为我从来没考虑过自己是不是 designer 所以完全忽略了。
还有 Havanna 翻译的中文版,虽然我不一定要中文,不过这位的文章配色看起来蛮舒服。