Sphinx是一个 Python 库,用于从一组ReST格式的文本文件生成漂亮的文档。
我想知道是否有人编写了 Sphinx 插件来使其生成个人网站和博客。
特别是对于博客,需要一种方法来自动按时间顺序列出帖子并生成 RSS 提要。需要编写一个 Sphinx 插件来生成这种特殊的页面/xml。
有没有人试过这个?
Sphinx是一个 Python 库,用于从一组ReST格式的文本文件生成漂亮的文档。
我想知道是否有人编写了 Sphinx 插件来使其生成个人网站和博客。
特别是对于博客,需要一种方法来自动按时间顺序列出帖子并生成 RSS 提要。需要编写一个 Sphinx 插件来生成这种特殊的页面/xml。
有没有人试过这个?
我已经在http://reinout.vanrees.org/weblog完成了。关键技巧是添加预处理器步骤。我的博客条目采用weblog/yyyy/mm/dd/
文件夹结构。
一个脚本遍历该文件夹结构,index.txt
在每个目录中创建文件,列出子项目。然后,正常的 Sphinx 进程会渲染这些index.txt
文件。
我为标签添加了一个自定义的 Sphinx 处理器。因此,在我的博客条目顶部某处的“.. tags:: python, buildout”会生成标签。预处理器再次收集这些条目并写出一个weblog/tags/TAGNAME.txt
文件,Sphinx 再次正常呈现。
weblog/index.txt
预处理器还使用最新的 10 个条目创建根。以及weblog/atom.xml
rss 提要的输出目录(硬编码)。
所以:你需要一些自定义的东西,但它几乎是纯文本,所以对我来说这是一个很好的练习。你可以编写一些帮助脚本来简化生活,例如将文本文件从某个地方复制到今天的博客目录(包括创建缺失的目录和“svn add”)。
截至目前(2012 年 2 月),有不同的资源可用于执行您想要的操作:
基于 sphinx 的博客引擎:http: //tinkerer.me/
Reinout Van Rees 的博客:https ://github.com/reinout/reinout.vanrees.org
提要贡献扩展:https ://bitbucket.org/birkenfeld/sphinx-contrib/src/tip/feed/README
Doug hellmann 是“本周 Python 模块”的作者,他使用 Sphinx 做他的网站。
http://www.doughellmann.com/PyMOTW/
他有几篇文章涵盖了狮身人面像主题,可能会对您有所帮助:
如果你需要写reStructuredText,你应该试试Pelican。
Pelican 是一个静态站点生成器,用 Python 编写。您将能够直接在 reStructuredText 或 Markdown 中编写您的博客条目。
我正在使用它自己创建一个博客。
当我在 feedly 中浏览我的提要时,我偶然发现了它。我搜索了一下,发现它很有趣。它还集成了 Disqus,并且可以生成 Atom 提要(目前不太确定那是什么,我是网络新手)
我还没有弄清楚如何部署我的测试博客,当我发现一些东西时会更新。
值得一提的是,sphinx-contrib 扩展中有一个 sphinx 的 RSS 扩展,称为sphinxcontrib.feed
It 和许多其他有趣的 Sphinx 东西,位于http://bitbucket.org/birkenfeld/sphinx-contrib/
(免责声明:我编写了提要扩展。)
不是 Sphinx,而是http://codespeak.net/上的几个站点使用接收 ReST 文本、生成 HTML 并将它们上传到站点的脚本完成。虽然这些脚本不是我写的,但我用过它们。
如果站点无论如何都需要包含大量 ReST 文件,那么生成站点是一种合理的方式,例如在为 python 模块生成文档时,当然这些站点都是关于这些的。如果您需要对站点进行版本控制,这也很好,因为您可以将源代码保存在 svn 或 hg 或其他格式中。
但是如果你开始编写大量的自动菜单和其他扩展,你最终会得到一个内容管理系统。周围已经有很多这样的,所以你可能想先看看它们。
另一个例子是新的 packages.python.org。在那里,您可以根据需要生成文档,然后通过 PyPI 上传带有文档的 zip 文件。Distribute 使用 Sphinx 完成了这项工作:http ://packages.python.org/distribute 。但是不需要特定的脚本,它只是从 Sphinx 文档生成 HTML。
然而...
我必须说,我觉得编写一个博客软件作为 Sphinx 扩展的想法有点有趣,特别是因为已经有这么多优秀的博客软件。无论如何,没有什么能比得上 Wordpress,而且 wordpress.com 对我来说是一次很棒的博客体验。但是作为一个练习你可以滥用多少狮身人面像,为什么不呢!:-)
我在 Sphinx 中重做了我的个人网站 ( http://homepage.mac.com/s_lott/steve/ )。它工作得很好。 可悲的是,SO 标记破坏了_
我的 URL。
我还用 Sphinx 重写了整个《非程序员编程简介》(http://homepage.mac.com/s_lott/books/nonprog/html/index.html)一书。我正在重写 Sphinx 中的 Python 简介。
我不将 Sphinx 用于博客——它不是很方便,但它会起作用。我将blogspot用于低图形/高文本和相对高速的博客。我将 iWeb ( http://web.me.com/s_lott/Travel/Welcome.html ) 用于高图形和相对低速的博客。