Zola上手记录

发布于 | 最后修改于 | 6 分钟
目录

之前一直用Pelican做静态博客,但是因为各种原因变得不愿维护。尝试一下Zola,也是因为看到了我感觉合适的主题(尽管后面还是重写了)。

这是一个新世界🔗

在思考作者和读者的关系、需求之后,我觉得我最好调整一下我的博客组织形式(有空再详细写)。使用一个标准化的元数据规范可以帮我快速迁移到任何平台上,但是我又懒了,很可能是因为不少文章用到了一些非常规的Markdown,使得迁移变得有些困难。不管如何,我计划在这里从零开始。

然后因为各种原因拖了好几个月没上线XD

用 Zola 生成静态网站🔗

简单说几个比较明显的体验差别:

  1. 支持用 Yaml 或 Toml 标记当前文章(markdown文件)的元数据
  2. 如果没额外设置,markdown文件的名称会自动转成slug,且去掉文件名开头的ISO标准格式时间
  3. markdown文件的存储结构隐含了文章分区
  4. 单一可执行文件(pelican还得备个虚拟环境)
  5. 使用 Tera 引擎,支持 Commonmark

关于Commonmark🔗

通读了一遍Commonmark标准0.30。毫不意外,这种 标准文档果然是篇幅长、内容枯燥。不过他们也确实给出了详尽的规范说明、完备的测试用例, 就作为标准而言,非常不错。当然我作为一个使用者可能不太会去关注规范本身,而会关注 解析器的实现。

我很感谢维护这个标准的贡献者们。

关于本站主题🔗

本来我看上了 Archie-zola 这款主题,但一些细节无法令我满意。于是我参考其主要设计思路,加入了自己的想法,用 tailwind css 重新实现了一个版本。从表面上来看,我的主题和 Archie-zola 很像,但是背后藏有我引以为傲的多语言支持。不过嘛,完全的i18n还有一段距离(这个单纯用模板宏去实现还有点麻烦)。另外在有些板块设计方面,我从 Papaya 汲取了一些点子。

目前这个模板和我的博客配置混合在了一起,尚未完全分离。所以请对此主题的实现感兴趣的朋友们耐心等待,可以电邮联系我了解详情。

TODO:

  • 评论区

Commonmark各个样式测试🔗

Commonmark看上去不够用,但实际上体验还可以。再说了,Markdown可以嵌入HTML呀!先实验一下当前各个样式的表现。

引用🔗

这一一段引用文字

嵌套引用

引用之间空了一行

放一点代码

表格🔗

食材库存单位
苹果3
干酪1公斤
魔法酒100毫升

复制了一个例子

Inline   Markdown   In   Table
italicsboldstrikethrough   code

代码块🔗

高亮,行号

20hello_world() {
21 echo "Hello, world!"
22}
23
24hello_world

高亮,无行号

fn hello_world() {
    println!("Hello, world!");
}

以后可能得想个办法加个复制按钮?(oh,这其实是读者的需求)

列表🔗

无序列表

  • 格鲁兹之母
  • 大黄蜂
  • 灵魂大师
  • 遗忘十字路
    • 反击蝇
    • 米拉
  • 水晶山峰
    • 大蛾子的雕像

有序列表

  1. 神庙矿井
  2. 法加罗神庙
    1. 球草A
    2. 球草B
  3. ...
  4. 大凯斯特罗

H5引用🔗

实体引用

  & © Æ Ď ¾ ℋ ⅆ ∲ ≧̸

非实体

&nbsp &x; &#; &#x; � &#abcdef0; &ThisIsNotDefined; &hi?;

测试各种分割线🔗


(---)

=== (这个不是分割线符号)


(---)


(***)

在列表中的分割线符号需要与列表项符号不同

  • 你好

  • 世界
- 你好
- * * *
- 世界

HTML元素🔗

懒了,复制了一份

GIF is a bitmap image format.

H2O

Xn + Yn = Zn

<abbr title="Graphics Interchange Format">GIF</abbr> is a bitmap image format.

H<sub>2</sub>O

X<sup>n</sup> + Y<sup>n</sup> = Z<sup>n</sup>