4

我想要一个基于 html 的静态站点,而不是博客/cms,它有几个(很少更新)页面。我认为更新它们的最简单方法是将源保持为 ReST 之类的格式,并在每次更新时对其进行编译。对于这种用法,推荐的编译器是什么?我想拥有自己的主题/设计,除了正确的 ReST 语法之外我不需要任何东西(例如,Sphinx 太多了)。

4

5 回答 5

6

Makefile 将是一个很好的解决方案。这是一个快速模板生成文件

# Flags to pass to rst2html
# e.g. RSTFLAGS = --stylesheet-path=mystyle.css 
RSTFLAGS = 

%.html: %.rst
        rst2html $(RSTFLAGS) $< $@

.PHONY: all
.DEFAULT: all

all: index.html foo.html bar.html # any other html files to be generated from an rst file

然后只需make在包含文件的目录中运行即可从第一个生成 html

于 2010-01-19T19:59:17.560 回答
2

rest2web可能更像您正在寻找的那种东西。

于 2010-01-19T20:07:46.980 回答
1

如果您不一定需要重组文本,但 markdown 或 Textile 也一样,请查看jekyll

我自己用它。竖起大拇指。

于 2010-01-19T20:08:03.360 回答
0

我使用nanoc3和 docutils(通过 sphinx 安装)在静态站点生成器中启用良好的重组文本支持。我已经看过(并且想使用)纯 python 解决方案(hyde),但 nanoc 允许更清洁的 ReST 源文件。

我也考虑过使用 sphinx 来生成一个静态站点,但是如果不滚动大量代码来支持它,要做到这一点并不容易。

如果对此主题仍有兴趣,我很乐意详细说明如何准确地做到这一点。它基本上是使用 docutils 从源代码中输出 html。我有一个简单的 nanoc 处理器可以做到这一点:

module Nanoc3::Filters

  class ReST < Nanoc3::Filter

    identifier :rest

    def run(content, params={})
      open('|rst2html.py --template=rest.template', 'r+') do |io|
        io.write(content)
        io.close_write
        io.read
      end
    end

  end

end

rest.template 文件基本上是一个带有以下单行的虚拟模板:

%(body)s
于 2010-03-06T00:47:32.730 回答
0

您可能想要使用静态站点生成器。有十亿……</p>

https://www.staticgen.com/

于 2016-04-28T11:58:49.423 回答