render-engine 2025.9.1a1__tar.gz → 2025.10.1a1__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-2025.9.1a1 → render_engine-2025.10.1a1}/.all-contributorsrc +20 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/.github/workflows/devcontainer-ci.yml +1 -1
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/.github/workflows/labeler.yml +1 -1
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/.github/workflows/lint.yml +2 -2
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/.github/workflows/publish.yml +1 -1
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/.github/workflows/scorecard.yml +1 -1
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/.github/workflows/test.yml +2 -2
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/PKG-INFO +8 -6
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/README.md +7 -5
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/docs/cli.md +1 -1
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/docs/collection.md +1 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/docs/page.md +24 -6
- render_engine-2025.10.1a1/docs/docs/site_map.md +76 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/requirements.txt +33 -33
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/_base_object.py +5 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/collection.py +27 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/page.py +34 -1
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/render_engine_templates/sitemap.xml +2 -1
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/render_engine_templates/sitemap_item.xml +2 -2
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/site.py +54 -61
- render_engine-2025.10.1a1/src/render_engine/site_map.py +146 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine.egg-info/PKG-INFO +8 -6
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine.egg-info/SOURCES.txt +3 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/tests/test_plugins.py +21 -9
- render_engine-2025.10.1a1/tests/test_site_map.py +190 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/tests/test_templates/test_base_html.py +8 -6
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/.devcontainer/Dockerfile +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/.devcontainer/devcontainer.json +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/.devcontainer/setup.sh +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/.github/FUNDING.yml +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/.github/ISSUE_TEMPLATE/config.yaml +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/.github/ISSUE_TEMPLATE/form_issue_template.yml +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/.github/dependabot-bot.yml +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/.github/dependabot.yml +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/.github/labeler.yml +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/.github/release.yml +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/.gitignore +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/.markdownlint.json +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/.pre-commit-config.yaml +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/.readthedocs.yml +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/.vscode/tasks.json +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/CONTRIBUTING.md +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/SECURITY.md +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/.markdownlint.json +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/docs/archive.md +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/docs/assets/create environment vs code.gif +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/docs/assets/create-app-help.png +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/docs/assets/create-codespace.gif +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/docs/assets/launching a dev container.gif +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/docs/assets/render-engine-init-help.png +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/docs/assets/render-engine-init.png +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/docs/contributing/CODE_OF_CONDUCT.md +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/docs/contributing/CONTRIBUTING.md +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/docs/contributing/environment_setup.md +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/docs/custom_collections.md +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/docs/feeds.md +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/docs/getting-started/building-your-site.md +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/docs/getting-started/creating-a-collection.md +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/docs/getting-started/creating-a-page.md +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/docs/getting-started/creating-your-app.md +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/docs/getting-started/getting-started.md +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/docs/getting-started/installation.md +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/docs/getting-started/layout.md +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/docs/index.md +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/docs/parsers.md +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/docs/plugins.md +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/docs/site.md +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/docs/templates.md +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/docs/theme_management.md +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/mkdocs.yml +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/docs/requirements.txt +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/noxfile.py +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/pyproject.toml +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/setup.cfg +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/.gitignore +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/__init__.py +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/__main__.py +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/archive.py +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/blog.py +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/engine.py +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/extras/__init__.py +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/feeds.py +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/hookspecs.py +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/links.py +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/parsers/markdown.py +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/plugins.py +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/py.typed +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/render_engine_templates/__init__.py +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/render_engine_templates/archive.html +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/render_engine_templates/base.html +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/render_engine_templates/base_collection_path.md +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/render_engine_templates/base_templates/_archive.html +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/render_engine_templates/base_templates/_base.html +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/render_engine_templates/base_templates/_page.html +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/render_engine_templates/components/footer.html +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/render_engine_templates/components/page_title.html +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/render_engine_templates/page.html +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/render_engine_templates/rss2.0.xml +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/render_engine_templates/rss2.0_items.xml +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/themes.py +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine/utils/__init__.py +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine.egg-info/dependency_links.txt +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine.egg-info/requires.txt +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/src/render_engine.egg-info/top_level.txt +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/tests/conftest.py +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/tests/test_archive.py +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/tests/test_base_object.py +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/tests/test_blog.py +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/tests/test_collections.py +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/tests/test_engine.py +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/tests/test_feeds/conftest_feed.py +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/tests/test_feeds/test_feeds.py +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/tests/test_page.py +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/tests/test_parsers_remove_2024_3_1.py +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/tests/test_site.py +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/tests/test_theme_manager.py +0 -0
- {render_engine-2025.9.1a1 → render_engine-2025.10.1a1}/uv.lock +0 -0
|
@@ -175,6 +175,26 @@
|
|
|
175
175
|
"contributions": [
|
|
176
176
|
"code"
|
|
177
177
|
]
|
|
178
|
+
},
|
|
179
|
+
{
|
|
180
|
+
"login": "kjaymiller",
|
|
181
|
+
"name": "Jay Miller",
|
|
182
|
+
"avatar_url": "https://avatars.githubusercontent.com/u/8632637?v=4",
|
|
183
|
+
"profile": "https://github.com/kjaymiller",
|
|
184
|
+
"contributions": [
|
|
185
|
+
"code",
|
|
186
|
+
"doc",
|
|
187
|
+
"maintenance"
|
|
188
|
+
]
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
"login": "bdougie",
|
|
192
|
+
"name": "Brian Douglas",
|
|
193
|
+
"avatar_url": "https://avatars.githubusercontent.com/u/5713670?v=4",
|
|
194
|
+
"profile": "https://b.dougie.dev/",
|
|
195
|
+
"contributions": [
|
|
196
|
+
"financial"
|
|
197
|
+
]
|
|
178
198
|
}
|
|
179
199
|
],
|
|
180
200
|
"contributorsPerLine": 7,
|
|
@@ -13,7 +13,7 @@ jobs:
|
|
|
13
13
|
name: Format and Lint Python
|
|
14
14
|
runs-on: ubuntu-latest
|
|
15
15
|
steps:
|
|
16
|
-
- uses: actions/checkout@
|
|
16
|
+
- uses: actions/checkout@v5
|
|
17
17
|
with:
|
|
18
18
|
fetch-depth: 0
|
|
19
19
|
- name: Install Python
|
|
@@ -34,7 +34,7 @@ jobs:
|
|
|
34
34
|
name: Lint Markdown
|
|
35
35
|
runs-on: ubuntu-latest
|
|
36
36
|
steps:
|
|
37
|
-
- uses: actions/checkout@
|
|
37
|
+
- uses: actions/checkout@v5
|
|
38
38
|
- name: Markdown Lint base-files
|
|
39
39
|
uses: DavidAnson/markdownlint-cli2-action@v20
|
|
40
40
|
with:
|
|
@@ -23,7 +23,7 @@ jobs:
|
|
|
23
23
|
python-version: ["3.10", "3.11", "3.12", "3.13"]
|
|
24
24
|
fail-fast: true
|
|
25
25
|
steps:
|
|
26
|
-
- uses: actions/checkout@
|
|
26
|
+
- uses: actions/checkout@v5
|
|
27
27
|
- uses: actions/setup-python@v5
|
|
28
28
|
with:
|
|
29
29
|
python-version: ${{ matrix.python-version }}
|
|
@@ -44,7 +44,7 @@ jobs:
|
|
|
44
44
|
fail-fast: true
|
|
45
45
|
runs-on: ${{ matrix.os }}
|
|
46
46
|
steps:
|
|
47
|
-
- uses: actions/checkout@
|
|
47
|
+
- uses: actions/checkout@v5
|
|
48
48
|
- uses: actions/setup-python@v5
|
|
49
49
|
with:
|
|
50
50
|
python-version: "3.12"
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: render_engine
|
|
3
|
-
Version: 2025.
|
|
3
|
+
Version: 2025.10.1a1
|
|
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/
|
|
@@ -40,7 +40,7 @@ Requires-Dist: watchfiles; extra == "dev"
|
|
|
40
40
|
|
|
41
41
|
<!-- markdownlint-disable -->
|
|
42
42
|
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
|
43
|
-
[](#contributors-)
|
|
44
44
|
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
|
45
45
|
<!-- markdownlint-restore -->
|
|
46
46
|
|
|
@@ -100,22 +100,24 @@ We've compiled a set of [awesome add-ons](https://github.com/render-engine/rende
|
|
|
100
100
|
<tr>
|
|
101
101
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Tashuuuu"><img src="https://avatars.githubusercontent.com/u/85075827?v=4?s=57" width="57px;" alt="Akriti Sengar"/><br /><sub><b>Akriti Sengar</b></sub></a><br /><a href="#tool-Tashuuuu" title="Tools">🔧</a></td>
|
|
102
102
|
<td align="center" valign="top" width="14.28%"><a href="https://tonybaloney.github.io/"><img src="https://avatars.githubusercontent.com/u/1532417?v=4?s=57" width="57px;" alt="Anthony Shaw"/><br /><sub><b>Anthony Shaw</b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=tonybaloney" title="Documentation">📖</a></td>
|
|
103
|
+
<td align="center" valign="top" width="14.28%"><a href="https://b.dougie.dev/"><img src="https://avatars.githubusercontent.com/u/5713670?v=4?s=57" width="57px;" alt="Brian Douglas"/><br /><sub><b>Brian Douglas</b></sub></a><br /><a href="#financial-bdougie" title="Financial">💵</a></td>
|
|
103
104
|
<td align="center" valign="top" width="14.28%"><a href="https://brassnet.biz"><img src="https://avatars.githubusercontent.com/u/1806946?v=4?s=57" width="57px;" alt="Dan Shernicoff"/><br /><sub><b>Dan Shernicoff</b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=brass75" title="Code">💻</a></td>
|
|
104
105
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mannyanebi"><img src="https://avatars.githubusercontent.com/u/25439000?v=4?s=57" width="57px;" alt="Emmanuel Anebi"/><br /><sub><b>Emmanuel Anebi</b></sub></a><br /><a href="#plugin-mannyanebi" title="Plugin/utility libraries">🔌</a></td>
|
|
105
106
|
<td align="center" valign="top" width="14.28%"><a href="http://giovannimartins.dev"><img src="https://avatars.githubusercontent.com/u/7796661?v=4?s=57" width="57px;" alt="Giovanni Martins"/><br /><sub><b>Giovanni Martins</b></sub></a><br /><a href="#infra-giovannism20" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
|
|
106
|
-
<td align="center" valign="top" width="14.28%"><a href="https://
|
|
107
|
-
<td align="center" valign="top" width="14.28%"><a href="https://linktr.ee/john0isaac"><img src="https://avatars.githubusercontent.com/u/64026625?v=4?s=57" width="57px;" alt="John Aziz"/><br /><sub><b>John Aziz</b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=john0isaac" title="Documentation">📖</a> <a href="#maintenance-john0isaac" title="Maintenance">🚧</a> <a href="#userTesting-john0isaac" title="User Testing">📓</a></td>
|
|
107
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/kjaymiller"><img src="https://avatars.githubusercontent.com/u/8632637?v=4?s=57" width="57px;" alt="Jay Miller"/><br /><sub><b>Jay Miller</b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=kjaymiller" title="Code">💻</a> <a href="https://github.com/render-engine/render-engine/commits?author=kjaymiller" title="Documentation">📖</a> <a href="#maintenance-kjaymiller" title="Maintenance">🚧</a></td>
|
|
108
108
|
</tr>
|
|
109
109
|
<tr>
|
|
110
|
+
<td align="center" valign="top" width="14.28%"><a href="https://webology.dev"><img src="https://avatars.githubusercontent.com/u/50527?v=4?s=57" width="57px;" alt="Jeff Triplett"/><br /><sub><b>Jeff Triplett</b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=jefftriplett" title="Documentation">📖</a> <a href="#mentoring-jefftriplett" title="Mentoring">🧑🏫</a></td>
|
|
111
|
+
<td align="center" valign="top" width="14.28%"><a href="https://linktr.ee/john0isaac"><img src="https://avatars.githubusercontent.com/u/64026625?v=4?s=57" width="57px;" alt="John Aziz"/><br /><sub><b>John Aziz</b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=john0isaac" title="Documentation">📖</a> <a href="#maintenance-john0isaac" title="Maintenance">🚧</a> <a href="#userTesting-john0isaac" title="User Testing">📓</a></td>
|
|
110
112
|
<td align="center" valign="top" width="14.28%"><a href="https://www.jonafato.com"><img src="https://avatars.githubusercontent.com/u/392720?v=4?s=57" width="57px;" alt="Jon Banafato"/><br /><sub><b>Jon Banafato</b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=jonafato" title="Code">💻</a></td>
|
|
111
113
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jlgimeno"><img src="https://avatars.githubusercontent.com/u/17421585?v=4?s=57" width="57px;" alt="Jorge L. Gimeno"/><br /><sub><b>Jorge L. Gimeno</b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=jlgimeno" title="Documentation">📖</a></td>
|
|
112
114
|
<td align="center" valign="top" width="14.28%"><a href="http://lauralangdon.io"><img src="https://avatars.githubusercontent.com/u/48335772?v=4?s=57" width="57px;" alt="Laura Langdon"/><br /><sub><b>Laura Langdon</b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=LauraLangdon" title="Documentation">📖</a></td>
|
|
113
115
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Mahhheshh"><img src="https://avatars.githubusercontent.com/u/100200105?v=4?s=57" width="57px;" alt="Mahhheshh"/><br /><sub><b>Mahhheshh</b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=Mahhheshh" title="Documentation">📖</a> <a href="https://github.com/render-engine/render-engine/commits?author=Mahhheshh" title="Code">💻</a> <a href="#maintenance-Mahhheshh" title="Maintenance">🚧</a></td>
|
|
114
116
|
<td align="center" valign="top" width="14.28%"><a href="https://www.pythonbynight.com"><img src="https://avatars.githubusercontent.com/u/46942991?v=4?s=57" width="57px;" alt="Mario Munoz"/><br /><sub><b>Mario Munoz</b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=tataraba" title="Code">💻</a></td>
|
|
115
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/MohitKambli"><img src="https://avatars.githubusercontent.com/u/31406633?v=4?s=57" width="57px;" alt="Mohit Kambli"/><br /><sub><b>Mohit Kambli</b></sub></a><br /><a href="#infra-MohitKambli" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
|
|
116
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/OsamaRab3"><img src="https://avatars.githubusercontent.com/u/159753803?v=4?s=57" width="57px;" alt="Osama Rabea "/><br /><sub><b>Osama Rabea </b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=OsamaRab3" title="Documentation">📖</a> <a href="https://github.com/render-engine/render-engine/commits?author=OsamaRab3" title="Tests">⚠️</a></td>
|
|
117
117
|
</tr>
|
|
118
118
|
<tr>
|
|
119
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/MohitKambli"><img src="https://avatars.githubusercontent.com/u/31406633?v=4?s=57" width="57px;" alt="Mohit Kambli"/><br /><sub><b>Mohit Kambli</b></sub></a><br /><a href="#infra-MohitKambli" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
|
|
120
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/OsamaRab3"><img src="https://avatars.githubusercontent.com/u/159753803?v=4?s=57" width="57px;" alt="Osama Rabea "/><br /><sub><b>Osama Rabea </b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=OsamaRab3" title="Documentation">📖</a> <a href="https://github.com/render-engine/render-engine/commits?author=OsamaRab3" title="Tests">⚠️</a></td>
|
|
119
121
|
<td align="center" valign="top" width="14.28%"><a href="https://www.pamelafox.org"><img src="https://avatars.githubusercontent.com/u/297042?v=4?s=57" width="57px;" alt="Pamela Fox"/><br /><sub><b>Pamela Fox</b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=pamelafox" title="Documentation">📖</a></td>
|
|
120
122
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/viktoriussuwandi"><img src="https://avatars.githubusercontent.com/u/68414300?v=4?s=57" width="57px;" alt="Viktorius Suwandi"/><br /><sub><b>Viktorius Suwandi</b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=viktoriussuwandi" title="Code">💻</a></td>
|
|
121
123
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/VinayakG311"><img src="https://avatars.githubusercontent.com/u/96966973?v=4?s=57" width="57px;" alt="VinayakG311"/><br /><sub><b>VinayakG311</b></sub></a><br /><a href="#plugin-VinayakG311" title="Plugin/utility libraries">🔌</a></td>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
<!-- markdownlint-disable -->
|
|
2
2
|
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
|
3
|
-
[](#contributors-)
|
|
4
4
|
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
|
5
5
|
<!-- markdownlint-restore -->
|
|
6
6
|
|
|
@@ -60,22 +60,24 @@ We've compiled a set of [awesome add-ons](https://github.com/render-engine/rende
|
|
|
60
60
|
<tr>
|
|
61
61
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Tashuuuu"><img src="https://avatars.githubusercontent.com/u/85075827?v=4?s=57" width="57px;" alt="Akriti Sengar"/><br /><sub><b>Akriti Sengar</b></sub></a><br /><a href="#tool-Tashuuuu" title="Tools">🔧</a></td>
|
|
62
62
|
<td align="center" valign="top" width="14.28%"><a href="https://tonybaloney.github.io/"><img src="https://avatars.githubusercontent.com/u/1532417?v=4?s=57" width="57px;" alt="Anthony Shaw"/><br /><sub><b>Anthony Shaw</b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=tonybaloney" title="Documentation">📖</a></td>
|
|
63
|
+
<td align="center" valign="top" width="14.28%"><a href="https://b.dougie.dev/"><img src="https://avatars.githubusercontent.com/u/5713670?v=4?s=57" width="57px;" alt="Brian Douglas"/><br /><sub><b>Brian Douglas</b></sub></a><br /><a href="#financial-bdougie" title="Financial">💵</a></td>
|
|
63
64
|
<td align="center" valign="top" width="14.28%"><a href="https://brassnet.biz"><img src="https://avatars.githubusercontent.com/u/1806946?v=4?s=57" width="57px;" alt="Dan Shernicoff"/><br /><sub><b>Dan Shernicoff</b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=brass75" title="Code">💻</a></td>
|
|
64
65
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/mannyanebi"><img src="https://avatars.githubusercontent.com/u/25439000?v=4?s=57" width="57px;" alt="Emmanuel Anebi"/><br /><sub><b>Emmanuel Anebi</b></sub></a><br /><a href="#plugin-mannyanebi" title="Plugin/utility libraries">🔌</a></td>
|
|
65
66
|
<td align="center" valign="top" width="14.28%"><a href="http://giovannimartins.dev"><img src="https://avatars.githubusercontent.com/u/7796661?v=4?s=57" width="57px;" alt="Giovanni Martins"/><br /><sub><b>Giovanni Martins</b></sub></a><br /><a href="#infra-giovannism20" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
|
|
66
|
-
<td align="center" valign="top" width="14.28%"><a href="https://
|
|
67
|
-
<td align="center" valign="top" width="14.28%"><a href="https://linktr.ee/john0isaac"><img src="https://avatars.githubusercontent.com/u/64026625?v=4?s=57" width="57px;" alt="John Aziz"/><br /><sub><b>John Aziz</b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=john0isaac" title="Documentation">📖</a> <a href="#maintenance-john0isaac" title="Maintenance">🚧</a> <a href="#userTesting-john0isaac" title="User Testing">📓</a></td>
|
|
67
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/kjaymiller"><img src="https://avatars.githubusercontent.com/u/8632637?v=4?s=57" width="57px;" alt="Jay Miller"/><br /><sub><b>Jay Miller</b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=kjaymiller" title="Code">💻</a> <a href="https://github.com/render-engine/render-engine/commits?author=kjaymiller" title="Documentation">📖</a> <a href="#maintenance-kjaymiller" title="Maintenance">🚧</a></td>
|
|
68
68
|
</tr>
|
|
69
69
|
<tr>
|
|
70
|
+
<td align="center" valign="top" width="14.28%"><a href="https://webology.dev"><img src="https://avatars.githubusercontent.com/u/50527?v=4?s=57" width="57px;" alt="Jeff Triplett"/><br /><sub><b>Jeff Triplett</b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=jefftriplett" title="Documentation">📖</a> <a href="#mentoring-jefftriplett" title="Mentoring">🧑🏫</a></td>
|
|
71
|
+
<td align="center" valign="top" width="14.28%"><a href="https://linktr.ee/john0isaac"><img src="https://avatars.githubusercontent.com/u/64026625?v=4?s=57" width="57px;" alt="John Aziz"/><br /><sub><b>John Aziz</b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=john0isaac" title="Documentation">📖</a> <a href="#maintenance-john0isaac" title="Maintenance">🚧</a> <a href="#userTesting-john0isaac" title="User Testing">📓</a></td>
|
|
70
72
|
<td align="center" valign="top" width="14.28%"><a href="https://www.jonafato.com"><img src="https://avatars.githubusercontent.com/u/392720?v=4?s=57" width="57px;" alt="Jon Banafato"/><br /><sub><b>Jon Banafato</b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=jonafato" title="Code">💻</a></td>
|
|
71
73
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/jlgimeno"><img src="https://avatars.githubusercontent.com/u/17421585?v=4?s=57" width="57px;" alt="Jorge L. Gimeno"/><br /><sub><b>Jorge L. Gimeno</b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=jlgimeno" title="Documentation">📖</a></td>
|
|
72
74
|
<td align="center" valign="top" width="14.28%"><a href="http://lauralangdon.io"><img src="https://avatars.githubusercontent.com/u/48335772?v=4?s=57" width="57px;" alt="Laura Langdon"/><br /><sub><b>Laura Langdon</b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=LauraLangdon" title="Documentation">📖</a></td>
|
|
73
75
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/Mahhheshh"><img src="https://avatars.githubusercontent.com/u/100200105?v=4?s=57" width="57px;" alt="Mahhheshh"/><br /><sub><b>Mahhheshh</b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=Mahhheshh" title="Documentation">📖</a> <a href="https://github.com/render-engine/render-engine/commits?author=Mahhheshh" title="Code">💻</a> <a href="#maintenance-Mahhheshh" title="Maintenance">🚧</a></td>
|
|
74
76
|
<td align="center" valign="top" width="14.28%"><a href="https://www.pythonbynight.com"><img src="https://avatars.githubusercontent.com/u/46942991?v=4?s=57" width="57px;" alt="Mario Munoz"/><br /><sub><b>Mario Munoz</b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=tataraba" title="Code">💻</a></td>
|
|
75
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/MohitKambli"><img src="https://avatars.githubusercontent.com/u/31406633?v=4?s=57" width="57px;" alt="Mohit Kambli"/><br /><sub><b>Mohit Kambli</b></sub></a><br /><a href="#infra-MohitKambli" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
|
|
76
|
-
<td align="center" valign="top" width="14.28%"><a href="https://github.com/OsamaRab3"><img src="https://avatars.githubusercontent.com/u/159753803?v=4?s=57" width="57px;" alt="Osama Rabea "/><br /><sub><b>Osama Rabea </b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=OsamaRab3" title="Documentation">📖</a> <a href="https://github.com/render-engine/render-engine/commits?author=OsamaRab3" title="Tests">⚠️</a></td>
|
|
77
77
|
</tr>
|
|
78
78
|
<tr>
|
|
79
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/MohitKambli"><img src="https://avatars.githubusercontent.com/u/31406633?v=4?s=57" width="57px;" alt="Mohit Kambli"/><br /><sub><b>Mohit Kambli</b></sub></a><br /><a href="#infra-MohitKambli" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
|
|
80
|
+
<td align="center" valign="top" width="14.28%"><a href="https://github.com/OsamaRab3"><img src="https://avatars.githubusercontent.com/u/159753803?v=4?s=57" width="57px;" alt="Osama Rabea "/><br /><sub><b>Osama Rabea </b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=OsamaRab3" title="Documentation">📖</a> <a href="https://github.com/render-engine/render-engine/commits?author=OsamaRab3" title="Tests">⚠️</a></td>
|
|
79
81
|
<td align="center" valign="top" width="14.28%"><a href="https://www.pamelafox.org"><img src="https://avatars.githubusercontent.com/u/297042?v=4?s=57" width="57px;" alt="Pamela Fox"/><br /><sub><b>Pamela Fox</b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=pamelafox" title="Documentation">📖</a></td>
|
|
80
82
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/viktoriussuwandi"><img src="https://avatars.githubusercontent.com/u/68414300?v=4?s=57" width="57px;" alt="Viktorius Suwandi"/><br /><sub><b>Viktorius Suwandi</b></sub></a><br /><a href="https://github.com/render-engine/render-engine/commits?author=viktoriussuwandi" title="Code">💻</a></td>
|
|
81
83
|
<td align="center" valign="top" width="14.28%"><a href="https://github.com/VinayakG311"><img src="https://avatars.githubusercontent.com/u/96966973?v=4?s=57" width="57px;" alt="VinayakG311"/><br /><sub><b>VinayakG311</b></sub></a><br /><a href="#plugin-VinayakG311" title="Plugin/utility libraries">🔌</a></td>
|
|
@@ -46,6 +46,7 @@ sort_reverse: bool = False
|
|
|
46
46
|
title: str
|
|
47
47
|
template: str | None
|
|
48
48
|
archive_template str | None: The template to use for the archive pages.
|
|
49
|
+
skip_site_map: bool = False: Flag to indicate whether this Collection should not be included in the SiteMap.
|
|
49
50
|
```
|
|
50
51
|
|
|
51
52
|
## Attributes
|
|
@@ -24,12 +24,13 @@ This is not intended to be used directly.
|
|
|
24
24
|
|
|
25
25
|
**Attributes:**
|
|
26
26
|
|
|
27
|
-
| Name
|
|
28
|
-
|
|
29
|
-
| `slug`
|
|
30
|
-
| `content`
|
|
31
|
-
| `parser`
|
|
32
|
-
| `reference`
|
|
27
|
+
| Name | Type | Description |
|
|
28
|
+
|--------------------| --- | --- |
|
|
29
|
+
| `slug` | |The slug of the page. Defaults to the `title` slugified. |
|
|
30
|
+
| `content` | |The content to be rendered by the page |
|
|
31
|
+
| `parser` | |The Parser used to parse the page's content. Defaults to `BasePageParser`. |
|
|
32
|
+
| `reference` | |The attribute to use as the reference for the page in the site's route list. Defaults to `slug`. |
|
|
33
|
+
| `skip_site_map` | `False` | When set to `True` the `Page` will not be included in the generated `SiteMap` |
|
|
33
34
|
|
|
34
35
|
### Functions
|
|
35
36
|
|
|
@@ -72,6 +73,7 @@ When you create a page, you specify variables passed into rendering template.
|
|
|
72
73
|
| `template` | `str | None` |The template used to render the page. If not provided, the `Site`'s `content`will be used. |
|
|
73
74
|
| `Parser` | `type[BasePageParser]` |The parser to generate the page's `raw_content`. Defaults to `BasePageParser`. |
|
|
74
75
|
| `title` | `str` |The title of the page. Defaults to the class name. |
|
|
76
|
+
| `skip_site_map` | `False` | When set to `True` the `Page` will not be included in the generated `SiteMap` |
|
|
75
77
|
|
|
76
78
|
## About Page Attributes
|
|
77
79
|
|
|
@@ -103,3 +105,19 @@ By default Page._content will return the result of `Page.Parser.parse(Page.conte
|
|
|
103
105
|
### Page Templates
|
|
104
106
|
|
|
105
107
|
`Page.template` should always be a `str`. `Page.template` refers to the template name that will be passed to the engine given to `Page.render()`.
|
|
108
|
+
|
|
109
|
+
### Accessing URLs for other pages in the site from within the page content
|
|
110
|
+
|
|
111
|
+
In order to allow lookup of URLs for other pages within a Site the `content` of a page may be
|
|
112
|
+
a template. If the `content` matches the pattern `{{.*?}}` we will render the `content` as a
|
|
113
|
+
template prior to rendering the page itself.
|
|
114
|
+
|
|
115
|
+
Example:
|
|
116
|
+
|
|
117
|
+
```html
|
|
118
|
+
{{ site_map.find('my_page').url_for }}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
will render to the URL for `my_page` in the `content` and then in the generated page.
|
|
122
|
+
|
|
123
|
+
For more details on using the `SiteMap` please check the [SiteMap documentation](site_map.md).
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "SiteMap Objects"
|
|
3
|
+
description: "Overview of the SiteMap"
|
|
4
|
+
date: September 27, 2025
|
|
5
|
+
tags: ["site-map"]
|
|
6
|
+
---
|
|
7
|
+
Prior to rendering the `Site` Render Engine will create a `SiteMap` containing searchable information
|
|
8
|
+
about all of the `Collection` and `Page` objects it has.
|
|
9
|
+
|
|
10
|
+
## Searching the `SiteMap`
|
|
11
|
+
|
|
12
|
+
To search the `SiteMap` use the `find` method.
|
|
13
|
+
|
|
14
|
+
```python
|
|
15
|
+
def find(
|
|
16
|
+
self,
|
|
17
|
+
value: str,
|
|
18
|
+
attr: str = "slug",
|
|
19
|
+
collection: str = None,
|
|
20
|
+
full_search: bool = False,
|
|
21
|
+
) -> SiteMapEntry | None:
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
### Parameters
|
|
25
|
+
|
|
26
|
+
- `value`: The value to search for
|
|
27
|
+
- `attr`: Optional attribute to search by. Options are `slug`, `title`, `path_name`. Defaults to `slug`.
|
|
28
|
+
- `collection`: Limit the search to a single `Collection`. Defaults to `None`.
|
|
29
|
+
- `full_search`: Search all `Page` and `Collection` objects. Defaults to `False`.
|
|
30
|
+
|
|
31
|
+
Notes:
|
|
32
|
+
|
|
33
|
+
1. If `collection` is set the search will be limited to that `Collection` object regardless of whether
|
|
34
|
+
`full_search` is set.
|
|
35
|
+
2. If `full_search` is set it will return the first match found. If you have 3 pages with the same `slug`,
|
|
36
|
+
1 not in a `Collection` and 2 others in different `Collection` objects, the first one defined will be the
|
|
37
|
+
one found.
|
|
38
|
+
|
|
39
|
+
## Generating an HTML site map
|
|
40
|
+
|
|
41
|
+
The `SiteMap` object has an `html` property that will return an HTML sitemap with _absolute_ URLs with the
|
|
42
|
+
`Site`'s `SITE_URL`.
|
|
43
|
+
|
|
44
|
+
As a convenience, Render Engine will generate a site map page if the `Site` property of `render_html_site_map`
|
|
45
|
+
is `True` (it defaults to `False`.) Please note that this will not be templated. Should you wish the generated
|
|
46
|
+
site map to be on a template you can add the following to your app:
|
|
47
|
+
|
|
48
|
+
```python
|
|
49
|
+
@app.page
|
|
50
|
+
class SiteMapPage(Page):
|
|
51
|
+
template = "site_map_template.html"
|
|
52
|
+
content = "{{ site_map.html }}"
|
|
53
|
+
skip_site_map = True
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Please note the `skip_site_map = True` to avoid having a self-referential link to the site map.
|
|
57
|
+
|
|
58
|
+
## Generating an XML site map
|
|
59
|
+
|
|
60
|
+
To have your site generate an XML site map set the `render_xml_site_map` property of your `Site` object
|
|
61
|
+
to `True` (defaults to `False`.) This will create the `site_map.xml` file in the root output directory
|
|
62
|
+
of your site.
|
|
63
|
+
|
|
64
|
+
## The `SiteMapEntry` object
|
|
65
|
+
|
|
66
|
+
The `SiteMap` is a collection of `SiteMapEntry` objects. Each `SiteMapEntry` has the following attributes
|
|
67
|
+
and properties:
|
|
68
|
+
|
|
69
|
+
### Attributes and Properties
|
|
70
|
+
|
|
71
|
+
- `slug` - The `slug` for the referenced `Page` or `Collection`.
|
|
72
|
+
- `title` - The `title` for the referenced `Page` or `Collection`.
|
|
73
|
+
- `path_name` - The `path_name` for the referenced `Page` or `Collection`.
|
|
74
|
+
- `entries` - A list of `SiteMapEntry` objects representing the `Page` objects in a given `Collection`.
|
|
75
|
+
for a `Page` this will be an empty `list`.
|
|
76
|
+
- `url_for` - This property will provide the _relative_ URL for the given entry.
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
#
|
|
5
5
|
# pip-compile --extra=dev --output-file=requirements.txt pyproject.toml
|
|
6
6
|
#
|
|
7
|
-
anyio==4.
|
|
7
|
+
anyio==4.10.0
|
|
8
8
|
# via
|
|
9
9
|
# httpx
|
|
10
10
|
# watchfiles
|
|
@@ -12,11 +12,11 @@ arrow==1.3.0
|
|
|
12
12
|
# via cookiecutter
|
|
13
13
|
babel==2.17.0
|
|
14
14
|
# via mkdocs-material
|
|
15
|
-
backrefs==
|
|
15
|
+
backrefs==6.0.1
|
|
16
16
|
# via mkdocs-material
|
|
17
17
|
binaryornot==0.4.4
|
|
18
18
|
# via cookiecutter
|
|
19
|
-
certifi==2025.
|
|
19
|
+
certifi==2025.8.3
|
|
20
20
|
# via
|
|
21
21
|
# httpcore
|
|
22
22
|
# httpx
|
|
@@ -25,7 +25,7 @@ cfgv==3.4.0
|
|
|
25
25
|
# via pre-commit
|
|
26
26
|
chardet==5.2.0
|
|
27
27
|
# via binaryornot
|
|
28
|
-
charset-normalizer==3.4.
|
|
28
|
+
charset-normalizer==3.4.3
|
|
29
29
|
# via requests
|
|
30
30
|
click==8.2.1
|
|
31
31
|
# via
|
|
@@ -38,21 +38,21 @@ colorama==0.4.6
|
|
|
38
38
|
# mkdocs-material
|
|
39
39
|
cookiecutter==2.6.0
|
|
40
40
|
# via render_engine (pyproject.toml)
|
|
41
|
-
coverage[toml]==7.
|
|
41
|
+
coverage[toml]==7.10.6
|
|
42
42
|
# via pytest-cov
|
|
43
|
-
distlib==0.
|
|
43
|
+
distlib==0.4.0
|
|
44
44
|
# via virtualenv
|
|
45
45
|
ephemeral-port-reserve==1.1.4
|
|
46
46
|
# via render_engine (pyproject.toml)
|
|
47
|
-
filelock==3.
|
|
47
|
+
filelock==3.19.1
|
|
48
48
|
# via virtualenv
|
|
49
49
|
ghp-import==2.1.0
|
|
50
50
|
# via mkdocs
|
|
51
51
|
gitdb==4.0.12
|
|
52
52
|
# via gitpython
|
|
53
|
-
gitpython==3.1.
|
|
53
|
+
gitpython==3.1.45
|
|
54
54
|
# via render_engine (pyproject.toml)
|
|
55
|
-
griffe==1.
|
|
55
|
+
griffe==1.13.0
|
|
56
56
|
# via mkdocstrings-python
|
|
57
57
|
h11==0.16.0
|
|
58
58
|
# via httpcore
|
|
@@ -60,7 +60,7 @@ httpcore==1.0.9
|
|
|
60
60
|
# via httpx
|
|
61
61
|
httpx==0.28.1
|
|
62
62
|
# via render_engine (pyproject.toml)
|
|
63
|
-
identify==2.6.
|
|
63
|
+
identify==2.6.13
|
|
64
64
|
# via pre-commit
|
|
65
65
|
idna==3.10
|
|
66
66
|
# via
|
|
@@ -76,16 +76,16 @@ jinja2==3.1.6
|
|
|
76
76
|
# mkdocs-material
|
|
77
77
|
# mkdocstrings
|
|
78
78
|
# render_engine (pyproject.toml)
|
|
79
|
-
markdown==3.8
|
|
79
|
+
markdown==3.8.2
|
|
80
80
|
# via
|
|
81
81
|
# mkdocs
|
|
82
82
|
# mkdocs-autorefs
|
|
83
83
|
# mkdocs-material
|
|
84
84
|
# mkdocstrings
|
|
85
85
|
# pymdown-extensions
|
|
86
|
-
markdown-it-py==
|
|
86
|
+
markdown-it-py==4.0.0
|
|
87
87
|
# via rich
|
|
88
|
-
markdown2==2.5.
|
|
88
|
+
markdown2==2.5.4
|
|
89
89
|
# via
|
|
90
90
|
# render-engine-markdown
|
|
91
91
|
# render_engine (pyproject.toml)
|
|
@@ -107,25 +107,25 @@ mkdocs==1.6.1
|
|
|
107
107
|
# mkdocs-material
|
|
108
108
|
# mkdocstrings
|
|
109
109
|
# render_engine (pyproject.toml)
|
|
110
|
-
mkdocs-autorefs==1.4.
|
|
110
|
+
mkdocs-autorefs==1.4.3
|
|
111
111
|
# via
|
|
112
112
|
# mkdocstrings
|
|
113
113
|
# mkdocstrings-python
|
|
114
114
|
mkdocs-get-deps==0.2.0
|
|
115
115
|
# via mkdocs
|
|
116
|
-
mkdocs-material==9.6.
|
|
116
|
+
mkdocs-material==9.6.18
|
|
117
117
|
# via render_engine (pyproject.toml)
|
|
118
118
|
mkdocs-material-extensions==1.3.1
|
|
119
119
|
# via mkdocs-material
|
|
120
|
-
mkdocstrings[python]==0.
|
|
120
|
+
mkdocstrings[python]==0.30.0
|
|
121
121
|
# via
|
|
122
122
|
# mkdocstrings-python
|
|
123
123
|
# render_engine (pyproject.toml)
|
|
124
|
-
mkdocstrings-python==1.
|
|
124
|
+
mkdocstrings-python==1.18.2
|
|
125
125
|
# via mkdocstrings
|
|
126
|
-
more-itertools==10.
|
|
126
|
+
more-itertools==10.8.0
|
|
127
127
|
# via render_engine (pyproject.toml)
|
|
128
|
-
mypy==1.
|
|
128
|
+
mypy==1.17.1
|
|
129
129
|
# via render_engine (pyproject.toml)
|
|
130
130
|
mypy-extensions==1.1.0
|
|
131
131
|
# via mypy
|
|
@@ -139,7 +139,7 @@ paginate==0.5.7
|
|
|
139
139
|
# via mkdocs-material
|
|
140
140
|
pathspec==0.12.1
|
|
141
141
|
# via mkdocs
|
|
142
|
-
platformdirs==4.
|
|
142
|
+
platformdirs==4.4.0
|
|
143
143
|
# via
|
|
144
144
|
# mkdocs-get-deps
|
|
145
145
|
# virtualenv
|
|
@@ -147,23 +147,23 @@ pluggy==1.6.0
|
|
|
147
147
|
# via
|
|
148
148
|
# pytest
|
|
149
149
|
# render_engine (pyproject.toml)
|
|
150
|
-
pre-commit==4.
|
|
150
|
+
pre-commit==4.3.0
|
|
151
151
|
# via render_engine (pyproject.toml)
|
|
152
|
-
pygments==2.19.
|
|
152
|
+
pygments==2.19.2
|
|
153
153
|
# via
|
|
154
154
|
# mkdocs-material
|
|
155
155
|
# rich
|
|
156
|
-
pymdown-extensions==10.
|
|
156
|
+
pymdown-extensions==10.16.1
|
|
157
157
|
# via
|
|
158
158
|
# mkdocs-material
|
|
159
159
|
# mkdocstrings
|
|
160
160
|
# render_engine (pyproject.toml)
|
|
161
|
-
pytest==8.
|
|
161
|
+
pytest==8.4.2
|
|
162
162
|
# via
|
|
163
163
|
# pytest-cov
|
|
164
164
|
# pytest-mock
|
|
165
165
|
# render_engine (pyproject.toml)
|
|
166
|
-
pytest-cov==6.
|
|
166
|
+
pytest-cov==6.2.1
|
|
167
167
|
# via render_engine (pyproject.toml)
|
|
168
168
|
pytest-mock==3.14.1
|
|
169
169
|
# via render_engine (pyproject.toml)
|
|
@@ -197,16 +197,16 @@ render-engine-parser==2024.9.0
|
|
|
197
197
|
# via
|
|
198
198
|
# render-engine-markdown
|
|
199
199
|
# render_engine (pyproject.toml)
|
|
200
|
-
requests==2.32.
|
|
200
|
+
requests==2.32.5
|
|
201
201
|
# via
|
|
202
202
|
# cookiecutter
|
|
203
203
|
# mkdocs-material
|
|
204
|
-
rich==14.
|
|
204
|
+
rich==14.1.0
|
|
205
205
|
# via
|
|
206
206
|
# cookiecutter
|
|
207
207
|
# render_engine (pyproject.toml)
|
|
208
208
|
# typer
|
|
209
|
-
ruff==0.11
|
|
209
|
+
ruff==0.12.11
|
|
210
210
|
# via render_engine (pyproject.toml)
|
|
211
211
|
shellingham==1.5.4
|
|
212
212
|
# via typer
|
|
@@ -219,11 +219,11 @@ sniffio==1.3.1
|
|
|
219
219
|
text-unidecode==1.3
|
|
220
220
|
# via python-slugify
|
|
221
221
|
toml==0.10.2
|
|
222
|
-
typer==0.
|
|
222
|
+
typer==0.17.3
|
|
223
223
|
# via render_engine (pyproject.toml)
|
|
224
|
-
types-python-dateutil==2.9.0.
|
|
224
|
+
types-python-dateutil==2.9.0.20250822
|
|
225
225
|
# via arrow
|
|
226
|
-
typing-extensions==4.
|
|
226
|
+
typing-extensions==4.15.0
|
|
227
227
|
# via
|
|
228
228
|
# anyio
|
|
229
229
|
# mypy
|
|
@@ -232,9 +232,9 @@ tzdata==2025.2
|
|
|
232
232
|
# via render_engine (pyproject.toml)
|
|
233
233
|
urllib3==2.5.0
|
|
234
234
|
# via requests
|
|
235
|
-
virtualenv==20.
|
|
235
|
+
virtualenv==20.34.0
|
|
236
236
|
# via pre-commit
|
|
237
237
|
watchdog==6.0.0
|
|
238
238
|
# via mkdocs
|
|
239
|
-
watchfiles==1.0
|
|
239
|
+
watchfiles==1.1.0
|
|
240
240
|
# via render_engine (pyproject.toml)
|
|
@@ -26,6 +26,7 @@ class BaseObject:
|
|
|
26
26
|
template_vars: dict
|
|
27
27
|
plugins: list[Callable] | None
|
|
28
28
|
plugin_settings: dict = {"plugins": defaultdict(dict)}
|
|
29
|
+
skip_site_map: bool = False
|
|
29
30
|
|
|
30
31
|
@property
|
|
31
32
|
def _title(self) -> str:
|
|
@@ -126,3 +127,7 @@ class BaseObject:
|
|
|
126
127
|
base_dict[key] = value
|
|
127
128
|
|
|
128
129
|
return base_dict
|
|
130
|
+
|
|
131
|
+
def render(self, *args, **kwargs):
|
|
132
|
+
"""Render method. Implemented in child objects"""
|
|
133
|
+
raise NotImplementedError(f'{self.__class__.__name__} does not implement the "render" method.')
|
|
@@ -252,6 +252,33 @@ class Collection(BaseObject):
|
|
|
252
252
|
return
|
|
253
253
|
method(collection=self, site=site, settings=self.plugin_manager.plugin_settings)
|
|
254
254
|
|
|
255
|
+
def render(self) -> None:
|
|
256
|
+
"""Iterate through Pages and Check for Collections and Feeds"""
|
|
257
|
+
|
|
258
|
+
for entry in self:
|
|
259
|
+
entry.plugin_manager = copy.deepcopy(self.plugin_manager)
|
|
260
|
+
|
|
261
|
+
for route in entry.routes:
|
|
262
|
+
entry.site = self.site
|
|
263
|
+
entry.render(route, self.site.theme_manager)
|
|
264
|
+
|
|
265
|
+
if getattr(self, "has_archive", False):
|
|
266
|
+
for archive in self.archives:
|
|
267
|
+
archive.site = self.site
|
|
268
|
+
logging.debug("Adding Archive: %s", archive.__class__.__name__)
|
|
269
|
+
|
|
270
|
+
for _ in self.routes:
|
|
271
|
+
archive.render(self.routes[0], self.site.theme_manager)
|
|
272
|
+
|
|
273
|
+
if archive.is_index:
|
|
274
|
+
archive.slug = "index"
|
|
275
|
+
archive.render(self.routes[0], self.site.theme_manager)
|
|
276
|
+
feed: RSSFeed
|
|
277
|
+
if hasattr(self, "Feed"):
|
|
278
|
+
feed = self.feed
|
|
279
|
+
feed.site = self.site
|
|
280
|
+
feed.render(route="./", theme_manager=self.site.theme_manager)
|
|
281
|
+
|
|
255
282
|
|
|
256
283
|
def render_archives(archive, **kwargs) -> list[Archive]:
|
|
257
284
|
return [archive.render(pages=archive.pages, **kwargs) for archive in archive]
|