有潜力的静态网站生成器
项目描述
有潜力的Python静态网站生成器
另一个静态网站生成器?
当然,为什么不呢 :) 静态网站生成器的数量正在不断增长,但到目前为止,我还没有找到一款灵活的静态网站能满足我的需求。所以我决定自己写一个。
伏特有什么不同之处?
以下是我最喜欢的功能
自动分页
假设你有一个有10篇文章的博客,每篇文章都有一组可能不在所有文章中都存在的标签。只需提供URL模式,伏特就可以生成按标签分类的包含每篇博客文章的页面,分页到你喜欢的样子。
例如,你只需要提供 tag/{tags},伏特就会生成到以下页面的链接 tag/foo、tag/bar、tag/baz,其中每个页面都将包含所有具有该标签的文章。
这不仅仅适用于标签。你还可以用它根据作者、时间(年、日、日期等)和你在文章中放入的任何其他数据创建页面。
所有这些都可以通过配置文件中的简单URL模式实现,如下所示
PAGINATIONS = ('', 'tag/{tags}', '{time:%Y}', '{time:%Y/%m}', '{time:%Y/%m/%d}')
自动重新生成内置服务器
静态网站需要反复生成以反映源代码的变化。过一段时间后,这样做会变得繁琐和恼人。Volt的服务器在检测到源代码和配置文件中的变化时,会自动生成您的静态网站,这样您就可以专注于实际网站内容的实验。
模块化和可扩展性
在内部,Volt实际上是一组不同的引擎,负责您网站的各个部分。例如,博客引擎生成网站的博客部分,而纯引擎生成简单的网页。 看看博客引擎代码有多简单,或者查看主要网站生成函数以了解引擎是如何工作的。
最后,Volt附带了一个插件架构,允许您挂钩到引擎的操作。Volt附带七个插件
Atom feed生成插件(原子化,无额外依赖项)
标记处理插件
reStructured text(rst_parser,需要docutils)
Markdown(markdown_parser,需要python-markdown或python-discount)
Textile(textile_parser,需要python-textile)
语法高亮插件(syntax,需要pygments)
CSS最小化插件(css_minifier,需要cssmin)
JavaScript最小化插件(js_minifier,需要jsmin)
查看它们的代码以了解您如何轻松编写自己的插件。
集中管理的灵活配置选项
根据时间、标题、作者姓名或标签等对内容进行排序。为所有内容设置全局值,例如,为所有博客文章设置作者。定义自己的Jinja2测试或过滤器。设置插件选项。您可以通过一个中央配置文件在Volt中完成所有这些操作:voltconf.py,方便地位于您的项目文件夹中。
所有这些都有静态网站的优点:易于部署、易于备份和跟踪、安全性和速度。
安装
从PyPI的最新版本(0.0.2):pip install volt
从主开发存储库的尖端版本:pip install git+https://github.com/bow/volt.git
Volt仍处于alpha版本且处于高度开发中。有些地方可能会出现问题,但它足够用于创建真正的网站。
bow.web.id (源代码,使用最新开发版本)
依赖项
可选依赖项
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项目目录中的engines和plugins目录中。小部件存储在同一目录的widgets.py中。您还可以指定额外的--builtin来将内置引擎/插件/小部件复制到您的Volt项目目录中。
volt version:显示当前Volt版本。
除了init和demo命令外,所有命令都可以在任何Volt项目目录内部运行。
遗憾的是,目前文档最少。目前,源代码是主要文档。
计划
查看待办事项列表。
归属
项目详情
Volt-0.0.3.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | fdec81801bbdde7bf9f110dc073d2c22caa76651062859fa509b53adbde41c11 |
|
MD5 | e573d052b03763591197a42c6e2ede72 |
|
BLAKE2b-256 | 84e1e6e80ac68314c0f426cd74fed7a944b8e7797ccc53a2c70f427a05a25864 |