ero 的故事 [4] = 与 Nikola 的合作

Nikola 是使用 Python 语言开发的一个静态网站生成工具。它接受使用 Markdown 或 reStructuredText 之类的标记语言撰写的文档,输出 HTML 页面。Nikola 的安装以及基本用法,可参考它的『Getting Started』文档。下面我要讲述 zero 如何与 Nikola 取得结合,以实现 zero 文件向 HTML 页面的逐步转换。

创建站点

现在,假设你已经具备了一个可用的 Nikola 环境。可使用以下命令建立名为 zero 站点(可以根据自己喜好取其他名字):

$ nikola init --demo --quiet zero
$ tree -L 1 zero
zero
├── conf.py
├── files
├── galleries
├── images
├── listings
├── posts
├── README.txt
├── stories
└── templates
其中,conf.py 是 zero 站点的配置文件,output 目录是 zero 站点的根目录——该目录内存放 Nikola 生成的网页文件。

让 Nikola 支持 Markdown

Nikola 默认支持的文档标记语言是 reStructuredText,若使之支持 Markdown,需要修改 conf.py,将其中的变量 POSTS 与 PAGES 的值修改为:

POSTS = (
("posts/.md", "posts", "post.tmpl"),
("posts/
.rst", "posts", "post.tmpl"),
("posts/.txt", "posts", "post.tmpl"),
("posts/
.html", "posts", "post.tmpl"),
)
PAGES = (
("stories/.md", "stories", "story.tmpl"),
("stories/
.rst", "stories", "story.tmpl"),
("stories/.txt", "stories", "story.tmpl"),
("stories/
.html", "stories", "story.tmpl"),
)
注:若希望自己定制站点首页,可将 PAGES 设为:

PAGES = (
("stories/.md", "", "story.tmpl"),
("stories/
.rst", "", "story.tmpl"),
("stories/.txt", "", "story.tmpl"),
("stories/
.html", "", "story.tmpl"),
)
这样,在使用 nikola new_post 与 nikola build 命令时,这些命令会将后缀名为 .md 的文件作为 Markdown 文档进行处理。

创建 zero 文件

首先在 zero 站点创建一个目录 zero-meta,专用于存放 zero 文件:

$ mkdir zero-meta
面向 Nikola 的 zero 文件,本质上也是一份 Markdown 文件,只是其中的代码片段是 zero 的特有格式。因此,可以先让 Nikola 为我们生成 Markdown 文档模板,然后将其作为 zero 文件使用。

作为示例,在 zero 目录下,执行以下命令:

$ nikola new_post -f markdown --title="hello-world"
便可创建一份 Markdown 文件 hello-zero.md。

所创建的 hello-world.md 位于 posts 目录,nikola new_post 命令会在这份文件中写入一些模板信息:

Write your post here.
这些模板信息可根据自行酌情修改。

然后将 hello-world.md 文件复制到 zero-meta 目录,并将后缀名改为 .zero,这样便有了一份 zero 文件。接下来可以向这份文件中按照 zero 的理想撰写程序文档,编写程序代码……若仅仅是为了体验一下,可复制 zero 项目的 example/markdown 目录中的 hello-world.zero 文件。

.zero -> .md

zero 文件编辑完毕之后,便可将其再转换为 Markdown 文件。对于上一节创建的 hello-world.zero 文件,可使用以下命令将其再次转换为 hello-world.md 文件,并将这份文件覆盖 posts 目录中由 nikola new_post 命令创建的那份 hello-world.md 文件:

$ zero -m day hello-world.zero | yml2md > ../posts/hello-world.md

文档生成

将 zero 文件转换为 Markdown 文件之后,便可在 zero 目录下执行:

$ nikola build
『nikola build』 命令可将 posts 目录中的所有 Markdown 文件转换为 HTML 文件,并将这些 HTML 文件存放于 output/posts 目录。output 目录便是 Nikola 静态站点所有网页的的根目录。

然后执行:

$ nikola serve --browser
便可运行 Nikola 内置的 HTTP 服务器,并开启浏览器定位到 zero 站点的首页。如果上述过程没有出错,应该能够在 zero 站点首页上看到标题为『 Zero 的 Hello World 示例』的文档。

超级产品经理
"""
注:FILES_FOLDERS 的值是驱使 nikola build 命令将 mycss 目录复制到 output 目录——zero 站点根目录。如果直接在 output 目录中创建 mycss 目录并置入 css 文件,它们可能会被 nikola build 命令清除。

然后再次执行:

$ nikola build
便可将 tweak.css 中定义的样式作用于站点的所有页面。

关键字:文式编程


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部