跳转到主要内容

有潜力的静态网站生成器

项目描述

有潜力的Python静态网站生成器

另一个静态网站生成器?

当然,为什么不呢 :) 静态网站生成器的数量正在不断增长,但到目前为止,我还没有找到一款灵活的静态网站能满足我的需求。所以我决定自己写一个。

伏特有什么不同之处?

以下是我最喜欢的功能

  1. 自动分页

    假设你有一个有10篇文章的博客,每篇文章都有一组可能不在所有文章中都存在的标签。只需提供URL模式,伏特就可以生成按标签分类的包含每篇博客文章的页面,分页到你喜欢的样子。

    例如,你只需要提供 tag/{tags},伏特就会生成到以下页面的链接 tag/footag/bartag/baz,其中每个页面都将包含所有具有该标签的文章。

    这不仅仅适用于标签。你还可以用它根据作者、时间(年、日、日期等)和你在文章中放入的任何其他数据创建页面。

    所有这些都可以通过配置文件中的简单URL模式实现,如下所示

    PAGINATIONS = ('', 'tag/{tags}', '{time:%Y}', '{time:%Y/%m}', '{time:%Y/%m/%d}')
  2. 自动重新生成内置服务器

    静态网站需要反复生成以反映源代码的变化。过一段时间后,这样做会变得繁琐和恼人。Volt的服务器在检测到源代码和配置文件中的变化时,会自动生成您的静态网站,这样您就可以专注于实际网站内容的实验。

  3. 模块化和可扩展性

    在内部,Volt实际上是一组不同的引擎,负责您网站的各个部分。例如,博客引擎生成网站的博客部分,而纯引擎生成简单的网页。 看看博客引擎代码有多简单,或者查看主要网站生成函数以了解引擎是如何工作的。

    最后,Volt附带了一个插件架构,允许您挂钩到引擎的操作。Volt附带七个插件

    • Atom feed生成插件(原子化,无额外依赖项)

    • 标记处理插件

    • 语法高亮插件(syntax,需要pygments

    • CSS最小化插件(css_minifier,需要cssmin

    • JavaScript最小化插件(js_minifier,需要jsmin

    查看它们的代码以了解您如何轻松编写自己的插件。

  4. 集中管理的灵活配置选项

    根据时间、标题、作者姓名或标签等对内容进行排序。为所有内容设置全局值,例如,为所有博客文章设置作者。定义自己的Jinja2测试或过滤器。设置插件选项。您可以通过一个中央配置文件在Volt中完成所有这些操作:voltconf.py,方便地位于您的项目文件夹中。

所有这些都有静态网站的优点:易于部署、易于备份和跟踪、安全性和速度。

安装

从PyPI的最新版本(0.0.2):pip install volt

从主开发存储库的尖端版本:pip install git+https://github.com/bow/volt.git

Volt仍处于alpha版本且处于高度开发中。有些地方可能会出现问题,但它足够用于创建真正的网站。

依赖项

可选依赖项

  • python-markdown(默认安装到volt demo中,如果未使用,可以安全删除)

使用方法

在空目录中运行volt demo以通过浏览器打开localhost:8000来体验一个快速的Volt演示。

以下是当前可用的命令的简要总结

  • volt init:启动Volt项目,必须在空目录中运行。此命令创建的voltconf.py文件目前包含几乎所有默认设置。您可以安全地编辑或删除它们。

  • volt demo:启动演示,必须在空目录中运行。

  • volt gen:将网站生成到当前项目目录中的site文件夹。

  • volt serve:生成网站并启动指向site目录的服务器。

  • volt ext:为编写您的自定义引擎、插件或小部件添加模板。自定义引擎和插件分别存储在根Volt项目目录中的enginesplugins目录中。小部件存储在同一目录的widgets.py中。您还可以指定额外的--builtin来将内置引擎/插件/小部件复制到您的Volt项目目录中。

  • volt version:显示当前Volt版本。

除了initdemo命令外,所有命令都可以在任何Volt项目目录内部运行。

遗憾的是,目前文档最少。目前,源代码是主要文档。

计划

查看待办事项列表

归属

Volt受到Blogofile的启发,不幸的是,它已经停止开发

由以下组织支持