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 中定义的样式作用于站点的所有页面。
关键字:文式编程
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!