跳转到主要内容

基于Sphinx的博客引擎

项目描述

HgBlog是对Sphinx项目的一系列修改,使其更适合作为博客引擎。它适用于喜欢使用reStructuredText标记来编写文档的人。

快速入门向导可以为您设置HgBlog。这包括Sphinx快速启动实用程序所做的所有常规事情,但它会为您创建一个Mercurial仓库,并安装一个钩子和智能忽略。当您提交更改到仓库时,钩子会自动将Mercurial跟踪的.rst文件转换为HTML,使用Sphinx。

此外,当您从远程仓库的克隆中拉取更改时,钩子也会进行转换,就像您本地提交时一样。您也可以在远程克隆上设置钩子。钩子仅转换由Mercurial跟踪的.rst文件。这意味着您可以在不提交到仓库的情况下工作在新的博客文章上,以便它们不会在线上显示。

为什么还需要更多的博客引擎呢?

是的,有很多。其中大部分依赖于需要定期维护和备份的数据库。数据库也可能使您的博客运行变慢。HgBlog为您提供了一个方法,可以将博客文章作为静态HTML提供,而不需要从数据库请求对象,使其适合布局等。任何Web服务器都应该能够很好地提供HgBlog生成的内容。

我并不是说数据库支持的博客有什么问题。我维护的博客是使用Django(数据库支持的)驱动的。它对我工作正常。然而,有些人可能不想被完全的博客引擎规则所限制(无论这些规则是什么)。人们有各种各样的原因来做不同的事情。有些人甚至不需要理由。这归结于什么适合您。

HgBlog为您提供什么功能是应该具有吸引力的呢?

  • 速度。无需处理博客引擎规定的任何WYSIWYG编辑器的格式问题。只需使用reStructuredText标记(如果您以前从未使用过,那么它相当容易学习)并让Sphinx处理格式化。

  • 一致性。再次强调,reStructuredText是一个非常简单的格式,可以生成一致、格式良好的文档。

  • 可移植性。由于HgBlog生成静态HTML,您可以将其放在任何服务器上。实际上,您甚至不需要任何服务器软件——只需一个网络浏览器。此外,Sphinx还允许您将文章导出为多种格式

    • HTML,多个文件

    • HTML,单个文件

    • epub

    • LaTeX

    • LaTeX PDF

    • 纯文本

    • 手册页

    使用其他工具,您甚至可以将.rst文件转换为PDF或ODT文档。

  • 冗余。由于您希望在博客上发布的每篇文章都必须检查到Mercurial,这是一个分布式版本控制系统。这意味着您可以轻松地将博客克隆到另一个系统,这是一种非常快速和有效的备份文章的方法。如果您的博客的“主服务器”损坏,如果您使用Mercurial,那么您很可能至少有一个完整、最新的博客备份。

可能的流程

  • 您有一个提供Python和SSH访问的服务器,您可以在您的家目录中安装自己的软件(或者您有权在其他地方安装完全的root访问)。在您的服务器上运行快速启动工具,将仓库克隆到您的本地计算机上,编写文章,提交它们,并将它们推送到服务器。当您准备将文章发布到网络上时,只需在服务器上的仓库上运行hg up即可。确保您的Web服务器软件已配置为从您的build/html目录提供静态内容。

  • 使用HgBlog创建自己的个人维基。记录您在工作中做的事情或您目前正在做的项目。

  • 没有支持ASP、PHP、Ruby、Python或您喜欢的任何语言的ASP、PHP、Ruby、Python或任何其他语言的服务器?使用HgBlog在本地编写文章,提交.rst文件的更改,并使用FTP程序将HTML文件上传到您的托管提供商。

需求

我使用Linux、Python 2.6.4、Mercurial 1.5.1、Sphinx 1.0-pre、docutils 0.6、Jinja2 2.4.1和Pygments 1.3.1开发并测试了HgBlog。然而,Sphinx建议以下版本要求。我在对Mercurial版本的要求上只是谨慎行事。

  • Python 2.4+

  • docutils 0.4+

  • Jinja2 2.2+

  • Pygments 0.8+

  • Mercurial 1.5+

安装

有几种安装HgBlog的方法

  • 使用pip(推荐)

    pip install -U hgblog
  • 使用easy_install

    easy_install hgblog
  • 从CheeseShop下载

    • PyPI下载.tar.gz文件

    • 提取 .tar.gz 文件

    • 使用解压目录中的 setup.py 运行 python setup.py install

  • 使用 Mercurial

    hg qclone http://bitbucket.org/codekoala/hgblog
    cd hgblog
    hg qapply -a
    python setup.py install

入门指南

HgBlog 利用 Sphinx 项目的现有快速入门向导。进行了一些修改以减少所需的步骤数量,因此您应该能够在一分钟内使用以下方法启动和运行

hgblog-quickstart

您需要做的只是

  • 提供用于博客需求的文件系统目录。

  • 为您的博客提供名称

  • 提供您的姓名

  • 选择您希望在博客中包含的任何扩展

完成上述操作后,您应该会有一些新目录,其中一个将被称为 source。这是您应该编写 .rst 文章的地方。完成对特定文章的工作后,您可以使用

hg add
hg ci

…将其添加并提交到您的 Mercurial 仓库。此时,Sphinx 将根据您的 .rst 文件生成博客的 HTML。

如果您想使用 Mercurial 将博客文章克隆到另一个系统,您可能对添加由快速入门实用程序安装的相同钩子感兴趣。首先,这需要在其他系统上安装 HgBlog。接下来,编辑新仓库的 .hg/hgrc 文件

[hooks]
update.hgblog = python:hgblog.generate_html.htmlize_articles
commit.hgblog = python:hgblog.generate_html.htmlize_articles

这些钩子使得每次您向本地仓库提交更改以及每次您使用从其他地方拉取的更改集更新本地仓库时,都会生成您页面的 HTML 版本。

不提交生成 HTML

我明白,在提交更改到仓库之前,您可能想查看 .rst 文件的结果 HTML 有好几次。我创建了一个简单的命令来实现这一点

hgblog-refresh

您应该能够在博客 Mercurial 仓库的任何地方调用它,并且您的 HTML 文件应该得到适当的刷新。

待办事项

  • 添加 RSS 源

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定要选择哪一个,请了解更多关于 安装软件包 的信息。

源分发

hgblog-0.7.1.tar.gz (2.7 MB 查看哈希值)

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面