koriander 0.1.0__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.
- koriander-0.1.0/PKG-INFO +151 -0
- koriander-0.1.0/README.md +132 -0
- koriander-0.1.0/pyproject.toml +53 -0
- koriander-0.1.0/src/go2django/__init__.py +5 -0
- koriander-0.1.0/src/go2django/convert.py +1490 -0
- koriander-0.1.0/src/go2django/convert_tests.csv +98 -0
- koriander-0.1.0/src/go2django/hugo_functions.py +280 -0
- koriander-0.1.0/src/go2django/hugo_templates.lark +233 -0
- koriander-0.1.0/src/go2django/parse_tests.csv +176 -0
- koriander-0.1.0/src/go2django/tests.py +163 -0
- koriander-0.1.0/src/koriander/__init__.py +3 -0
- koriander-0.1.0/src/koriander/admin.py +304 -0
- koriander-0.1.0/src/koriander/apps.py +14 -0
- koriander-0.1.0/src/koriander/asgi.py +18 -0
- koriander-0.1.0/src/koriander/assets/default.scss +78 -0
- koriander-0.1.0/src/koriander/assets/syntax.css +79 -0
- koriander-0.1.0/src/koriander/cli.py +41 -0
- koriander-0.1.0/src/koriander/context_processors.py +17 -0
- koriander-0.1.0/src/koriander/fallback_templates/404.html +13 -0
- koriander-0.1.0/src/koriander/fallback_templates/_default/_markup/render-image.html +19 -0
- koriander-0.1.0/src/koriander/fallback_templates/_default/baseof.html +33 -0
- koriander-0.1.0/src/koriander/fallback_templates/_default/list.html +15 -0
- koriander-0.1.0/src/koriander/fallback_templates/_default/single.html +18 -0
- koriander-0.1.0/src/koriander/fallback_templates/_internal/pagination.html +82 -0
- koriander-0.1.0/src/koriander/fallback_templates/alias.html +16 -0
- koriander-0.1.0/src/koriander/fallback_templates/index.html +17 -0
- koriander-0.1.0/src/koriander/fallback_templates/tags/taxonomy.html +16 -0
- koriander-0.1.0/src/koriander/fallback_templates/tags/term.html +19 -0
- koriander-0.1.0/src/koriander/feeds.py +69 -0
- koriander-0.1.0/src/koriander/image_data.py +124 -0
- koriander-0.1.0/src/koriander/loader.py +33 -0
- koriander-0.1.0/src/koriander/manage.py +25 -0
- koriander-0.1.0/src/koriander/management/__init__.py +3 -0
- koriander-0.1.0/src/koriander/management/commands/__init__.py +3 -0
- koriander-0.1.0/src/koriander/management/commands/create.py +30 -0
- koriander-0.1.0/src/koriander/management/commands/hugo_import.py +620 -0
- koriander-0.1.0/src/koriander/management/commands/render.py +269 -0
- koriander-0.1.0/src/koriander/management/commands/serve.py +58 -0
- koriander-0.1.0/src/koriander/management/commands/validate_page_resource_cache.py +39 -0
- koriander-0.1.0/src/koriander/management/commands/validate_references.py +70 -0
- koriander-0.1.0/src/koriander/markdown.py +140 -0
- koriander-0.1.0/src/koriander/markdown_extensions.py +294 -0
- koriander-0.1.0/src/koriander/migrations/0001_initial.py +292 -0
- koriander-0.1.0/src/koriander/migrations/0002_template.py +48 -0
- koriander-0.1.0/src/koriander/migrations/0003_staticfile.py +78 -0
- koriander-0.1.0/src/koriander/migrations/__init__.py +3 -0
- koriander-0.1.0/src/koriander/models.py +692 -0
- koriander-0.1.0/src/koriander/settings.py +311 -0
- koriander-0.1.0/src/koriander/sitemaps.py +51 -0
- koriander-0.1.0/src/koriander/staff_views.py +299 -0
- koriander-0.1.0/src/koriander/static/codemirror/codemirror_widget.css +5 -0
- koriander-0.1.0/src/koriander/static/codemirror/codemirror_widget.js +25 -0
- koriander-0.1.0/src/koriander/static/codemirror/editor.bundle.js +3 -0
- koriander-0.1.0/src/koriander/static/default.css +199 -0
- koriander-0.1.0/src/koriander/static/easymde/easymde.min.css +10 -0
- koriander-0.1.0/src/koriander/static/easymde/easymde.min.js +10 -0
- koriander-0.1.0/src/koriander/static/font-awesome/css/all.min.css +13 -0
- koriander-0.1.0/src/koriander/static/font-awesome/webfonts/fa-brands-400.ttf +0 -0
- koriander-0.1.0/src/koriander/static/font-awesome/webfonts/fa-brands-400.ttf.license +4 -0
- koriander-0.1.0/src/koriander/static/font-awesome/webfonts/fa-brands-400.woff2 +0 -0
- koriander-0.1.0/src/koriander/static/font-awesome/webfonts/fa-brands-400.woff2.license +4 -0
- koriander-0.1.0/src/koriander/static/font-awesome/webfonts/fa-regular-400.ttf +0 -0
- koriander-0.1.0/src/koriander/static/font-awesome/webfonts/fa-regular-400.ttf.license +4 -0
- koriander-0.1.0/src/koriander/static/font-awesome/webfonts/fa-regular-400.woff2 +0 -0
- koriander-0.1.0/src/koriander/static/font-awesome/webfonts/fa-regular-400.woff2.license +4 -0
- koriander-0.1.0/src/koriander/static/font-awesome/webfonts/fa-solid-900.ttf +0 -0
- koriander-0.1.0/src/koriander/static/font-awesome/webfonts/fa-solid-900.ttf.license +4 -0
- koriander-0.1.0/src/koriander/static/font-awesome/webfonts/fa-solid-900.woff2 +0 -0
- koriander-0.1.0/src/koriander/static/font-awesome/webfonts/fa-solid-900.woff2.license +4 -0
- koriander-0.1.0/src/koriander/static/font-awesome/webfonts/fa-v4compatibility.ttf +0 -0
- koriander-0.1.0/src/koriander/static/font-awesome/webfonts/fa-v4compatibility.ttf.license +4 -0
- koriander-0.1.0/src/koriander/static/font-awesome/webfonts/fa-v4compatibility.woff2 +0 -0
- koriander-0.1.0/src/koriander/static/font-awesome/webfonts/fa-v4compatibility.woff2.license +4 -0
- koriander-0.1.0/src/koriander/static/htmx/htmx.js +5346 -0
- koriander-0.1.0/src/koriander/static/post_editor.js +224 -0
- koriander-0.1.0/src/koriander/templates/admin/koriander/template/change_form.html +7 -0
- koriander-0.1.0/src/koriander/templates/admin/resource_image_links.html +14 -0
- koriander-0.1.0/src/koriander/templates/editor/editor.html +53 -0
- koriander-0.1.0/src/koriander/templates/editor/page_search_results.html +18 -0
- koriander-0.1.0/src/koriander/templates/editor/preview.html +5 -0
- koriander-0.1.0/src/koriander/templates/robots.txt +4 -0
- koriander-0.1.0/src/koriander/tests/__init__.py +3 -0
- koriander-0.1.0/src/koriander/tests/test_commands.py +102 -0
- koriander-0.1.0/src/koriander/tests/test_e2e.py +635 -0
- koriander-0.1.0/src/koriander/tests/test_markdown.py +330 -0
- koriander-0.1.0/src/koriander/tests/test_models.py +115 -0
- koriander-0.1.0/src/koriander/tests/test_staff_views.py +135 -0
- koriander-0.1.0/src/koriander/tests/test_views.py +212 -0
- koriander-0.1.0/src/koriander/tests/utils.py +113 -0
- koriander-0.1.0/src/koriander/urls.py +129 -0
- koriander-0.1.0/src/koriander/user/__init__.py +3 -0
- koriander-0.1.0/src/koriander/user/admin.py +13 -0
- koriander-0.1.0/src/koriander/user/apps.py +12 -0
- koriander-0.1.0/src/koriander/user/migrations/0001_initial.py +133 -0
- koriander-0.1.0/src/koriander/user/migrations/__init__.py +3 -0
- koriander-0.1.0/src/koriander/user/models.py +16 -0
- koriander-0.1.0/src/koriander/utils.py +57 -0
- koriander-0.1.0/src/koriander/views.py +312 -0
- koriander-0.1.0/src/koriander/widgets.py +23 -0
- koriander-0.1.0/src/koriander/wsgi.py +18 -0
koriander-0.1.0/PKG-INFO
ADDED
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
Metadata-Version: 2.3
|
|
2
|
+
Name: koriander
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: Add your description here
|
|
5
|
+
Requires-Dist: bleach>=6.3.0
|
|
6
|
+
Requires-Dist: django>=6.0.4
|
|
7
|
+
Requires-Dist: gunicorn>=25.3.0
|
|
8
|
+
Requires-Dist: honcho>=2.0.0
|
|
9
|
+
Requires-Dist: markdown>=3.10.2
|
|
10
|
+
Requires-Dist: pillow>=12.2.0
|
|
11
|
+
Requires-Dist: pygments>=2.20.0
|
|
12
|
+
Requires-Dist: whitenoise>=6.12.0
|
|
13
|
+
Requires-Dist: lark[interegular]>=1.3.1
|
|
14
|
+
Requires-Dist: pyparsing>=3.3.0
|
|
15
|
+
Requires-Dist: pyyaml>=6.0.3
|
|
16
|
+
Requires-Dist: xdg-base-dirs>=6.0.2
|
|
17
|
+
Requires-Python: >=3.12
|
|
18
|
+
Description-Content-Type: text/markdown
|
|
19
|
+
|
|
20
|
+
<!-- SPDX-License-Identifier: AGPL-3.0-or-later
|
|
21
|
+
SPDX-FileCopyrightText: 2026 JWP Consulting GK -->
|
|
22
|
+
# Koriander CMS
|
|
23
|
+
|
|
24
|
+
Koriander CMS combines static site generation like Hugo and a dynamic CMS experience like Ghost into one application.
|
|
25
|
+
|
|
26
|
+
Koriander is early stage and powers the author's personal blog at <https://www.justus.pw>. [Read more about Koriander](https://www.justus.pw/posts/2026-06-19-creating-koriander.html).
|
|
27
|
+
|
|
28
|
+
## Try Koriander CMS
|
|
29
|
+
|
|
30
|
+
Here's how you can try Koriander CMS on your computer.
|
|
31
|
+
|
|
32
|
+
First, ensure that your computer can run the `pipx`. [Learn how to install pipx](https://pipx.pypa.io/stable/how-to/install-pipx/).
|
|
33
|
+
|
|
34
|
+
Once `pipx` runs on your computer, install Koriander by typing the following command in your terminal.
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
pipx install git+ssh://git@codeberg.org/jwpconsulting/koriander.git
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
When the installation finishes, your terminal should print the following:
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
⣷ installing koriander from spec 'git+ssh://git@codeberg.org/jwpconsulting/koriander.git' installed package koriander 0.1.0, installed using Python 3.13.12
|
|
44
|
+
These apps are now globally available
|
|
45
|
+
- koriander
|
|
46
|
+
done! ✨ 🌟 ✨
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Run the following `koriander serve` command in a new directory:
|
|
50
|
+
|
|
51
|
+
```bash
|
|
52
|
+
koriander serve
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
This should print a start up log and give you a log in link:
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
Log in with the following link:
|
|
59
|
+
|
|
60
|
+
http://localhost:8000/dev-login/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/
|
|
61
|
+
|
|
62
|
+
Operations to perform:
|
|
63
|
+
Apply all migrations: admin, auth, contenttypes, koriander, koriander_user, sessions
|
|
64
|
+
Running migrations:
|
|
65
|
+
Applying contenttypes.0001_initial... OK
|
|
66
|
+
…
|
|
67
|
+
Log in with the following link:
|
|
68
|
+
|
|
69
|
+
http://localhost:8000/dev-login/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/
|
|
70
|
+
|
|
71
|
+
…
|
|
72
|
+
WARNING: This is a development server. Do not use it in a production setting. Use a production WSGI or ASGI server instead.
|
|
73
|
+
For more information on production servers see: https://docs.djangoproject.com/en/6.0/howto/deployment/
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
Open the `http://localhost:8000/dev-login/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/` in your browser. You should now see the Koriander CMS.
|
|
77
|
+
|
|
78
|
+

|
|
79
|
+
|
|
80
|
+
When you first run the Koriander CMS, you should see a welcome message saying **Koriander installed successfully**.
|
|
81
|
+
|
|
82
|
+

|
|
83
|
+
|
|
84
|
+
Edit the current page by following the **Edit page** link in the top menu.
|
|
85
|
+
|
|
86
|
+
When you finish editing your page, render your entire Koriander CMS website with the `render` command:
|
|
87
|
+
|
|
88
|
+
```bash
|
|
89
|
+
koriander render
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
When you run `koriander render` in a terminal, it should print the following:
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
Writing static files to scraped_site/static...
|
|
96
|
+
|
|
97
|
+
157 static files copied to '/private/var/folders/k8/jnlz0xdn5jd48zttf3ktv7200000gn/T/tmp.BWupFFLrzH/scraped_site/static', 461 post-processed, 25 skipped due to conflict.
|
|
98
|
+
Static files collected to scraped_site/static
|
|
99
|
+
Seeding 0 redirect address(es)...
|
|
100
|
+
Seeding 6 URL(s) from sitemap.xml...
|
|
101
|
+
Rendered 404.html
|
|
102
|
+
Page has markdown body, but no summary, index.html
|
|
103
|
+
200 /index.html (from seed)
|
|
104
|
+
200 /robots.txt (from seed)
|
|
105
|
+
/Users/debian/.local/pipx/venvs/koriander/lib/python3.13/site-packages/koriander/views.py:221: UnorderedObjectListWarning: Pagination may yield inconsistent results with an unordered object_list: <class 'koriander.models.Tag'> QuerySet.
|
|
106
|
+
paginator = Paginator(
|
|
107
|
+
200 /tags/index.html (from /sitemap.xml)
|
|
108
|
+
200 /index.xml (from /sitemap.xml)
|
|
109
|
+
200 /index.atom (from /sitemap.xml)
|
|
110
|
+
200 /index.atom.xml (from /sitemap.xml)
|
|
111
|
+
200 /redirects.json (from /sitemap.xml)
|
|
112
|
+
Crawled 7 page(s).
|
|
113
|
+
Render complete. Output in: scraped_site
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
`koriander render` outputs your site in a `scraped_site` directory.
|
|
117
|
+
|
|
118
|
+
You can upload this site directory
|
|
119
|
+
to a static site host like GitHub Pages, Cloudflare, or Netlify.
|
|
120
|
+
|
|
121
|
+
## Develop
|
|
122
|
+
|
|
123
|
+
Install everything:
|
|
124
|
+
|
|
125
|
+
```bash
|
|
126
|
+
uv sync
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Test everything:
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
bin/test.sh
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
Format code:
|
|
136
|
+
|
|
137
|
+
```bash
|
|
138
|
+
bin/format.sh
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
Render:
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
uv run koriander render; python -m http.server -d scraped_site
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
Live preview:
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
uv run koriander serve
|
|
151
|
+
```
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
<!-- SPDX-License-Identifier: AGPL-3.0-or-later
|
|
2
|
+
SPDX-FileCopyrightText: 2026 JWP Consulting GK -->
|
|
3
|
+
# Koriander CMS
|
|
4
|
+
|
|
5
|
+
Koriander CMS combines static site generation like Hugo and a dynamic CMS experience like Ghost into one application.
|
|
6
|
+
|
|
7
|
+
Koriander is early stage and powers the author's personal blog at <https://www.justus.pw>. [Read more about Koriander](https://www.justus.pw/posts/2026-06-19-creating-koriander.html).
|
|
8
|
+
|
|
9
|
+
## Try Koriander CMS
|
|
10
|
+
|
|
11
|
+
Here's how you can try Koriander CMS on your computer.
|
|
12
|
+
|
|
13
|
+
First, ensure that your computer can run the `pipx`. [Learn how to install pipx](https://pipx.pypa.io/stable/how-to/install-pipx/).
|
|
14
|
+
|
|
15
|
+
Once `pipx` runs on your computer, install Koriander by typing the following command in your terminal.
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
pipx install git+ssh://git@codeberg.org/jwpconsulting/koriander.git
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
When the installation finishes, your terminal should print the following:
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
⣷ installing koriander from spec 'git+ssh://git@codeberg.org/jwpconsulting/koriander.git' installed package koriander 0.1.0, installed using Python 3.13.12
|
|
25
|
+
These apps are now globally available
|
|
26
|
+
- koriander
|
|
27
|
+
done! ✨ 🌟 ✨
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Run the following `koriander serve` command in a new directory:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
koriander serve
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
This should print a start up log and give you a log in link:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
Log in with the following link:
|
|
40
|
+
|
|
41
|
+
http://localhost:8000/dev-login/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/
|
|
42
|
+
|
|
43
|
+
Operations to perform:
|
|
44
|
+
Apply all migrations: admin, auth, contenttypes, koriander, koriander_user, sessions
|
|
45
|
+
Running migrations:
|
|
46
|
+
Applying contenttypes.0001_initial... OK
|
|
47
|
+
…
|
|
48
|
+
Log in with the following link:
|
|
49
|
+
|
|
50
|
+
http://localhost:8000/dev-login/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/
|
|
51
|
+
|
|
52
|
+
…
|
|
53
|
+
WARNING: This is a development server. Do not use it in a production setting. Use a production WSGI or ASGI server instead.
|
|
54
|
+
For more information on production servers see: https://docs.djangoproject.com/en/6.0/howto/deployment/
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
Open the `http://localhost:8000/dev-login/XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX/` in your browser. You should now see the Koriander CMS.
|
|
58
|
+
|
|
59
|
+

|
|
60
|
+
|
|
61
|
+
When you first run the Koriander CMS, you should see a welcome message saying **Koriander installed successfully**.
|
|
62
|
+
|
|
63
|
+

|
|
64
|
+
|
|
65
|
+
Edit the current page by following the **Edit page** link in the top menu.
|
|
66
|
+
|
|
67
|
+
When you finish editing your page, render your entire Koriander CMS website with the `render` command:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
koriander render
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
When you run `koriander render` in a terminal, it should print the following:
|
|
74
|
+
|
|
75
|
+
```
|
|
76
|
+
Writing static files to scraped_site/static...
|
|
77
|
+
|
|
78
|
+
157 static files copied to '/private/var/folders/k8/jnlz0xdn5jd48zttf3ktv7200000gn/T/tmp.BWupFFLrzH/scraped_site/static', 461 post-processed, 25 skipped due to conflict.
|
|
79
|
+
Static files collected to scraped_site/static
|
|
80
|
+
Seeding 0 redirect address(es)...
|
|
81
|
+
Seeding 6 URL(s) from sitemap.xml...
|
|
82
|
+
Rendered 404.html
|
|
83
|
+
Page has markdown body, but no summary, index.html
|
|
84
|
+
200 /index.html (from seed)
|
|
85
|
+
200 /robots.txt (from seed)
|
|
86
|
+
/Users/debian/.local/pipx/venvs/koriander/lib/python3.13/site-packages/koriander/views.py:221: UnorderedObjectListWarning: Pagination may yield inconsistent results with an unordered object_list: <class 'koriander.models.Tag'> QuerySet.
|
|
87
|
+
paginator = Paginator(
|
|
88
|
+
200 /tags/index.html (from /sitemap.xml)
|
|
89
|
+
200 /index.xml (from /sitemap.xml)
|
|
90
|
+
200 /index.atom (from /sitemap.xml)
|
|
91
|
+
200 /index.atom.xml (from /sitemap.xml)
|
|
92
|
+
200 /redirects.json (from /sitemap.xml)
|
|
93
|
+
Crawled 7 page(s).
|
|
94
|
+
Render complete. Output in: scraped_site
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
`koriander render` outputs your site in a `scraped_site` directory.
|
|
98
|
+
|
|
99
|
+
You can upload this site directory
|
|
100
|
+
to a static site host like GitHub Pages, Cloudflare, or Netlify.
|
|
101
|
+
|
|
102
|
+
## Develop
|
|
103
|
+
|
|
104
|
+
Install everything:
|
|
105
|
+
|
|
106
|
+
```bash
|
|
107
|
+
uv sync
|
|
108
|
+
```
|
|
109
|
+
|
|
110
|
+
Test everything:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
bin/test.sh
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Format code:
|
|
117
|
+
|
|
118
|
+
```bash
|
|
119
|
+
bin/format.sh
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Render:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
uv run koriander render; python -m http.server -d scraped_site
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
Live preview:
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
uv run koriander serve
|
|
132
|
+
```
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
2
|
+
# SPDX-FileCopyrightText: 2026 JWP Consulting GK
|
|
3
|
+
#
|
|
4
|
+
# Koriander CMS pyproject.toml file
|
|
5
|
+
[project]
|
|
6
|
+
name = "koriander"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "Add your description here"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.12"
|
|
11
|
+
dependencies = [
|
|
12
|
+
"bleach>=6.3.0",
|
|
13
|
+
"django>=6.0.4",
|
|
14
|
+
"gunicorn>=25.3.0",
|
|
15
|
+
"honcho>=2.0.0",
|
|
16
|
+
"markdown>=3.10.2",
|
|
17
|
+
"pillow>=12.2.0",
|
|
18
|
+
"pygments>=2.20.0",
|
|
19
|
+
"whitenoise>=6.12.0",
|
|
20
|
+
# For importing from hugo
|
|
21
|
+
# TODO consider making this an optional dependency
|
|
22
|
+
"lark[interegular]>=1.3.1",
|
|
23
|
+
"pyparsing>=3.3.0",
|
|
24
|
+
"pyyaml>=6.0.3",
|
|
25
|
+
"xdg-base-dirs>=6.0.2",
|
|
26
|
+
]
|
|
27
|
+
|
|
28
|
+
[project.scripts]
|
|
29
|
+
koriander_manage = "koriander.manage:main"
|
|
30
|
+
koriander = "koriander.cli:main"
|
|
31
|
+
|
|
32
|
+
[build-system]
|
|
33
|
+
requires = ["uv_build >= 0.11.21, <0.12.0"]
|
|
34
|
+
build-backend = "uv_build"
|
|
35
|
+
|
|
36
|
+
[tool.uv.build-backend]
|
|
37
|
+
module-name = ["koriander", "go2django"]
|
|
38
|
+
|
|
39
|
+
[dependency-groups]
|
|
40
|
+
dev = [
|
|
41
|
+
"django-debug-toolbar>=6.3.0",
|
|
42
|
+
"djlint>=1.36.4",
|
|
43
|
+
"mypy>=2.1.0",
|
|
44
|
+
"reuse>=6.2.0",
|
|
45
|
+
"ruff>=0.15.11",
|
|
46
|
+
]
|
|
47
|
+
|
|
48
|
+
[tool.djlint]
|
|
49
|
+
indent = 4
|
|
50
|
+
|
|
51
|
+
[[tool.mypy.overrides]]
|
|
52
|
+
module = ["django.*", "markdown.*", "bleach.*", "yaml.*", "gunicorn.*"]
|
|
53
|
+
ignore_missing_imports = true
|