一组用于将Django Wagtail站点烘焙为平面文件的辅助工具。
项目描述
Wagtail-bakery
一组用于将Django Wagtail站点烘焙为平面文件的辅助工具。
Wagtail-bakery基于Django bakery构建。请阅读他们的文档以了解详细的配置和如何构建默认的Django平面文件。是的。Wagtail-bakery不仅限于构建Wagtail页面,还可以混合内容!
链接
功能
- 单个管理命令,用于将Wagtail站点构建为平面文件
- 支持多站点、主题和多语言配置
- 支持
i18n_patterns
- 支持生成静态API
- 准备好使用Wagtail可构建视图一次构建所有(未)发布的页面(无需额外代码!)
支持的版本
- Python 3.8 - 3.11
- Django 3.2 - 4.1
- Wagtail >= 4.1
我们旨在支持Wagtail版本,如Wagtail(当前LTS,当前稳定)所支持的版本。
Django/Wagtail组合如Wagtail(对于上述定义的Wagtail版本)所支持的版本。
浏览器支持
我们与Wagtail的浏览器支持目标保持一致。请参阅官方文档。
安装
pip install wagtail-bakery
将bakery
和wagtailbakery
添加到您的INSTALLED_APPS
设置中。
INSTALLED_APPS = (
# ...
'bakery',
'wagtailbakery',
)
配置
定义您是否想构建多个站点或默认站点(请参阅目录输出的示例),默认情况下此设置是False
。
BAKERY_MULTISITE = True
添加您想要构建为平面文件的站点构建目录。
BUILD_DIR = '/tmp/build/'
如您所知,使用Django bakery,最棘手的部分是使您当前的模式/页面可构建,使用可构建视图。由于Django Wagtail在其最低级别仅使用Page
模式,您可以使用Wagtail bakery提供的至少一个已存在的可构建视图。
构建所有已发布的公开页面(用于生产)。
BAKERY_VIEWS = (
'wagtailbakery.views.AllPublishedPagesView',
)
构建所有已发布和未发布的公开页面(用于预览/验收)。
BAKERY_VIEWS = (
'wagtailbakery.views.AllPagesView',
)
要构建表示您站点API的静态JSON文件,请使用以下视图
BAKERY_VIEWS = (
'wagtailbakery.api_views.PagesAPIDetailView',
'wagtailbakery.api_views.PagesAPIListingView',
'wagtailbakery.api_views.TypedPagesAPIListingView',
)
API视图使用Wagtail的V2 API模块。有关配置这些视图渲染的数据,请参阅Wagtail的V2 API配置指南。
用法
通过运行build
管理命令将站点构建为平面文件。
manage.py build
如果您想检查您的静态网站将如何显示,请在构建静态文件一次之后使用buildserver
命令。
manage.py buildserver
示例
在示例目录中,您可以找到一个带有单个站点和多个站点设置的Wagtail配置。
创建一个虚拟环境并进入其中一个示例,您可以使用Make
命令安装所有要求、加载固定数据和运行服务器。
如使用说明部分所述,使用manage.py build
将示例构建为静态文件。
使用BAKERY_MULTISITE=True
构建输出:
build/example.com/index.html
build/example.com/about/index.html
build/example.com/blog/index.html
build/example.com/blog/example/index.html
build/static/
使用BAKERY_MULTISITE=False
(默认)构建输出:
build/index.html
build/about/index.html
build/blog/index.html
build/blog/example/index.html
build/static/
故障排除
对于问题,请在GitHub上提交问题。
开发
要在Github Actions测试矩阵中包含哪些版本组合?
为了防止CI构建时间失去控制,不会测试所有Python/Django/Wagtail组合。
按以下方式进行测试
- 所有受支持的Django/Wagtail组合与最新受支持的Python版本。
- 除最新受支持的Django/Wagtail组合之外的所有Python版本的最新受支持的Django/Wagtail组合。
发布
- 为新的版本创建一个新的分支(例如
release/1.1.3
)。 - 根据语义版本化更新
setup.py
中的版本号。 - 更新
CHANGELOG.md
。 - 在GitHub上,创建一个拉取请求并将其合并。
- 在GitHub上,如果这是一个小版本号的增加(例如
1.1.0
或1.2.0
但不是1.1.1
,1.2.3
),从main
创建一个stable/1.1.x
分支。 - (可选) 如果需要验证任何内容,请发布到 TestPyPI
- 创建并推送一个符合
X.Y.Z.devN
格式的标签(例如1.1.3.dev1
)。 - 跟踪 发布到 TestPyPI 的工作流程。
- 在 TestPyPI: wagtail-bakery 上检查结果。
- 创建并推送一个符合
- 发布到 PyPI
- 创建并推送一个标签,遵循 PEP 440 – 版本标识规范(例如
1.1.3
或1.1.3rc1
),除了用于测试的.devN
后缀(参见上面的 发布到 TestPyPI 步骤)。 - 跟踪 发布到 PyPI 的工作流程。
- 在 PyPI: wagtail-bakery 上检查结果。
- 创建并推送一个标签,遵循 PEP 440 – 版本标识规范(例如
- 在 GitHub 上,为新版本创建一个发布和一个标签。
致谢
感谢 @mhnbcu 首先提出这个想法,以及 Django Bakery 提供了初始的烘焙包。
感谢所有 贡献者 的帮助。
项目详情
wagtail-bakery-0.8.0.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 6ed7bfca032ef69daa51267ea820d4a9780620783559122684f92569c1467ebc |
|
MD5 | 5fd310e3a3baa041b82cf91cdf3f830e |
|
BLAKE2b-256 | 1c4611e5269099fd3a8d04f17dd99337e807863d639c984d59f9dfe957888c88 |