diff --git a/.gitignore b/.gitignore
index 82d01fb..0b770f5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,9 +9,12 @@ __pycache__/
# Distribution / packaging
.Python
+.env
+.sass-cache
env/
bin/
build/
+bnk/
develop-eggs/
dist/
eggs/
@@ -24,6 +27,8 @@ parts/
sdist/
var/
venv/
+py3.*/
+*.bnk
*.egg-info/
.installed.cfg
*.egg
@@ -62,3 +67,6 @@ docs/_build/
# Sublime Text
*.sublime-project
*.sublime-workspace
+
+# Visual Studio Code
+*.code-workspace
diff --git a/.readthedocs.yml b/.readthedocs.yaml
similarity index 62%
rename from .readthedocs.yml
rename to .readthedocs.yaml
index ebbfa2b..ebc71d8 100644
--- a/.readthedocs.yml
+++ b/.readthedocs.yaml
@@ -1,20 +1,32 @@
-# .readthedocs.yml
+# .readthedocs.yaml
# Read the Docs configuration file
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
# Required
version: 2
+# Set the OS, Python version and other tools you might need
+build:
+ os: ubuntu-22.04
+ tools:
+ python: "3.11"
+ # You can also specify other tool versions:
+ # nodejs: "20"
+ # rust: "1.70"
+ # golang: "1.20"
+
# Build documentation in the docs/ directory with Sphinx
sphinx:
configuration: source/conf.py
# Optionally build your docs in additional formats such as PDF and ePub
+# formats: all
+# - pdf
+# - epub
formats:
- htmlzip
# Optionally set the version of Python and requirements required to build your docs
python:
- version: 3.7
install:
- requirements: requirements.txt
diff --git a/Makefile b/Makefile
index b759c21..53e6557 100644
--- a/Makefile
+++ b/Makefile
@@ -5,8 +5,8 @@
SPHINXOPTS =
SPHINXBUILD = sphinx-build
PAPER =
-BUILDDIR = build
SOURCEDIR = source
+BUILDDIR = build
# Internal variables.
PAPEROPT_a4 = -D latex_paper_size=a4
diff --git a/requirements.txt b/requirements.txt
index 072ca87..83d8c13 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,30 +1,75 @@
-# https://pypi.org/project/sphinx-immaterial/
-Jinja2==3.1.2
-Pygments==2.13.0
-alabaster==0.7.12
-appdirs==1.4.4
-babel==2.10.3
-certifi==2022.6.15
-charset-normalizer==2.1.1
-docutils==0.19
-idna==3.3
+# https://pypi.org/project/Sphinx/
+alabaster==1.0.0
+babel==2.17.0
+charset-normalizer==3.4.1
+certifi==2025.1.31
+docutils==0.21.2
+idna==3.10
imagesize==1.4.1
-importlib-metadata==4.12.0
-markupsafe==2.1.1
-packaging==21.3
-pydantic==1.10.1
-pyparsing==3.0.9
-pytz==2022.2.1
-requests==2.28.1
+Jinja2==3.1.5
+MarkupSafe==3.0.2
+packaging==24.2
+Pygments==2.19.1
+requests==2.32.3
+roman-numerals-py==3.1.0
snowballstemmer==2.2.0
-sphinx==5.1.1
-sphinx-immaterial==0.9.0
-sphinxcontrib-applehelp==1.0.2
-sphinxcontrib-devhelp==1.0.2
-sphinxcontrib-htmlhelp==2.0.0
+Sphinx==8.2.1
+sphinxcontrib-applehelp==2.0.0
+sphinxcontrib-devhelp==2.0.0
+sphinxcontrib-htmlhelp==2.1.0
sphinxcontrib-jsmath==1.0.1
-sphinxcontrib-qthelp==1.0.3
-sphinxcontrib-serializinghtml==1.1.5
-typing-extensions==4.3.0
-urllib3==1.26.12
-zipp==3.8.1
+sphinxcontrib-qthelp==2.0.0
+sphinxcontrib-serializinghtml==2.0.0
+urllib3==2.3.0
+
+# https://pypi.org/project/sphinx-immaterial/
+annotated-types==0.7.0
+appdirs==1.4.4
+pydantic==2.10.6
+pydantic-core==2.27.2
+pydantic-extra-types==2.10.2
+sphinx-immaterial==0.13.0
+typing-extensions==4.12.2
+
+# sphinx-immaterial[keys] https://pypi.org/project/sphinx-immaterial/
+markdown==3.7
+pymdown-extensions==10.14.3
+pyyaml==6.0.2
+
+# https://pypi.org/project/ipython/
+# asttokens==3.0.0
+# decorator==5.2.1
+# executing==2.2.0
+# ipython==8.32.0
+# jedi==0.19.2
+# matplotlib-inline==0.1.7
+# parso==0.8.4
+# pexpect==4.9.0
+# prompt_toolkit==3.0.50
+# ptyprocess==0.7.0
+# pure-eval==0.2.3
+# stack_data==0.6.3
+# traitlets==5.14.3
+# wcwidth==0.2.13
+
+# https://pypi.org/project/sphinxcontrib-email/
+lxml==5.3.1
+sphinxcontrib-email==0.3.6
+
+# https://pypi.org/project/yasfb/
+cssselect==1.2.0
+pyquery==2.0.1
+yasfb==0.8.0
+
+# https://pypi.org/project/sphinx-disqus/
+# sphinx-disqus==1.3.0
+# sphinx-disqus==1.2.0
+
+# https://github.com/bonartm/sphinxcontrib-quizdown
+# sphinxcontrib-quizdown @ git+https://github.com/bonartm/sphinxcontrib-quizdown.git@d9f24a7a2305ad5b196e06597b1779c9414d1d85
+
+# https://pypi.org/project/sphinx_contributors/
+sphinx_contributors==0.2.7
+
+# https://pypi.org/project/sphinx-tabs/
+sphinx-tabs==3.4.7
diff --git a/source/_static/favicon.png b/source/_static/favicon.png
deleted file mode 100644
index 93e4a02..0000000
Binary files a/source/_static/favicon.png and /dev/null differ
diff --git a/source/_static/favicon/android-icon-144x144.png b/source/_static/favicon/android-icon-144x144.png
new file mode 100644
index 0000000..62c2b7f
Binary files /dev/null and b/source/_static/favicon/android-icon-144x144.png differ
diff --git a/source/_static/favicon/android-icon-192x192.png b/source/_static/favicon/android-icon-192x192.png
new file mode 100644
index 0000000..3a4454a
Binary files /dev/null and b/source/_static/favicon/android-icon-192x192.png differ
diff --git a/source/_static/favicon/android-icon-36x36.png b/source/_static/favicon/android-icon-36x36.png
new file mode 100644
index 0000000..1334a63
Binary files /dev/null and b/source/_static/favicon/android-icon-36x36.png differ
diff --git a/source/_static/favicon/android-icon-48x48.png b/source/_static/favicon/android-icon-48x48.png
new file mode 100644
index 0000000..5c681d3
Binary files /dev/null and b/source/_static/favicon/android-icon-48x48.png differ
diff --git a/source/_static/favicon/android-icon-72x72.png b/source/_static/favicon/android-icon-72x72.png
new file mode 100644
index 0000000..d473a68
Binary files /dev/null and b/source/_static/favicon/android-icon-72x72.png differ
diff --git a/source/_static/favicon/android-icon-96x96.png b/source/_static/favicon/android-icon-96x96.png
new file mode 100644
index 0000000..b77d2a1
Binary files /dev/null and b/source/_static/favicon/android-icon-96x96.png differ
diff --git a/source/_static/favicon/apple-icon-114x114.png b/source/_static/favicon/apple-icon-114x114.png
new file mode 100644
index 0000000..2630fd2
Binary files /dev/null and b/source/_static/favicon/apple-icon-114x114.png differ
diff --git a/source/_static/favicon/apple-icon-120x120.png b/source/_static/favicon/apple-icon-120x120.png
new file mode 100644
index 0000000..87ac0ca
Binary files /dev/null and b/source/_static/favicon/apple-icon-120x120.png differ
diff --git a/source/_static/favicon/apple-icon-144x144.png b/source/_static/favicon/apple-icon-144x144.png
new file mode 100644
index 0000000..62c2b7f
Binary files /dev/null and b/source/_static/favicon/apple-icon-144x144.png differ
diff --git a/source/_static/favicon/apple-icon-152x152.png b/source/_static/favicon/apple-icon-152x152.png
new file mode 100644
index 0000000..50eeaee
Binary files /dev/null and b/source/_static/favicon/apple-icon-152x152.png differ
diff --git a/source/_static/favicon/apple-icon-180x180.png b/source/_static/favicon/apple-icon-180x180.png
new file mode 100644
index 0000000..5cd55c4
Binary files /dev/null and b/source/_static/favicon/apple-icon-180x180.png differ
diff --git a/source/_static/favicon/apple-icon-57x57.png b/source/_static/favicon/apple-icon-57x57.png
new file mode 100644
index 0000000..ff68c85
Binary files /dev/null and b/source/_static/favicon/apple-icon-57x57.png differ
diff --git a/source/_static/favicon/apple-icon-60x60.png b/source/_static/favicon/apple-icon-60x60.png
new file mode 100644
index 0000000..e2bbdf4
Binary files /dev/null and b/source/_static/favicon/apple-icon-60x60.png differ
diff --git a/source/_static/favicon/apple-icon-72x72.png b/source/_static/favicon/apple-icon-72x72.png
new file mode 100644
index 0000000..d473a68
Binary files /dev/null and b/source/_static/favicon/apple-icon-72x72.png differ
diff --git a/source/_static/favicon/apple-icon-76x76.png b/source/_static/favicon/apple-icon-76x76.png
new file mode 100644
index 0000000..1f19e95
Binary files /dev/null and b/source/_static/favicon/apple-icon-76x76.png differ
diff --git a/source/_static/favicon/apple-icon-precomposed.png b/source/_static/favicon/apple-icon-precomposed.png
new file mode 100644
index 0000000..6c83279
Binary files /dev/null and b/source/_static/favicon/apple-icon-precomposed.png differ
diff --git a/source/_static/favicon/apple-icon.png b/source/_static/favicon/apple-icon.png
new file mode 100644
index 0000000..6c83279
Binary files /dev/null and b/source/_static/favicon/apple-icon.png differ
diff --git a/source/_static/favicon/favicon-16x16.png b/source/_static/favicon/favicon-16x16.png
new file mode 100644
index 0000000..d9b5534
Binary files /dev/null and b/source/_static/favicon/favicon-16x16.png differ
diff --git a/source/_static/favicon/favicon-32x32.png b/source/_static/favicon/favicon-32x32.png
new file mode 100644
index 0000000..1e513cc
Binary files /dev/null and b/source/_static/favicon/favicon-32x32.png differ
diff --git a/source/_static/favicon/favicon-96x96.png b/source/_static/favicon/favicon-96x96.png
new file mode 100644
index 0000000..b77d2a1
Binary files /dev/null and b/source/_static/favicon/favicon-96x96.png differ
diff --git a/source/_static/favicon/favicon.ico b/source/_static/favicon/favicon.ico
new file mode 100644
index 0000000..4dea427
Binary files /dev/null and b/source/_static/favicon/favicon.ico differ
diff --git a/source/_static/favicon/ms-icon-144x144.png b/source/_static/favicon/ms-icon-144x144.png
new file mode 100644
index 0000000..62c2b7f
Binary files /dev/null and b/source/_static/favicon/ms-icon-144x144.png differ
diff --git a/source/_static/favicon/ms-icon-150x150.png b/source/_static/favicon/ms-icon-150x150.png
new file mode 100644
index 0000000..9286310
Binary files /dev/null and b/source/_static/favicon/ms-icon-150x150.png differ
diff --git a/source/_static/favicon/ms-icon-310x310.png b/source/_static/favicon/ms-icon-310x310.png
new file mode 100644
index 0000000..d994440
Binary files /dev/null and b/source/_static/favicon/ms-icon-310x310.png differ
diff --git a/source/_static/favicon/ms-icon-70x70.png b/source/_static/favicon/ms-icon-70x70.png
new file mode 100644
index 0000000..48a670d
Binary files /dev/null and b/source/_static/favicon/ms-icon-70x70.png differ
diff --git a/source/_static/images/plone_source_code.jpg b/source/_static/images/plone_source_code.jpg
new file mode 100644
index 0000000..9a14557
Binary files /dev/null and b/source/_static/images/plone_source_code.jpg differ
diff --git a/source/_static/python_27.png b/source/_static/images/python_27.png
similarity index 100%
rename from source/_static/python_27.png
rename to source/_static/images/python_27.png
diff --git a/source/_static/python_37.png b/source/_static/images/python_37.png
similarity index 100%
rename from source/_static/python_37.png
rename to source/_static/images/python_37.png
diff --git a/source/_static/python_logo_web.png b/source/_static/images/python_logo_web.png
similarity index 100%
rename from source/_static/python_logo_web.png
rename to source/_static/images/python_logo_web.png
diff --git a/source/_static/stylesheets/landing_page.css b/source/_static/stylesheets/landing_page.css
index 7905d58..b2aec43 100644
--- a/source/_static/stylesheets/landing_page.css
+++ b/source/_static/stylesheets/landing_page.css
@@ -67,7 +67,7 @@ a, a:active, a:visited, a:hover, a:visited:hover {
}
.card .bottom {
- height: 100px;
+ height: 20px;
width: 100%;
}
@@ -89,7 +89,7 @@ a, a:active, a:visited, a:hover, a:visited:hover {
.card .bottom p {
text-align: left;
- height: 80px;
+ height: 70px;
width: 100%;
box-sizing: border-box;
margin: 0;
diff --git a/source/_templates/base.html b/source/_templates/base.html
new file mode 100644
index 0000000..79d8e93
--- /dev/null
+++ b/source/_templates/base.html
@@ -0,0 +1,63 @@
+{% extends '!base.html' %}
+
+
+ {%- block site_meta %}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {% endblock %}
diff --git a/source/_templates/browserconfig.xml b/source/_templates/browserconfig.xml
new file mode 100644
index 0000000..66e7343
--- /dev/null
+++ b/source/_templates/browserconfig.xml
@@ -0,0 +1,2 @@
+
+
+
+
-
-
+
-
-
+
+
+
+
+
+
+
+