跳转到主要内容

一组用于将Django Wagtail站点烘焙为平面文件的辅助工具。

项目描述

Wagtail-bakery

一组用于将Django Wagtail站点烘焙为平面文件的辅助工具。

License: MIT Build Status Coverage Status

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

bakerywagtailbakery添加到您的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组合。

发布

  1. 为新的版本创建一个新的分支(例如release/1.1.3)。
  2. 根据语义版本化更新setup.py中的版本号。
  3. 更新CHANGELOG.md
  4. 在GitHub上,创建一个拉取请求并将其合并。
  5. 在GitHub上,如果这是一个小版本号的增加(例如1.1.01.2.0但不是1.1.11.2.3),从main创建一个stable/1.1.x分支。
  6. (可选) 如果需要验证任何内容,请发布到 TestPyPI
    1. 创建并推送一个符合 X.Y.Z.devN 格式的标签(例如 1.1.3.dev1)。
    2. 跟踪 发布到 TestPyPI 的工作流程。
    3. TestPyPI: wagtail-bakery 上检查结果。
  7. 发布到 PyPI
    1. 创建并推送一个标签,遵循 PEP 440 – 版本标识规范(例如 1.1.31.1.3rc1),除了用于测试的 .devN 后缀(参见上面的 发布到 TestPyPI 步骤)。
    2. 跟踪 发布到 PyPI 的工作流程。
    3. PyPI: wagtail-bakery 上检查结果。
  8. 在 GitHub 上,为新版本创建一个发布和一个标签。

致谢

感谢 @mhnbcu 首先提出这个想法,以及 Django Bakery 提供了初始的烘焙包。

感谢所有 贡献者 的帮助。

项目详情


下载文件

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

源代码分发

wagtail-bakery-0.8.0.tar.gz (9.4 kB 查看散列

上传时间 源代码

由以下机构支持

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