1 个不稳定版本
使用旧的 Rust 2015
0.0.1 | 2018 年 10 月 6 日 |
---|
20 在 #blog-post
67KB
1.5K SLoC
wellington
惠灵顿是一个使用 Rust 编写的轻量级静态博客生成器。您可以在https://emanuelgeromin.com/blog/中看到它的实际应用。
惠灵顿允许您用 markdown 编写博客文章,然后自动
- 将它们渲染为 HTML
- 更新目录
- 更新 RSS 源。
在您网站的根目录下,创建一个新的博客
mkdir my-amazing-blog
cd my-amazing-blog
wellington init --title "My Blog" \
--home_url "https://mysite.com \
--desc "My blog about clogs" \
--author "It's Me"
然后编写一篇博客文章
mkdir post-1
touch post-1/index.md # edit this file
wellington sync
这个最后的命令 wellington sync
自动
- 将文章渲染为 HTML 在 post-1/index.html
- 创建/更新目录在 index.html
- 创建/更新 rss 源在 rss.xml
安装
安装通过 cargo 完成
cargo install wellington
带有脚注/边注的 Markdown
惠灵顿支持扩展的 markdown 语法。除了常见的 markdown 语法外,您还可以直接在 HTML 中使用花括号标记脚注/边注
# Here is an article
Here is some text with sidenotes/footnotes{this text will render as a
footnote/sidenote}
边注 类似于脚注,但它们在文章的右侧显示,而不是底部。请参阅这篇博客文章作为示例。要正常工作,它们需要合适的 CSS。请参阅下面的 'CSS' 部分。
为什么选择惠灵顿
市面上有许多博客引擎,许多是为与 GitHub pages 等静态托管服务一起使用而设计的。一个很好的例子是 Jekyll。
我编写惠灵顿是因为我想要支持边注,并且只需要一个非常简单的功能集。
相对链接
文章 markdown 文件中的相对链接将自动更改,以指向它们所在的目录。例如,如果 my-amazing-blog/post-1/index.md
包含以下内容
![an image](image.png)
那么这将渲染为
<img src="my-amazing-blog/post-1/image.png" />
这使得在博客文章中嵌入图片更容易。
CSS
惠灵顿的边注是为使用 tufte-css 而设计的。我在我的博客中使用了一个修改过的版本。这个修改过的版本更符合移动端友好,在窄屏幕上,而不是显示边注,而是显示脚注。欢迎您复制我的 CSS。或者,作为一个更简约的解决方案,如果您不需要边注,只需隐藏它们并只渲染脚注即可。
.sidenote {
display: none;
}
为了以移动友好方式显示博客文章,使用桌面侧边注释和移动端脚注,如我所做,请检查修改后的tufte-css版本。
模板
wellington使用Handlebars模板引擎来渲染文章和目录,这允许自定义文章和目录。源代码中的templates
目录有默认模板。这些模板默认使用,无需安装。要覆盖它们,请在您的博客主目录中提供自己的模板
.index_template.html
用于目录.post_template.html
用于文章
查看默认模板并根据您的需求进行修改!
MathJax (LaTeX) 支持
在博客文章中使用mathjax (LaTeX)需要一些技巧。为了防止LaTeX被markdown解析器渲染,它必须在markdown中标记为代码,例如
# a markdown file
Here is some text with an equation: `\(E = mc^2\)`
默认情况下,mathjax不渲染任何用<pre>
或<code>
标签包裹的内容。要覆盖此行为,除了链接到mathjax CDN的<script>
标签外,您还必须在模板的<head>
部分添加以下内容
<script type="text/x-mathjax-config">
MathJax.Hub.Config({
tex2jax: {
skipTags: ["script","noscript","style","textarea"]
}
});
</script>
这覆盖了默认的skipTags
,允许在<pre>
和<code>
标签中使用LaTeX进行渲染。
如果您需要在博客文章中同时使用渲染的LaTeX和LaTeX代码,那么很遗憾,目前您无法做到。一个更长期的解决方案是在markdown文档中正确解析LaTeX。然而,这是一个更长期的项目,因为它需要修改我用于渲染markdown的库pulldown-cmark
。欢迎贡献!
已知错误
- 脚注没有正确渲染,因为所有内联markdown格式都丢失了(#3)
路线图
还有很多工作要做。当前的代码库没有经过详细的规划而自然地发展。这表明:代码库相当杂乱,需要重构!
功能方面,我希望很快能够支持
- 语法高亮(#1)
- 使模板变量
post_url
和index_url
在markdown中可用(#5)。这在将外部代码或演示嵌入博客文章时很有用。
依赖项
~12MB
~235K SLoC