render-engine 2026.3.3__tar.gz → 2026.3.4a2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/.github/PULL_REQUEST_TEMPLATE.md +2 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/.github/workflows/lint.yml +9 -13
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/.github/workflows/publish.yml +4 -7
- render_engine-2026.3.4a2/.github/workflows/todos.yml +31 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/.github/workflows/ty.yml +1 -1
- render_engine-2026.3.4a2/.markdownlint.json +13 -0
- render_engine-2026.3.4a2/.pre-commit-config.yaml +36 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/PKG-INFO +23 -14
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/README.md +22 -11
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/collection.md +9 -4
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/content_manager.md +3 -1
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/contributing/CONTRIBUTING.md +30 -2
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/contributing/SECURITY.md +4 -4
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/contributing/environment_setup.md +9 -4
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/contributing/gen_badge.md +3 -1
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/contributing/github-actions-file-patterns.md +7 -3
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/contributing/style-guide.md +3 -1
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/contributing/testing.md +3 -1
- render_engine-2026.3.4a2/docs/docs/data_object.md +65 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/feeds.md +5 -2
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/getting-started/building-your-site.md +3 -1
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/getting-started/creating-a-collection.md +3 -1
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/getting-started/creating-a-page.md +3 -1
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/getting-started/creating-your-app.md +7 -3
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/getting-started/getting-started.md +14 -7
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/getting-started/installation.md +8 -4
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/getting-started/layout.md +3 -1
- render_engine-2026.3.4a2/docs/docs/index.md +45 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/parsers.md +4 -1
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/plugins.md +3 -1
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/site.md +7 -3
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/templates.md +5 -2
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/mkdocs.yml +1 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/pyproject.toml +4 -2
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/__init__.py +2 -1
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/__version__.py +3 -3
- render_engine-2026.3.4a2/src/render_engine/data_object.py +58 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/render_engine_templates/base_collection_path.md +5 -2
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/site.py +65 -4
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/site_map.py +26 -6
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine.egg-info/PKG-INFO +23 -14
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine.egg-info/SOURCES.txt +3 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine.egg-info/requires.txt +0 -2
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/tests/test_site.py +33 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/tests/test_site_map.py +2 -2
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/uv.lock +44 -4
- render_engine-2026.3.3/.markdownlint.json +0 -8
- render_engine-2026.3.3/.pre-commit-config.yaml +0 -19
- render_engine-2026.3.3/docs/docs/index.md +0 -38
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/.all-contributorsrc +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/.devcontainer/Dockerfile +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/.devcontainer/devcontainer.json +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/.devcontainer/setup.sh +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/.github/FUNDING.yml +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/.github/ISSUE_TEMPLATE/config.yaml +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/.github/ISSUE_TEMPLATE/form_issue_template.yml +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/.github/dependabot-bot.yml +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/.github/dependabot.yml +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/.github/labeler.yml +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/.github/release.yml +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/.github/workflows/devcontainer-ci.yml +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/.github/workflows/labeler.yml +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/.github/workflows/scorecard.yml +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/.github/workflows/test.yml +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/.gitignore +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/.readthedocs.yml +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/.vscode/tasks.json +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/SECURITY.md +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/coverage-badge.svg +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/archive.md +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/assets/create environment vs code.gif +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/assets/create-app-help.png +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/assets/create-codespace.gif +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/assets/launching a dev container.gif +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/assets/render-engine-init-help.png +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/assets/render-engine-init.png +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/cli.md +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/contributing/CODE_OF_CONDUCT.md +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/contributing/typechecking.md +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/custom_collections.md +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/page.md +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/site_map.md +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/theme_management.md +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/justfile +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/noxfile.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/setup.cfg +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/.gitignore +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/_base_object.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/archive.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/blog.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/collection.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/content_managers/__init__.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/content_managers/base_content_manager.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/content_managers/file_content_manager.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/engine.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/feeds.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/hookspecs.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/links.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/page.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/parsers/markdown.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/plugins.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/py.typed +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/render_engine_templates/__init__.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/render_engine_templates/archive.html +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/render_engine_templates/base.html +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/render_engine_templates/base_templates/_archive.html +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/render_engine_templates/base_templates/_base.html +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/render_engine_templates/base_templates/_page.html +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/render_engine_templates/components/footer.html +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/render_engine_templates/components/page_title.html +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/render_engine_templates/page.html +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/render_engine_templates/rss2.0.xml +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/render_engine_templates/rss2.0_items.xml +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/render_engine_templates/sitemap.xml +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/render_engine_templates/sitemap_item.xml +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/themes.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine/utils/__init__.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine.egg-info/dependency_links.txt +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/src/render_engine.egg-info/top_level.txt +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/tests/conftest.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/tests/test_archive.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/tests/test_base_object.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/tests/test_blog.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/tests/test_collections.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/tests/test_engine.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/tests/test_feeds/conftest_feed.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/tests/test_feeds/test_feeds.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/tests/test_file_content_manager.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/tests/test_page.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/tests/test_parsers_remove_2024_3_1.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/tests/test_plugins.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/tests/test_templates/test_base_html.py +0 -0
- {render_engine-2026.3.3 → render_engine-2026.3.4a2}/tests/test_theme_manager.py +0 -0
|
@@ -16,25 +16,21 @@ jobs:
|
|
|
16
16
|
- uses: actions/checkout@v6.0.1
|
|
17
17
|
with:
|
|
18
18
|
fetch-depth: 0
|
|
19
|
-
- name: Install
|
|
20
|
-
uses:
|
|
19
|
+
- name: Install uv
|
|
20
|
+
uses: astral-sh/setup-uv@v7
|
|
21
21
|
with:
|
|
22
|
-
python-version:
|
|
23
|
-
cache: 'pip' # caching pip dependencies
|
|
22
|
+
python-version: 3.14
|
|
24
23
|
- name: Install dependencies
|
|
25
|
-
run:
|
|
26
|
-
python -m pip install --upgrade pip
|
|
27
|
-
pip install "ruff==0.11.12"
|
|
28
|
-
- name: Check Linting
|
|
29
|
-
run: ruff check . --output-format=github
|
|
24
|
+
run: uvx ruff check . --output-format=github
|
|
30
25
|
- name: Check formatting
|
|
31
|
-
run: ruff format . --check
|
|
26
|
+
run: uvx ruff format . --check
|
|
32
27
|
|
|
33
28
|
lint-docs:
|
|
34
29
|
name: Lint Markdown
|
|
35
30
|
runs-on: ubuntu-latest
|
|
36
31
|
steps:
|
|
37
32
|
- uses: actions/checkout@v6.0.1
|
|
38
|
-
-
|
|
39
|
-
|
|
40
|
-
|
|
33
|
+
- name: lint-test
|
|
34
|
+
uses: DavidAnson/markdownlint-cli2-action@v22
|
|
35
|
+
with:
|
|
36
|
+
globs: '**/*.md'
|
|
@@ -17,16 +17,13 @@ jobs:
|
|
|
17
17
|
- name: Checkout source
|
|
18
18
|
uses: actions/checkout@v6.0.1
|
|
19
19
|
|
|
20
|
-
- name: Set up Python
|
|
21
|
-
uses:
|
|
20
|
+
- name: Set up Python
|
|
21
|
+
uses: astral-sh/setup-uv@v7
|
|
22
22
|
with:
|
|
23
|
-
python-version: 3.
|
|
24
|
-
cache: 'pip' # caching pip dependencies
|
|
25
|
-
- name: Install build dependencies
|
|
26
|
-
run: python -m pip install build twine
|
|
23
|
+
python-version: 3.14
|
|
27
24
|
|
|
28
25
|
- name: Build distributions
|
|
29
|
-
run:
|
|
26
|
+
run: uv build
|
|
30
27
|
|
|
31
28
|
- name: Publish package to PyPI
|
|
32
29
|
uses: pypa/gh-action-pypi-publish@release/v1
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
name: "Run TODO to Issue"
|
|
2
|
+
on:
|
|
3
|
+
pull_request:
|
|
4
|
+
branches: [main]
|
|
5
|
+
jobs:
|
|
6
|
+
build:
|
|
7
|
+
runs-on: "ubuntu-latest"
|
|
8
|
+
permissions:
|
|
9
|
+
contents: write
|
|
10
|
+
issues: write
|
|
11
|
+
pull-requests: write
|
|
12
|
+
steps:
|
|
13
|
+
- uses: "actions/checkout@v6"
|
|
14
|
+
- name: "TODO to Issue"
|
|
15
|
+
uses: "alstr/todo-to-issue-action@v5"
|
|
16
|
+
with:
|
|
17
|
+
INSERT_ISSUE_URLS: "true"
|
|
18
|
+
CLOSES_ISSUE: "true"
|
|
19
|
+
- name: Set Git user
|
|
20
|
+
run: |
|
|
21
|
+
git config --global user.name "github-actions[bot]"
|
|
22
|
+
git config --global user.email "github-actions[bot]@users.noreply.github.com"
|
|
23
|
+
- name: Commit and Push Changes
|
|
24
|
+
run: |
|
|
25
|
+
git add -A
|
|
26
|
+
if [[ `git status --porcelain` ]]; then
|
|
27
|
+
git commit -m "Automatically added GitHub issue links to TODOs"
|
|
28
|
+
git push origin main
|
|
29
|
+
else
|
|
30
|
+
echo "No changes to commit"
|
|
31
|
+
fi
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
repos:
|
|
2
|
+
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
3
|
+
rev: v2.3.0
|
|
4
|
+
hooks:
|
|
5
|
+
- id: check-yaml
|
|
6
|
+
- id: end-of-file-fixer
|
|
7
|
+
- id: trailing-whitespace
|
|
8
|
+
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
9
|
+
# Ruff version.
|
|
10
|
+
rev: v0.15.1
|
|
11
|
+
hooks:
|
|
12
|
+
# Run the linter.
|
|
13
|
+
- id: ruff-check
|
|
14
|
+
args: [ --fix ]
|
|
15
|
+
# Run the formatter.
|
|
16
|
+
- id: ruff-format
|
|
17
|
+
- repo: local
|
|
18
|
+
hooks:
|
|
19
|
+
- id: ty-check
|
|
20
|
+
name: ty
|
|
21
|
+
entry: uv run ty check src/render_engine
|
|
22
|
+
language: system
|
|
23
|
+
types: [python]
|
|
24
|
+
pass_filenames: false
|
|
25
|
+
- repo: https://github.com/DavidAnson/markdownlint-cli2
|
|
26
|
+
rev: v0.6.0
|
|
27
|
+
hooks:
|
|
28
|
+
- id: markdownlint-cli2
|
|
29
|
+
- repo: local
|
|
30
|
+
hooks:
|
|
31
|
+
- id: deptry
|
|
32
|
+
name: deptry
|
|
33
|
+
entry: uv run deptry src
|
|
34
|
+
language: system
|
|
35
|
+
always_run: true
|
|
36
|
+
pass_filenames: false
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: render_engine
|
|
3
|
-
Version: 2026.3.
|
|
3
|
+
Version: 2026.3.4a2
|
|
4
4
|
Summary: A Flexible Static Site Generator for Python
|
|
5
5
|
Project-URL: homepage, https://github.com/render-engine/render-engine/
|
|
6
6
|
Project-URL: repository, https://github.com/render-engine/render-engine/
|
|
@@ -8,11 +8,9 @@ Project-URL: documentation, https://render-engine.readthedocs.io/en/latest/
|
|
|
8
8
|
Requires-Python: >=3.10
|
|
9
9
|
Description-Content-Type: text/markdown
|
|
10
10
|
Requires-Dist: jinja2
|
|
11
|
-
Requires-Dist: markdown2
|
|
12
11
|
Requires-Dist: more-itertools
|
|
13
12
|
Requires-Dist: pluggy
|
|
14
13
|
Requires-Dist: python-dateutil
|
|
15
|
-
Requires-Dist: python-frontmatter
|
|
16
14
|
Requires-Dist: python-slugify
|
|
17
15
|
Requires-Dist: render-engine-parser
|
|
18
16
|
Requires-Dist: render-engine-markdown
|
|
@@ -30,15 +28,15 @@ Requires-Dist: render-engine-sitemap; extra == "extras"
|
|
|
30
28
|
|
|
31
29
|
# Render Engine
|
|
32
30
|
|
|
33
|
-
[![PyTest]
|
|
34
|
-
![genbadge-coverage]
|
|
35
|
-
[![Discord]
|
|
31
|
+
[![PyTest][pytest-badge]][pytest-action]
|
|
32
|
+
![genbadge-coverage][coverage-badge]
|
|
33
|
+
[![Discord][discord-badge]][discord-link]
|
|
36
34
|
|
|
37
35
|
## Learn More
|
|
38
36
|
|
|
39
|
-
- [Check out the Documentation]
|
|
40
|
-
- [Contributors and Builders, Check out the Wiki]
|
|
41
|
-
- [Join the community!]
|
|
37
|
+
- [Check out the Documentation][docs]
|
|
38
|
+
- [Contributors and Builders, Check out the Wiki][wiki]
|
|
39
|
+
- [Join the community!][discord-link]
|
|
42
40
|
|
|
43
41
|
## What is RenderEngine
|
|
44
42
|
|
|
@@ -53,10 +51,10 @@ Requires-Dist: render-engine-sitemap; extra == "extras"
|
|
|
53
51
|
|
|
54
52
|
## Installing Render Engine
|
|
55
53
|
|
|
56
|
-
To use the render engine, you must have Python 3.10 or greater installed. You can download Python from [python.org]
|
|
54
|
+
To use the render engine, you must have Python 3.10 or greater installed. You can download Python from [python.org][python].
|
|
57
55
|
|
|
58
|
-
- Linux/MacOS: [python.org]
|
|
59
|
-
- Windows: [Microsoft Store]
|
|
56
|
+
- Linux/MacOS: [python.org][python]
|
|
57
|
+
- Windows: [Microsoft Store][ms-store]
|
|
60
58
|
|
|
61
59
|
Render Engine is available in PyPI and can be installed using pip:
|
|
62
60
|
|
|
@@ -72,7 +70,7 @@ pip install render-engine[cli]
|
|
|
72
70
|
|
|
73
71
|
## Getting Started
|
|
74
72
|
|
|
75
|
-
Check out the [Getting Started]
|
|
73
|
+
Check out the [Getting Started][getting-started] Section in the [Documentation][docs]
|
|
76
74
|
|
|
77
75
|
## Finding Awesome Add-Ons
|
|
78
76
|
|
|
@@ -127,10 +125,21 @@ Please review the [contributing][contributing] section of our docs for more info
|
|
|
127
125
|
|
|
128
126
|
### Sponsors at the $20/month and Higher Level
|
|
129
127
|
|
|
130
|
-
- [Brian Douglas]
|
|
128
|
+
- [Brian Douglas][bdougie]
|
|
131
129
|
|
|
132
130
|
Thank you to them and all of those who continue to support this project!
|
|
133
131
|
|
|
132
|
+
[pytest-badge]: https://github.com/kjaymiller/render_engine/actions/workflows/test.yml/badge.svg
|
|
133
|
+
[pytest-action]: https://github.com/kjaymiller/render_engine/actions/workflows/test.yml
|
|
134
|
+
[coverage-badge]: ./coverage-badge.svg
|
|
135
|
+
[discord-badge]: https://img.shields.io/discord/1174377880118104156?label=Discord&color=purple
|
|
136
|
+
[discord-link]: https://discord.gg/2xMQ4j4d8m
|
|
137
|
+
[docs]: https://render-engine.readthedocs.io/en/latest/
|
|
138
|
+
[wiki]: https://github.com/render-engine/render-engine/wiki
|
|
139
|
+
[python]: https://python.org
|
|
140
|
+
[ms-store]: https://apps.microsoft.com/store/detail/python-311/9NRWMJP3717K
|
|
141
|
+
[getting-started]: https://render-engine.readthedocs.io/en/latest/page/
|
|
142
|
+
[bdougie]: https://github.com/bdougie
|
|
134
143
|
[contributing]: https://render-engine.readthedocs.io/en/latest/contributing/CONTRIBUTING/
|
|
135
144
|
[page-docs]: https://render-engine.readthedocs.io/en/latest/page/
|
|
136
145
|
[collection-docs]: https://render-engine.readthedocs.io/en/latest/collection/
|
|
@@ -6,15 +6,15 @@
|
|
|
6
6
|
|
|
7
7
|
# Render Engine
|
|
8
8
|
|
|
9
|
-
[![PyTest]
|
|
10
|
-
![genbadge-coverage]
|
|
11
|
-
[![Discord]
|
|
9
|
+
[![PyTest][pytest-badge]][pytest-action]
|
|
10
|
+
![genbadge-coverage][coverage-badge]
|
|
11
|
+
[![Discord][discord-badge]][discord-link]
|
|
12
12
|
|
|
13
13
|
## Learn More
|
|
14
14
|
|
|
15
|
-
- [Check out the Documentation]
|
|
16
|
-
- [Contributors and Builders, Check out the Wiki]
|
|
17
|
-
- [Join the community!]
|
|
15
|
+
- [Check out the Documentation][docs]
|
|
16
|
+
- [Contributors and Builders, Check out the Wiki][wiki]
|
|
17
|
+
- [Join the community!][discord-link]
|
|
18
18
|
|
|
19
19
|
## What is RenderEngine
|
|
20
20
|
|
|
@@ -29,10 +29,10 @@
|
|
|
29
29
|
|
|
30
30
|
## Installing Render Engine
|
|
31
31
|
|
|
32
|
-
To use the render engine, you must have Python 3.10 or greater installed. You can download Python from [python.org]
|
|
32
|
+
To use the render engine, you must have Python 3.10 or greater installed. You can download Python from [python.org][python].
|
|
33
33
|
|
|
34
|
-
- Linux/MacOS: [python.org]
|
|
35
|
-
- Windows: [Microsoft Store]
|
|
34
|
+
- Linux/MacOS: [python.org][python]
|
|
35
|
+
- Windows: [Microsoft Store][ms-store]
|
|
36
36
|
|
|
37
37
|
Render Engine is available in PyPI and can be installed using pip:
|
|
38
38
|
|
|
@@ -48,7 +48,7 @@ pip install render-engine[cli]
|
|
|
48
48
|
|
|
49
49
|
## Getting Started
|
|
50
50
|
|
|
51
|
-
Check out the [Getting Started]
|
|
51
|
+
Check out the [Getting Started][getting-started] Section in the [Documentation][docs]
|
|
52
52
|
|
|
53
53
|
## Finding Awesome Add-Ons
|
|
54
54
|
|
|
@@ -103,10 +103,21 @@ Please review the [contributing][contributing] section of our docs for more info
|
|
|
103
103
|
|
|
104
104
|
### Sponsors at the $20/month and Higher Level
|
|
105
105
|
|
|
106
|
-
- [Brian Douglas]
|
|
106
|
+
- [Brian Douglas][bdougie]
|
|
107
107
|
|
|
108
108
|
Thank you to them and all of those who continue to support this project!
|
|
109
109
|
|
|
110
|
+
[pytest-badge]: https://github.com/kjaymiller/render_engine/actions/workflows/test.yml/badge.svg
|
|
111
|
+
[pytest-action]: https://github.com/kjaymiller/render_engine/actions/workflows/test.yml
|
|
112
|
+
[coverage-badge]: ./coverage-badge.svg
|
|
113
|
+
[discord-badge]: https://img.shields.io/discord/1174377880118104156?label=Discord&color=purple
|
|
114
|
+
[discord-link]: https://discord.gg/2xMQ4j4d8m
|
|
115
|
+
[docs]: https://render-engine.readthedocs.io/en/latest/
|
|
116
|
+
[wiki]: https://github.com/render-engine/render-engine/wiki
|
|
117
|
+
[python]: https://python.org
|
|
118
|
+
[ms-store]: https://apps.microsoft.com/store/detail/python-311/9NRWMJP3717K
|
|
119
|
+
[getting-started]: https://render-engine.readthedocs.io/en/latest/page/
|
|
120
|
+
[bdougie]: https://github.com/bdougie
|
|
110
121
|
[contributing]: https://render-engine.readthedocs.io/en/latest/contributing/CONTRIBUTING/
|
|
111
122
|
[page-docs]: https://render-engine.readthedocs.io/en/latest/page/
|
|
112
123
|
[collection-docs]: https://render-engine.readthedocs.io/en/latest/collection/
|
|
@@ -23,7 +23,7 @@ class BasicCollection(Collection):
|
|
|
23
23
|
|
|
24
24
|
Collection pages **MUST** come from a `content_path` and all be the same content type.
|
|
25
25
|
|
|
26
|
-
`content_path` can be a string representing a path or URL, depending on the [parser]
|
|
26
|
+
`content_path` can be a string representing a path or URL, depending on the [parser] used.
|
|
27
27
|
|
|
28
28
|
`sort_by` can be either a single `attribute` as a `str` or a `list` of attributes to be used as a sort key.
|
|
29
29
|
|
|
@@ -54,7 +54,7 @@ content_manager_extras: dict[str, Any]: Configuration options to send to the `Co
|
|
|
54
54
|
|
|
55
55
|
`archives: typing.Generator[Archive, None, None]` `property`
|
|
56
56
|
|
|
57
|
-
Returns a [Archive]
|
|
57
|
+
Returns a [Archive] objects containing the pages from the `content_path`.
|
|
58
58
|
|
|
59
59
|
Archives are an iterable and the individual pages are built shortly after the collection pages are
|
|
60
60
|
built. This happens when [Site.render][site-render] is called.
|
|
@@ -63,7 +63,7 @@ built. This happens when [Site.render][site-render] is called.
|
|
|
63
63
|
|
|
64
64
|
`get_page(content_path=None)`
|
|
65
65
|
|
|
66
|
-
Returns the [page]
|
|
66
|
+
Returns the [page] Object for the specified Content Path
|
|
67
67
|
|
|
68
68
|
`iter_content_path()`
|
|
69
69
|
|
|
@@ -109,6 +109,11 @@ You can have archives generated by setting the `has_archive` to True.
|
|
|
109
109
|
If you call `archives` from your collection and neither `has_archive` nor `items_per_page` is set,
|
|
110
110
|
an error will be raised and an archive containing all pages will be generated.
|
|
111
111
|
|
|
112
|
-
For more information, see [Collection Archives]
|
|
112
|
+
For more information, see [Collection Archives].
|
|
113
113
|
|
|
114
114
|
[site-render]: site.md?id=render
|
|
115
|
+
|
|
116
|
+
[archive]: archive.md
|
|
117
|
+
[collection archives]: archive.md
|
|
118
|
+
[page]: page.md
|
|
119
|
+
[parser]: parsers.md?id=basepageparser
|
|
@@ -15,7 +15,7 @@ content is stored in the file system with each piece of content existing in a di
|
|
|
15
15
|
|
|
16
16
|
## Selecting a `ContentManager`
|
|
17
17
|
|
|
18
|
-
The `ContentManager` for a given [`Collection`]
|
|
18
|
+
The `ContentManager` for a given [`Collection`] is controlled by the `ContentManager` attribute. When
|
|
19
19
|
the class is instantiated the `ContentManager` is also instantiated with any `content_manager_extras` being passed
|
|
20
20
|
as arguments. To access the `ContentManager` of a given `Collection` use the `content_manager` attribute.
|
|
21
21
|
|
|
@@ -85,3 +85,5 @@ content: str = None # Updated content
|
|
|
85
85
|
```
|
|
86
86
|
|
|
87
87
|
[file-content-manager]: https://github.com/render-engine/render-engine/blob/main/src/render_engine/content_managers/file_content_manager.py
|
|
88
|
+
|
|
89
|
+
[`collection`]: collection.md
|
|
@@ -13,7 +13,7 @@ Docs can be found at <https://render-engine.readthedocs.org>
|
|
|
13
13
|
|
|
14
14
|
## Code of Conduct
|
|
15
15
|
|
|
16
|
-
Render Engine and all of the packages in this org follow the same [Code of Conduct]
|
|
16
|
+
Render Engine and all of the packages in this org follow the same [Code of Conduct].
|
|
17
17
|
|
|
18
18
|
## Before you Contribute
|
|
19
19
|
|
|
@@ -23,7 +23,7 @@ When suggesting a feature, consider the following:
|
|
|
23
23
|
- Would your feature be a good theme?
|
|
24
24
|
- Could this be implemented as a Custom Parsers or Collections
|
|
25
25
|
|
|
26
|
-
More on when to choose these solutions in our [docs]
|
|
26
|
+
More on when to choose these solutions in our [docs][docs-contributing].
|
|
27
27
|
|
|
28
28
|
## Filing an Issue
|
|
29
29
|
|
|
@@ -37,6 +37,7 @@ If you see or experience a problem, please file an issue. Include any important
|
|
|
37
37
|
- Plugins/Themes/Custom Parsers & Collections Installed
|
|
38
38
|
- Commands/Code Used
|
|
39
39
|
- Output
|
|
40
|
+
- [AI Attestation][ai-attestation]
|
|
40
41
|
|
|
41
42
|
## Wait to be Assigned Issues
|
|
42
43
|
|
|
@@ -74,6 +75,12 @@ all supported versions.
|
|
|
74
75
|
- 🚫 changes aren't breaking existing code (failing tests)
|
|
75
76
|
- 🚫 Ensure new dependencies are listed, justified, and approved to be added.
|
|
76
77
|
|
|
78
|
+
## TODOs
|
|
79
|
+
|
|
80
|
+
Todos are not encouraged all the time but if necessary please indicate any todos with the `# TODO Prefix`.
|
|
81
|
+
We use [todo-to-issue] as a github action that will create issues for any TODOs that are created.
|
|
82
|
+
This will modify your code with the issue number and link to the TODO in the comments.
|
|
83
|
+
|
|
77
84
|
## Contributing to Documentation
|
|
78
85
|
|
|
79
86
|
Render Engine uses [readthedocs][readthedocs] in combination with [MkDocs][mkdocs],
|
|
@@ -98,7 +105,25 @@ If you're starting from a blank PR be sure to include the following:
|
|
|
98
105
|
- issue(s)/discussions being addressed
|
|
99
106
|
- Documentation or tests added/updated
|
|
100
107
|
- Any follow up tasks pending
|
|
108
|
+
- [AI Attestation][ai-attestation]
|
|
109
|
+
|
|
110
|
+
When submitting your PR, please be sure to use the template provided.
|
|
111
|
+
**Not following this guideline will result in the immediate rejection of your PR.**
|
|
112
|
+
|
|
113
|
+
## AI Attestation
|
|
114
|
+
|
|
115
|
+
Projects in the [Render Engine organization][gh-render-engine] will accept code contributions created with the
|
|
116
|
+
assistance of AI Coding software. We ask that that you include an AI Attestation to your issue, comment, or PR.
|
|
117
|
+
|
|
118
|
+
This attestation should mean that the AI model is included as a co-Author of the changes.
|
|
119
|
+
|
|
120
|
+
The AI assistant is your copilot. You are still responsible for code changes submitted.
|
|
121
|
+
Low quality contributions or code that cannot be defended by the USER (not their AI model)
|
|
122
|
+
will result in issues/prs being immediately closed.
|
|
123
|
+
Multiple low quality contributions will result in your user account being banned from contribution.
|
|
101
124
|
|
|
125
|
+
[ai-attestation]: #ai-attestation
|
|
126
|
+
[gh-render-engine]: https://github.com/render-engine
|
|
102
127
|
[wiki]: https://github.com/render-engine/.github/wiki
|
|
103
128
|
[docs]: https://render-engine.readthedocs.org
|
|
104
129
|
[being-assigned]: https://render-engine.readthedocs.io/en/latest/contributing/CONTRIBUTING/#being-assigned-an-issue
|
|
@@ -109,3 +134,6 @@ If you're starting from a blank PR be sure to include the following:
|
|
|
109
134
|
[mkdocs]: https://www.mkdocs.org
|
|
110
135
|
[material]: https://squidfunk.github.io/mkdocs-material/
|
|
111
136
|
[mkdocsstrings]: https://mkdocsstrings.readthedocs.io/en/latest/
|
|
137
|
+
[code of conduct]: https://github.com/render-engine/render-engine/blob/main/.github/CODE_OF_CONDUCT.md
|
|
138
|
+
[docs-contributing]: https://render-engine.readthedocs.io/en/latest/contributing/CONTRIBUTING/#instead-of-making-a-change-in-render-engines-code-consider
|
|
139
|
+
[todo-to-issue]: https://github.com/marketplace/actions/todo-to-issue
|
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
We only support the latest version of render-engine with security updates.
|
|
6
6
|
Please ensure you are using the most recent release available on [PyPI].
|
|
7
7
|
|
|
8
|
-
| Version
|
|
9
|
-
|
|
10
|
-
| Latest
|
|
11
|
-
| < Latest
|
|
8
|
+
| Version | Supported |
|
|
9
|
+
|----------|-----------|
|
|
10
|
+
| Latest | ✅ |
|
|
11
|
+
| < Latest | ❌ |
|
|
12
12
|
|
|
13
13
|
## Reporting a Vulnerability
|
|
14
14
|
|
{render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/contributing/environment_setup.md
RENAMED
|
@@ -49,7 +49,7 @@ Available recipes:
|
|
|
49
49
|
If you're using [Visual Studio Code][vscode] you can also create a virtual environment from the command
|
|
50
50
|
pallet. This will also enable the installation of the dependencies.
|
|
51
51
|
|
|
52
|
-
![Creating an Environment using VS Code]
|
|
52
|
+
![Creating an Environment using VS Code]
|
|
53
53
|
|
|
54
54
|
## Using Codespaces
|
|
55
55
|
|
|
@@ -57,7 +57,7 @@ You can create a new codespace to quickly get started with your project.
|
|
|
57
57
|
|
|
58
58
|
You can create a codespace on main.
|
|
59
59
|
|
|
60
|
-
![Create a Codespace]
|
|
60
|
+
![Create a Codespace]
|
|
61
61
|
|
|
62
62
|
This will create a codespace in which you can make your changes. Don't worry they won't let you push your
|
|
63
63
|
changes directly to the codebase but when you go to make that change it will let you create a fork and
|
|
@@ -77,12 +77,17 @@ Start with ensuring that the docker daemon is running.
|
|
|
77
77
|
Open your fork of the project in VS Code and open the command pallet. Next, Enter "Dev Containers: ReOpen
|
|
78
78
|
in Container" and select the option.
|
|
79
79
|
|
|
80
|
-
This will create a new local environment with the same configuration as the [codespace]
|
|
80
|
+
This will create a new local environment with the same configuration as the [codespace].
|
|
81
81
|
|
|
82
|
-
![Launching a Dev Container]
|
|
82
|
+
![Launching a Dev Container]
|
|
83
83
|
|
|
84
84
|
[uv]: https://github.com/astral-sh/uv
|
|
85
85
|
[uv-installation]: https://github.com/astral-sh/uv?tab=readme-ov-file#installation
|
|
86
86
|
[just]: https://github.com/casey/just
|
|
87
87
|
[just-installation]: https://github.com/casey/just?tab=readme-ov-file#installation
|
|
88
88
|
[vscode]: https://code.visualstudio.com/
|
|
89
|
+
|
|
90
|
+
[codespace]: #using-codespaces
|
|
91
|
+
[create a codespace]: ../assets/create-codespace.gif
|
|
92
|
+
[creating an environment using vs code]: ../assets/create%20environment%20vs%20code.gif
|
|
93
|
+
[launching a dev container]: ../assets/launching%20a%20dev%20container.gif
|
|
@@ -6,7 +6,7 @@ date: Jan 24, 2026
|
|
|
6
6
|
|
|
7
7
|
Render Engine shows a badge of it's coverage report and other information.
|
|
8
8
|
|
|
9
|
-
This badge is generated using [genbadge]
|
|
9
|
+
This badge is generated using [genbadge].
|
|
10
10
|
|
|
11
11
|
The badge is autogenerated via github actions. To manually generate a new badge, you can run the following commands.
|
|
12
12
|
|
|
@@ -20,3 +20,5 @@ You can generate this badge with just:
|
|
|
20
20
|
```bash
|
|
21
21
|
just badge
|
|
22
22
|
```
|
|
23
|
+
|
|
24
|
+
[genbadge]: https://smarie.github.io/python-genbadge/
|
|
@@ -243,6 +243,10 @@ If your workflow runs more often than expected:
|
|
|
243
243
|
|
|
244
244
|
## Additional Resources
|
|
245
245
|
|
|
246
|
-
- [GitHub Actions: Workflow syntax for paths]
|
|
247
|
-
- [GitHub Actions: Filter pattern cheat sheet]
|
|
248
|
-
- [GitHub Actions Labeler]
|
|
246
|
+
- [GitHub Actions: Workflow syntax for paths]
|
|
247
|
+
- [GitHub Actions: Filter pattern cheat sheet]
|
|
248
|
+
- [GitHub Actions Labeler] - For automatic PR labeling based on file patterns
|
|
249
|
+
|
|
250
|
+
[github actions labeler]: https://github.com/actions/labeler
|
|
251
|
+
[github actions: filter pattern cheat sheet]: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#filter-pattern-cheat-sheet
|
|
252
|
+
[github actions: workflow syntax for paths]: https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onpushpull_requestpull_request_targetpathspaths-ignore
|
|
@@ -10,7 +10,7 @@ Render Engine project.
|
|
|
10
10
|
|
|
11
11
|
### Ruff (Python)
|
|
12
12
|
|
|
13
|
-
Render Engine uses [Ruff]
|
|
13
|
+
Render Engine uses [Ruff] for Python linting and formatting with the following
|
|
14
14
|
configuration:
|
|
15
15
|
|
|
16
16
|
- **Line length**: 120 characters
|
|
@@ -177,3 +177,5 @@ format DIRECTORY='.':
|
|
|
177
177
|
format-fix DIRECTORY='.':
|
|
178
178
|
uvx ruff format {{ DIRECTORY }}
|
|
179
179
|
```
|
|
180
|
+
|
|
181
|
+
[ruff]: https://docs.astral.sh/ruff/
|
|
@@ -36,7 +36,7 @@ These tools can be called via `just`. If you wanted to run them without `just` y
|
|
|
36
36
|
|
|
37
37
|
### Type Checking
|
|
38
38
|
|
|
39
|
-
See our section on [typechecking]
|
|
39
|
+
See our section on [typechecking]
|
|
40
40
|
|
|
41
41
|
### Linting and Formatting
|
|
42
42
|
|
|
@@ -67,3 +67,5 @@ uvx ruff check . --fix
|
|
|
67
67
|
uvx ruff format .
|
|
68
68
|
uvx ruff check .
|
|
69
69
|
```
|
|
70
|
+
|
|
71
|
+
[typechecking]: /contributing/typechecking/
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Data Objects"
|
|
3
|
+
description: "Overview of Data Objects in Render Engine"
|
|
4
|
+
date: March 15, 2026
|
|
5
|
+
tags: ["data_objects"]
|
|
6
|
+
---
|
|
7
|
+
<!-- markdownlint-disable MD056 -->
|
|
8
|
+
While Render Engine is a static site generator, there are times when it might be useful to have machine-readable data
|
|
9
|
+
available on your site. For example, if you wish to include a [humans.json] file it might be simpler to maintain as a
|
|
10
|
+
Python dictionary and have Render Engine output the JSON.
|
|
11
|
+
|
|
12
|
+
## DataObject
|
|
13
|
+
|
|
14
|
+
The `DataObject` base class allows for the rendering of a serializable Python object to the site's file system during
|
|
15
|
+
site rendering.
|
|
16
|
+
|
|
17
|
+
### Attributes
|
|
18
|
+
|
|
19
|
+
| Name | Type | Description |
|
|
20
|
+
|-------------------|---------------|---------------------------------------------------------------------------|
|
|
21
|
+
| `data_object` | `Any` | The object to serialize. |
|
|
22
|
+
| `serializer` | 'Callable` | The function to serialize with. |
|
|
23
|
+
| `serializer_args` | dict | Optional `kwargs` to be passed to the `serializer` along with the object. |
|
|
24
|
+
| `routes` | list | List of directories to output the serialized object to. |
|
|
25
|
+
| `path_name` | `str \| Path` | The filename to output the serialized data to. |
|
|
26
|
+
|
|
27
|
+
The `serializer` is a function that takes a single positional argument and optional `**kwargs`. Should you wish to use
|
|
28
|
+
a function with a different signature, you will need to write a wrapper around it.
|
|
29
|
+
|
|
30
|
+
The default `serialize` function is `json.dumps`.
|
|
31
|
+
|
|
32
|
+
### Configuring a `DataObject`
|
|
33
|
+
|
|
34
|
+
There are 2 ways to configure a `DataObject` and add it to your `Site`:
|
|
35
|
+
|
|
36
|
+
1. Using the `Site.data_object` decorator:
|
|
37
|
+
|
|
38
|
+
```python
|
|
39
|
+
import toml
|
|
40
|
+
from render_engine import Site, DataObject
|
|
41
|
+
|
|
42
|
+
app = Site()
|
|
43
|
+
|
|
44
|
+
@app.data_object
|
|
45
|
+
class MyDataObject(DataObject):
|
|
46
|
+
data_object = {'foo': 'bar'}
|
|
47
|
+
serializer = toml.dumps
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
2. Using the `Site.data_object` method:
|
|
51
|
+
|
|
52
|
+
```python
|
|
53
|
+
import toml
|
|
54
|
+
from render_engine import Site, DataObject
|
|
55
|
+
|
|
56
|
+
app = Site()
|
|
57
|
+
|
|
58
|
+
class MyDataObject(DataObject):
|
|
59
|
+
data_object = {'foo': 'bar'}
|
|
60
|
+
serializer = toml.dumps
|
|
61
|
+
|
|
62
|
+
app.data_object(MyDataObject)
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
[humans.json]: https://codeberg.org/robida/human.json
|
|
@@ -11,9 +11,9 @@ Feed Objects for Generating RSS Feeds
|
|
|
11
11
|
|
|
12
12
|
`RSSFeed`
|
|
13
13
|
|
|
14
|
-
Bases: [`BasePage`]
|
|
14
|
+
Bases: [`BasePage`]
|
|
15
15
|
|
|
16
|
-
Creates an RSS feed [Page]
|
|
16
|
+
Creates an RSS feed [Page] Object.
|
|
17
17
|
|
|
18
18
|
> !!! Note
|
|
19
19
|
This is the base object type and should only contain the params identified by the
|
|
@@ -37,3 +37,6 @@ This is built using the built-in `rss2.0.xml` jinja template.
|
|
|
37
37
|
```
|
|
38
38
|
|
|
39
39
|
[rss-spec]: http://www.rssboard.org/rss-specification
|
|
40
|
+
|
|
41
|
+
[`basepage`]: page.md?id=basepage
|
|
42
|
+
[page]: page.md
|
{render_engine-2026.3.3 → render_engine-2026.3.4a2}/docs/docs/getting-started/building-your-site.md
RENAMED
|
@@ -7,7 +7,7 @@ date: August 22, 2024
|
|
|
7
7
|
tags: ["building", "site-generation", "render-engine"]
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
-
Once you've created the [layout]
|
|
10
|
+
Once you've created the [layout] of your site, you can start building it.
|
|
11
11
|
|
|
12
12
|
## Calling `render()`
|
|
13
13
|
|
|
@@ -39,3 +39,5 @@ render-engine build app:app
|
|
|
39
39
|
Your site will be generated in the `output` folder.
|
|
40
40
|
|
|
41
41
|
[cli-build]: ../cli.md#building-your-site-with-render-engine-build
|
|
42
|
+
|
|
43
|
+
[layout]: layout.md
|