站点装修

2022-12-13 ⏳2.0分钟(0.8千字)

如果你不满意默认的样式,可以自己动手装修。成功入驻乐乎之后,你的本地文件夹会多出一些文件。你可以尝试访问自己的域名,会看到跟乐乎网站一模一样的内容。之所以如此,那是因为我们把乐乎网站的内容同步到你的电脑,供你创作入门参考之用。

目录结构

文件分如下几类:

文章内容

Markdown 文件保存创作内容,需要指定 Front Matter,支持的字段有:

author_nameauthor_url是用来展示投稿信息。比如张三投稿了一篇文章,他的个人博客是https://z3.example.com,我们就可以这篇文章上设置这两个变量。这样文章生成后会在标题下展示张三的名字,点击就会跳到他的博客。

无论是 env 中的变量还是 Front Matter 中的变量,都可以在模板文件引用。

模板文件

*.tpl保存的是 pandoc 模板文件,。目前有四个模板:

这都是 Pandoc 的模板文件,语法还是比较复杂的,如果要详细了解,请移步官方网站1。修改模板文件会为所有 Markdown 文件重新生成 HTML,所以请不要频繁改动,以节约服务器资源。

虽然是模板,它们也是普通的 HTML 文件。读者可以按需添加 HTML 标签、CSS 或者 JavaScript。

如果想引入新的 CSS,建议在head.tpl添加<link>标签。

如果想添加版本声明,则可以修改footer.tpl请务必保留乐乎的链接信息

如果想定制生成的文件列表,则可以修改index.tpl。只要文件夹下有 Markdown 文件,乐乎就会为其生成对应的index.html文件。所有列表文件共用index.tpl模板。乐乎提供了一个$articles$变量。这是文件对象列表,当前每个对象包含如下信息:

Pandoc 模板的语法比较奇怪,比如遍历列表为:

<ol id="articles" reversed>
$for(articles)$
  <li><a href="$it.path$">$it.title$</a> <date>$it.date$</date></li>
$endfor$
</ol>

这里的$it是循环变量,表示当前遍历的文件对象。

乐乎不支持列表分页,当前也不支持为文章标签生成列表页面。原因请参考这里

article.tpl内容更为复杂。只举一个条件判断的例子:

$if(toc)$
<nav id="TOC" role="doc-toc">
$table-of-contents$
</nav>
$endif$

这里只有在$toctrue时才会输出标题列表。这个列表由 Pandoc 自动维护,并保存到$table-of-contents$里,直接引用就好。

乐乎默认会自动生成标题列表,方便读者阅读。如果有文章不想展示这个列表,可以在 Front Matter 中将toc设为false

好了,就先介绍到这里。博主们可以八仙过海,各显神通了😄


  1. https://pandoc.org/MANUAL.html#templates↩︎