one.el * one.el * Install one.el * Getting started * How does one.el work? * one-default render function * Miscellaneous * one-ox * one-ox | headline * one-ox | src-block * one-ox | quote-block * one-ox | fixed-width and example-block * one-ox | links * one-ox | plain-list and item

面向 Emacs Lisp 程序员的 Static Site Generator

你是否曾经想编写一个博客:

如果答案是肯定的,那么你可能对 one.el 感兴趣,它是一个简单的 Static Site Generator,专为 Emacs Lisp 程序员和 org-mode 用户设计。 要立即开始,请查看 Install one.elGetting started 页面。 你可以在这里找到代码:https://github.com/tonyaldon/one.el。 尽管 one.el 使用 org-mode,但并非所有 org 元素都对构建技术博客站点有用(请参阅 Why one.el?)。 因此,只有少数 org 元素在 one-ox 中实现了一个转码器函数,one-oxone.el 使用的 org 后端,用于构建默认网站(请参阅 one-default render function)。 在依赖 one.el 之前,请检查 Org elements not supported。 在 one.el 中,以下 org 文档定义了一个包含 3 个页面的网站,我们在访问它时通过调用 one-build 命令来构建它:

* My website
:PROPERTIES:
:ONE: one-default-home
:CUSTOM_ID: /
:END:
Welcome to my website!
* Blog post 1
:PROPERTIES:
:ONE: one-default
:CUSTOM_ID: /blog/page-1/
:END:
My first blog post!
* Blog post 2
:PROPERTIES:
:ONE: one-default
:CUSTOM_ID: /blog/page-2/
:END:
My second blog post!

请注意,如果我们想使用默认的 css 样式表,我们可以在构建网站之前调用 one-default-add-css-file 来添加它。 第一个 CUSTOM_ID org 属性中的路径 / 告诉 one.el,“My website”页面是主页。 该页面使用 one-default-home 渲染函数进行渲染,该函数是同一标题的 ONE org 属性的值。 第二个 CUSTOM_ID org 属性中的路径 /blog/page-1/ 告诉 one.el,我们要以这样一种方式渲染“Blog post 1”页面,即当我们本地在 http://localhost:3000 上提供我们的网站时,该页面在 http://localhost:3000/blog/page-1/ 上提供。 该页面的渲染方式由同一标题的 ONE org 属性的值决定,该值为 one-default,是一个渲染函数。 最后一页“Blog post 2”也是如此。 正如你可能已经注意到的,one.el 网站是一个 org 文件,其中页面是级别 1 的标题,并设置了 org 属性 ONECUSTOM_ID。 仅此而已! ONEone.el 添加的唯一 org 属性。 它的值是一个 Emacs Lisp 函数,它返回一个 HTML 字符串,对于给定的页面,它决定了 one.el 如何渲染该页面。 页面的路径使用 CUSTOM_ID org 属性设置。 话虽如此,如果你想尝试一下,可以查看 Install one.elGetting started 页面。

为什么选择 one.el?

我编写 one.el 是因为我没有找到满足以下要求的现有静态站点生成器:

遵循这些要求让我开发了 one.el,这是一个有主见的静态站点生成器,适用于 Emacs Lisp 程序员和 Org mode 用户,如果你想构建像以下网站一样的东西,它会很好地工作:

全部使用 one.el 构建。

RANDOMNEXT