升级
是时候该升级你的 Jekyll 了,升级之前为你介绍一下版本 1.0 的更新内容。
首先,我们需要获取 Jekyll 的最新版本:
提示
想要迅速建立起一个 Jekyll 站点并跑起来吗?只需要输入命令
jekyll new SITENAME
,该命令将创建一个包含基本功能的 Jekyll 站点。
Jekyll 命令
Jekyll 现在支持命令 build
和 serve
,使用起来更加清晰。
以前你或许会使用命令 jekyll
生成一个网站并用 jekyll --server
在本地浏览,
现在可以用子命令 jekyll build
和 jekyll serve
代替。
如果当一个文件改变时,你希望 Jekyll 自动做出相应的更新,只需要在命令的末尾加上 --watch
即可。
Watching 和 Serving
使用新的子命令,网站的操作方式也有一些变化。以前的做法是在网站配置文件中加上
server: true
,现在用 jekyll serve
即可。 同样的 watch: true
也是如此,在
jekyll serve
或 jekyll build
后边加上 即可 --watch
。
绝对地址
在 Jekyll v1.0 中,我们引入了“绝对地址”。v1.1 之前,使用 opt-in。从 v1.1 开始, 将使用 opt-out ,这意味着 Jekyll 将使用绝对地址代替相对相对地址。
- 如果要使用绝对地址,需要在配置文件中加上
relative_permalinks: false
。 - 如果要继续使用相对地址,在配置文件中加上
relative_permalinks: true
。
在 v1.1 中,绝对地址将成为默认配置
从 Jekyll v1.1.0 开始, relative_permalinks
默认为 false
,这意味着所
有页面默认为绝对地址,该配置会一直保留到 v2.0 。
草稿箱
Jekyll 现在支持草稿箱,并且可以很容易的在发布前预览。想要开始编写草稿,只需要在项目
中建立 _drafts
文件夹(和 _posts
在同一目录),然后新建一个 markdown 文件即可。
想要预览你的草稿,只需要在命令 jekyll serve
后边加上 --drafts
。
草稿没有日期
跟文章不同,草稿没有日期,因为还没有发布。只需用标题(比如 my-draft-post.md
)
做为文件名,而不是 2013-07-01-my-draft-post.md
。
自定义配置文件
不仅可以通过在命令行末加标志, 还能够使用一个 Jekyll 自定义配置文件。这样可以帮助区分不同
的环境,或以编程方式覆盖用户指定的配置。只需要在命令 jekyll
后加上 --config
,然后
输入一个或多个配置文件的路径(以逗点隔开,不能有空格)。
所以,不再建议使用以下这些命令:
--no-server
--no-auto
-
--auto
(现在的--watch
) --server
--url=
-
--maruku
,--rdiscount
,和--redcarpet
--pygments
--permalink=
--paginate
显式指定配置文件
如果你使用了标志 --config
, Jekyll 将忽略文件
_config.yml
。想对个配多置文件中组合使用吗?没问题, Jekyll 支持通过命令行
指定多个配置文件。越往右,配置文件优先级越高。如果我运行
jekyll serve --config _config.yml,_config-dev.yml
,并且他们
包含同一个配置项,那么这个配置项的结果将是右边 _config-dev.yml
的值,而非
左边_config.yml
。
新的配置选项
Jekyll 1.0 引进了几个新的配置选项. 在升级之前,你应该检查一下在 pre-1.0 的配置文件中是否 有这些,如果有,确保正确配置了:
excerpt_separator
host
include
keep_files
layouts
show_drafts
timezone
url
根路径
通常,你想要在不同的地方运行你的 Jekyll 站点,比如发布前在本地预览。Jekyll 1.0 中使用标志
--baseurl
即可。要使用这个特写,首先在网站的 _config.yml
中写入生产环境的 baseurl
;然后,遍历一遍代码,对所有相对地址加上前缀 {{ site.baseurl }}
.
当你想在本地测试的时候,在 jekyll serve
后传入标志 --baseurl
并跟上本地地址即可
(可能是 /
)。
所有的地址包含斜杠
如果你按照上边的方法做了,记得所有的地址前有一个斜杠。因此,
site.baseurl = /
和 post.url = /2013/06/05/my-fun-post/
最终形成的地址有两个斜杠
开头。所以建议在 baseurl
不是 /
时使用 site.baseurl
。