【问题标题】:Using Sphinx to write personal websites and blogs使用 Sphinx 编写个人网站和博客
【发布时间】:2010-12-07 06:35:42
【问题描述】:

Sphinx 是一个 Python 库,用于从一组 ReST 格式的文本文件生成漂亮的文档。

我想知道是否有人编写了 Sphinx 插件来使其生成个人网站和博客

特别是对于博客,需要有一种方法可以自动按时间顺序列出帖子并生成 RSS 提要。需要编写一个 Sphinx 插件来生成这种特殊的页面/xml。

以前有人试过吗?

【问题讨论】:

    标签: python plugins web blogs python-sphinx


    【解决方案1】:

    我已经在http://reinout.vanrees.org/weblog 完成了。关键技巧是添加预处理器步骤。我的博客条目位于 weblog/yyyy/mm/dd/ 文件夹结构中。

    脚本遍历该文件夹结构,在每个目录中创建index.txt 文件,列出子项目。然后,正常的 Sphinx 进程会渲染那些 index.txt 文件。

    我为标签添加了一个自定义的 Sphinx 处理器。因此,我的博客条目顶部某处的“.. tags:: python, buildout”会生成标签。预处理器再次收集这些条目并写出一个weblog/tags/TAGNAME.txt 文件,Sphinx 再次正常呈现该文件。

    预处理器还使用最新的 10 个条目创建根 weblog/index.txt。并在(硬编码)RSS 提要的输出目录中添加weblog/atom.xml

    所以:你需要一些自定义的东西,但它几乎是纯文本,所以对我来说这是一个很好的练习。您还可以编写一些帮助脚本来简化生活,例如将文本文件从某处复制到今天的博客目录(包括创建丢失的目录和“svn add”)。

    【讨论】:

    • 你能确定你的标签解决方案吗?
    • @ChrisJohnson:是的,见reinout.vanrees.org/weblog/2012/01/22/…。定制和部分硬编码。随意复制/粘贴。有一天我可能会把它清理到图书馆里,但我已经考虑了两年了,所以我现在没有做出固定的承诺:-)
    【解决方案2】:

    截至目前(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

    【讨论】:

      【解决方案3】:

      Doug hellmann,“本周 Python 模块”的作者,使用 Sphinx 构建他的网站。

      http://www.doughellmann.com/PyMOTW/

      他有几篇涉及狮身人面像主题的帖子,可能会对您有所帮助:

      http://blog.doughellmann.com

      【讨论】:

        【解决方案4】:

        如果你需要写reStructuredText ,你应该试试Pelican

        Pelican 是一个静态站点生成器,用 Python 编写。您将能够直接在 reStructuredText 或 Markdown 中编写您的博客条目。

        【讨论】:

          【解决方案5】:

          查看ABlog for Sphinx

          我正在使用它自己创建一个博客。

          当我在 feedly 中浏览我的提要时,我偶然发现了它。我搜索了一下,发现它很有趣。它还集成了 Disqus,并且可以生成 Atom 提要(目前不太确定那是什么,我是网络新手)

          我还没有弄清楚如何部署我的测试博客,当我发现一些东西时会更新。

          【讨论】:

          • 我已经编辑了您的问题,因为它的编写方式闻起来像垃圾邮件。也许您可以进一步edit 并解释为什么这对 OP 来说是一个很好的解决方案?它是不是例如按照他/她的要求生成 RSS?仅仅一个链接是不够的。
          • 嗯,ABlog 其实是最好的答案。与 tinkerer 相比,它维护得更积极,并允许使用 rst 标记帖子,而不是依赖于文件夹层次结构。它支持 RSS 提要、字体真棒、Disqus 和many other features
          【解决方案6】:

          值得一提的是,sphinx-contrib 扩展中有一个 sphinx 的 RSS 扩展,名为 sphinxcontrib.feed 它和许多其他有趣的狮身人面像的东西都住在http://bitbucket.org/birkenfeld/sphinx-contrib/

          (免责声明:我编写了提要扩展。)

          【讨论】:

            【解决方案7】:

            不是 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 对我来说是一次很棒的博客体验。但是作为一个练习你可以滥用多少狮身人面像,为什么不呢! :-)

            【讨论】:

            • 在 Wordpress 上使用 Sphinx 的优点是您的文章只是纯文本,可以在您喜欢的编辑器中编写、置于版本控制之下、可以进行 grep、语法高亮等。
            • 根据我的经验,Wordpress 代码突出显示对 python 来说很糟糕,而在 Sphinx 中,它可以工作:)
            【解决方案8】:

            我在 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) 用于高图形和相对低速的博客。

            【讨论】:

            • 前两个链接坏了!
            • 愚蠢的 SO 标记破坏了 _ 的。我想我已经把它们修好了。关键是我大量使用 Sphinx。
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-12-13
            • 1970-01-01
            • 2014-08-18
            • 2012-03-30
            • 1970-01-01
            • 2023-01-18
            相关资源
            最近更新 更多