Jekyll 3.3 带来了很多非常实用的新功能,让开发体验更好。 这里有三个你可能会想尝试的重点功能:

1. 主题现在可以在 /assets 目录中包含静态和动态资源文件Permalink

在 Jekyll 3.2 版本中,我们加入了支持使用打包为 gem 的主题。 3.2 支持了 includes(包含文件)、layouts(布局模板)和 sass partials(Sass 片段)。 而在 3.3,我们在这个基础上又加入了对 assets(资源)的支持。

为了让主题的管理更简单,只要你在主题中放入 /assets 目录下的文件,这些文件就会像用户站点里的文件一样被读取。这意味着你可以在主题中提供 SCSS、CoffeeScript、图片、网页字体等等 —— 也就是所有跟 页面展示 有关的内容。规则和 Jekyll 站点是一样的:如果文件有 YAML 前置数据(front matter),Jekyll 会对它进行转换和渲染;如果没有 front matter,它就会被当做静态资源直接复制过去。

注意:如果用户站点中已经存在相同路径的文件,那么主题中的对应文件不会被包含到站点中。比如,如果用户有 /assets/main.scss 文件,那么 Jekyll 会优先读取并处理用户的这个文件,而不是主题里的 /assets/main.scss

查看我们关于这个内容的详细文档了解更多信息。

2. relative_urlabsolute_url 过滤器Permalink

想要一种方便的方式在路径前自动加上配置里的 baseurlurl 吗?这两个新过滤器可以帮到你。当你在本地开发时,如果你的 baseurl 设置为了和线上环境一样,比如 baseurl: "/myproject",那么 relative_url 过滤器会确保你传给它的路径前自动加上这个 baseurl:

{{ "/docs/assets/" | relative_url }} => /myproject/docs/assets

默认情况下,baseurl 是设置为空字符串 ""(永远不要设置为 "/"),所以结果是:

{{ "/docs/assets/" | relative_url }} => /docs/assets

使用 relative_url 过滤器,能确保生成的路径始终是相对于网站根目录的。absolute_url 过滤器的原理类似,不过它会自动在路径前加上 baseurlurl 的配置值,这样生成绝对路径就更加方便了:

{{ "/docs/assets/" | absolute_url }} => https://jekyllrb.com/myproject/docs/assets

3. 本地开发时 site.url 自动设置Permalink

当你在本地运行 jekyll serve 命令时,Jekyll 会开启一个本地开发服务器,通常是 http://localhost:4000,方便你预览站点。如果你之前使用了 absolute_url 过滤器,或者在站点里用到了 site.url,你可能会单独创建一个开发配置,把 url 设置为 http://localhost:4000

现在不需要了!从这个版本开始,当你运行 jekyll serve 时,Jekyll 会自动根据 hostport 和 SSL 相关配置来设置 url,默认是 url: http://localhost:4000。这样在本地开发时,site.url 的值就是 http://localhost:4000

这个功能默认在本地开发时开启。如果你设置了 JEKYLL_ENV=production 再运行 jekyll serve,Jekyll 就不会自动覆盖 url 的配置了。只有在 JEKYLL_ENVdevelopment(默认值)时,才会自动设置。另外,这个功能只在本地服务(serve)时生效,构建(build)站点时不会自动设置。

还有 更多 更新!Permalink

除了以上内容,还有几十个 bug 修复和小改进,让你的 Jekyll 使用体验比以往更好。我们每次发布新版 Jekyll,都是为了让你的开发工作流更加稳定可靠。

特别感谢所有为这次发布贡献了大量宝贵时间的开发者们:

Anatoliy Yastreb, Anthony Gaudino, Antonio, Ashwin Maroli, Ben Balter, Charles Horn, Chris Finazzo, Daniel Chapman, David Zhang, Eduardo Bouças, Edward Thomson, Eloy Espinaco, Florian Thomas, Frank Taillandier, Gerardo, Heng Kwokfu, Heng, K. (Stephen), Jeff Kolesky, Jonathan Thornton, Jordon Bedwell, Jussi Kinnula, Júnior Messias, Kyle O’Brien, Manmeet Gill, Mark H. Wilkinson, Marko Locher, Mertcan GÖKGÖZ, Michal Švácha, Mike Kasberg, Nadjib Amar, Nicolas Hoizey, Nicolas Porcel, Parker Moore, Pat Hawks, Patrick Marsceill, Stephen Checkoway, Stuart Kent, XhmikosR, Zlatan Vasović, mertkahyaoglu, shingo-nakanishi, vohedge。

完整的发布说明可以查看详细信息。 如果你发现了任何问题,请随时提交 bug 反馈。

希望 Jekyll 能给你带了愉悦的一天!