Jekyll 帮助
命令行参数
jekyll build:构建静态 html 文件
--watch # 一直监听文件变化, 持续转换
<i href=""> 你好 </i>
jekyll serve # 监听文件并持续生成 html, 运行一个 web 服务器在 http://localhost:4000
# --no-watch # 不监听文件变化
# --livereload # 在文件更新时自动刷新浏览器
# --incremental # 增量重建
# --detach 脱离终端运行
# --detach 和 其它两个共用的时候不能正常使用(原因未知)
jekyll serve:构建静态 html 文件,并建立一个 web 服务器
--drafts # 启用服务时不忽略草稿
--no--watch # 不监听文件变化
--livereload # 在文件更新时自动刷新浏览器
--incremental # 增量构建
--detach # 程序脱离终端运行
note:
--detach 似乎不能和 --livereload,--incremental 一起好好工作
在命令前加 bundler exec,可以让命令运行在 Gemfile 指定的环境下
Liquid 语法
变量
不显示某篇文章:published: false
为文章指定地址:permalink: /address
tag
对于 tag, {{-
和 {%-
相较于 {{
和 {%
不会输出空行。
{% post_url filename %}:将文件名(不需要后缀)转为可访问的 URL
如果出现警告
Deprecation: A call to '{% post_url filename %}' did not match a post using the new matching method of checking name (path-date-slug) equality. Please make sure that you change this tag to match the post's name exactly.
- 一个原因是需要在 filename 前加上路径 path (即 path-filename)即可消除警告。path 是项目根目录到文件的所有中间目录用 / 连接得到的字符串。这里的所有中间目录不包括 _posts 目录。path 最前面有没有 / 是不重要的。
- 还有一种原因是 _posts 不是最后一个中间目录。换句话说,从根目录到文件的路径上只能有一个 _posts 目录且必须是文件的父目录。
note:官网里案例是搭配 {{ site.baseurl }} 使用,jekyll 3.8.5 实测不搭配也可以用。
{% link filename %}:将文件名(需要后缀)转为可访问的 URL
这个和 post_url 同样将文件名转为 URL。link 和 post_url 不同的是,post_url 是针对 _posts 下的文件的,而 link 对所有文件都可以。filename 需要是相对与项目根目录的路径,不可以省略任何目录,不可以省略后缀,第一个字符不能是 /。
note:官网里提示说 v4.0 后可以不在前面加 {{ site.baseurl }},jekyll 3.8.5 实测可以不加。
配置过程中遇到的其它相关问题
打算使用 visual studio code 写 markdown,想自定义代码块,配置好了以后不生效。 需要在 settings.json 中加上下面的代码才可以生效。
"[markdown]": {
"editor.quickSuggestions": true,
},
额外小知识
名词 | 解释 |
---|---|
Ruby | 一个脚本语言 |
gem | 用 ruby 写的应用 |
RubyGems | 库的管理工具,别名也叫做 gem |
bundler | 用于解决 Ruby 项目的依赖问题 |