diff --git a/docs/source/assets/logo.pdf b/docs/source/assets/logo.pdf
new file mode 100644
index 00000000..dacbdd10
Binary files /dev/null and b/docs/source/assets/logo.pdf differ
diff --git a/docs/source/assets/logo.svg b/docs/source/assets/logo.svg
new file mode 100644
index 00000000..e1159b09
--- /dev/null
+++ b/docs/source/assets/logo.svg
@@ -0,0 +1,51 @@
+
+
diff --git a/docs/source/assets/logo_bottom_text.pdf b/docs/source/assets/logo_bottom_text.pdf
new file mode 100644
index 00000000..c55b0ee7
Binary files /dev/null and b/docs/source/assets/logo_bottom_text.pdf differ
diff --git a/docs/source/assets/logo_bottom_text.svg b/docs/source/assets/logo_bottom_text.svg
new file mode 100644
index 00000000..2f08765c
--- /dev/null
+++ b/docs/source/assets/logo_bottom_text.svg
@@ -0,0 +1,75 @@
+
+
diff --git a/docs/source/conf.py b/docs/source/conf.py
index 6010d501..43934d0d 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -61,6 +61,7 @@
'sphinx.ext.viewcode',
'myst_parser', # Enable Markdown support
'sphinxcontrib.mermaid', # Enable Mermaid diagrams
+ 'sphinx.ext.imgconverter', # Support SVG to PDF conversion for LaTeX
]
# Add any paths that contain templates here, relative to this directory.
@@ -119,30 +120,17 @@
html_static_path = ['default/static']
-# this stylesheet eliminates fixed width and is located in the _static directory
-def setup(app: Any) -> None:
- app.add_css_file('my_theme.css')
-
-
-# Custom sidebar templates, must be a dictionary that maps document names
-# to template names.
-#
-# The default sidebars (for documents that don't match any pattern) are
-# defined by theme itself. Builtin themes are using these templates by
-# default: ``['localtoc.html', 'relations.html', 'sourcelink.html',
-# 'searchbox.html']``.
-#
-# html_sidebars = {}
-# import sphinx_rtd_theme
-
-# extensions = [
-# "sphinx_rtd_theme"
-# ]
-
-html_theme = 'sphinx_rtd_theme'
-html_logo = 'images/Temoa_logo_color_small.png'
-latex_logo = 'images/TemoaLogo_grayscale.png'
-
+html_theme = 'sphinx_book_theme'
+html_theme_options = {
+ 'repository_url': 'https://github.com/TemoaProject/temoa',
+ 'use_repository_button': True,
+ 'use_issues_button': True,
+ 'use_edit_page_button': True,
+ 'path_to_docs': 'docs/source',
+ 'show_navbar_depth': 2,
+}
+latex_logo = 'assets/logo_bottom_text.pdf'
+html_logo = 'assets/logo_bottom_text.svg'
myst_enable_extensions = ['amsmath', 'colon_fence', 'dollarmath', 'html_image']
myst_fence_as_directive = ['mermaid']
diff --git a/pyproject.toml b/pyproject.toml
index d0704126..e9fc108c 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -52,7 +52,7 @@ dev = [
[project.optional-dependencies]
docs = [
"sphinx>=7.4.7",
- "sphinx-rtd-theme>=2.0.0",
+ "sphinx-book-theme>=1.1.3",
"sphinxcontrib-htmlhelp>=2.1.0",
"sphinxcontrib-serializinghtml>=2.0.0",
"sphinxcontrib-bibtex>=2.6.2",
diff --git a/requirements-dev.txt b/requirements-dev.txt
index e845fadf..71efc37c 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -1,9 +1,15 @@
# This file was autogenerated by uv via the following command:
# uv pip compile pyproject.toml --all-extras -o requirements-dev.txt
+accessible-pygments==0.0.5
+ # via pydata-sphinx-theme
alabaster==1.0.0
# via sphinx
babel==2.17.0
- # via sphinx
+ # via
+ # pydata-sphinx-theme
+ # sphinx
+beautifulsoup4==4.14.3
+ # via pydata-sphinx-theme
certifi==2025.7.14
# via requests
charset-normalizer==3.4.2
@@ -22,8 +28,8 @@ docutils==0.21.2
# via
# myst-parser
# pybtex-docutils
+ # pydata-sphinx-theme
# sphinx
- # sphinx-rtd-theme
# sphinxcontrib-bibtex
et-xmlfile==2.0.0
# via openpyxl
@@ -95,6 +101,7 @@ openpyxl==3.1.5
packaging==25.0
# via
# matplotlib
+ # pydata-sphinx-theme
# pytest
# sphinx
pandas==2.3.1
@@ -118,8 +125,12 @@ pybtex==0.25.1
# sphinxcontrib-bibtex
pybtex-docutils==1.0.3
# via sphinxcontrib-bibtex
+pydata-sphinx-theme==0.15.4
+ # via sphinx-book-theme
pygments==2.19.2
# via
+ # accessible-pygments
+ # pydata-sphinx-theme
# pytest
# rich
# sphinx
@@ -165,15 +176,17 @@ six==1.17.0
# via python-dateutil
snowballstemmer==3.0.1
# via sphinx
+soupsieve==2.8.1
+ # via beautifulsoup4
sphinx==8.2.3
# via
# temoa (pyproject.toml)
# myst-parser
- # sphinx-rtd-theme
+ # pydata-sphinx-theme
+ # sphinx-book-theme
# sphinxcontrib-bibtex
- # sphinxcontrib-jquery
# sphinxcontrib-mermaid
-sphinx-rtd-theme==3.0.2
+sphinx-book-theme==1.1.4
# via temoa (pyproject.toml)
sphinxcontrib-applehelp==2.0.0
# via sphinx
@@ -185,8 +198,6 @@ sphinxcontrib-htmlhelp==2.1.0
# via
# temoa (pyproject.toml)
# sphinx
-sphinxcontrib-jquery==4.1
- # via sphinx-rtd-theme
sphinxcontrib-jsmath==1.0.1
# via sphinx
sphinxcontrib-mermaid==1.2.3
@@ -205,9 +216,11 @@ typer==0.20.0
# via temoa (pyproject.toml)
typing-extensions==4.15.0
# via
+ # beautifulsoup4
# flexcache
# flexparser
# pint
+ # pydata-sphinx-theme
# typer
tzdata==2025.2
# via pandas
diff --git a/uv.lock b/uv.lock
index dbce91d1..5930c5dc 100644
--- a/uv.lock
+++ b/uv.lock
@@ -2,6 +2,18 @@ version = 1
revision = 3
requires-python = ">=3.12"
+[[package]]
+name = "accessible-pygments"
+version = "0.0.5"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "pygments" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/bc/c1/bbac6a50d02774f91572938964c582fff4270eee73ab822a4aeea4d8b11b/accessible_pygments-0.0.5.tar.gz", hash = "sha256:40918d3e6a2b619ad424cb91e556bd3bd8865443d9f22f1dcdf79e33c8046872", size = 1377899, upload-time = "2024-05-10T11:23:10.216Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/8d/3f/95338030883d8c8b91223b4e21744b04d11b161a3ef117295d8241f50ab4/accessible_pygments-0.0.5-py3-none-any.whl", hash = "sha256:88ae3211e68a1d0b011504b2ffc1691feafce124b845bd072ab6f9f66f34d4b7", size = 1395903, upload-time = "2024-05-10T11:23:08.421Z" },
+]
+
[[package]]
name = "alabaster"
version = "1.0.0"
@@ -20,6 +32,19 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/b7/b8/3fe70c75fe32afc4bb507f75563d39bc5642255d1d94f1f23604725780bf/babel-2.17.0-py3-none-any.whl", hash = "sha256:4d0b53093fdfb4b21c92b5213dba5a1b23885afa8383709427046b21c366e5f2", size = 10182537, upload-time = "2025-02-01T15:17:37.39Z" },
]
+[[package]]
+name = "beautifulsoup4"
+version = "4.14.3"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "soupsieve" },
+ { name = "typing-extensions" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/c3/b0/1c6a16426d389813b48d95e26898aff79abbde42ad353958ad95cc8c9b21/beautifulsoup4-4.14.3.tar.gz", hash = "sha256:6292b1c5186d356bba669ef9f7f051757099565ad9ada5dd630bd9de5fa7fb86", size = 627737, upload-time = "2025-11-30T15:08:26.084Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/1a/39/47f9197bdd44df24d67ac8893641e16f386c984a0619ef2ee4c51fbbc019/beautifulsoup4-4.14.3-py3-none-any.whl", hash = "sha256:0918bfe44902e6ad8d57732ba310582e98da931428d231a5ecb9e7c703a735bb", size = 107721, upload-time = "2025-11-30T15:08:24.087Z" },
+]
+
[[package]]
name = "certifi"
version = "2025.7.14"
@@ -940,6 +965,25 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/11/b1/ce1f4596211efb5410e178a803f08e59b20bedb66837dcf41e21c54f9ec1/pybtex_docutils-1.0.3-py3-none-any.whl", hash = "sha256:8fd290d2ae48e32fcb54d86b0efb8d573198653c7e2447d5bec5847095f430b9", size = 6385, upload-time = "2023-08-22T06:43:20.513Z" },
]
+[[package]]
+name = "pydata-sphinx-theme"
+version = "0.15.4"
+source = { registry = "https://pypi.org/simple" }
+dependencies = [
+ { name = "accessible-pygments" },
+ { name = "babel" },
+ { name = "beautifulsoup4" },
+ { name = "docutils" },
+ { name = "packaging" },
+ { name = "pygments" },
+ { name = "sphinx" },
+ { name = "typing-extensions" },
+]
+sdist = { url = "https://files.pythonhosted.org/packages/67/ea/3ab478cccacc2e8ef69892c42c44ae547bae089f356c4b47caf61730958d/pydata_sphinx_theme-0.15.4.tar.gz", hash = "sha256:7762ec0ac59df3acecf49fd2f889e1b4565dbce8b88b2e29ee06fdd90645a06d", size = 2400673, upload-time = "2024-06-25T19:28:45.041Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/e7/d3/c622950d87a2ffd1654208733b5bd1c5645930014abed8f4c0d74863988b/pydata_sphinx_theme-0.15.4-py3-none-any.whl", hash = "sha256:2136ad0e9500d0949f96167e63f3e298620040aea8f9c74621959eda5d4cf8e6", size = 4640157, upload-time = "2024-06-25T19:28:42.383Z" },
+]
+
[[package]]
name = "pygments"
version = "2.19.2"
@@ -1243,6 +1287,15 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/c8/78/3565d011c61f5a43488987ee32b6f3f656e7f107ac2782dd57bdd7d91d9a/snowballstemmer-3.0.1-py3-none-any.whl", hash = "sha256:6cd7b3897da8d6c9ffb968a6781fa6532dce9c3618a4b127d920dab764a19064", size = 103274, upload-time = "2025-05-09T16:34:50.371Z" },
]
+[[package]]
+name = "soupsieve"
+version = "2.8.1"
+source = { registry = "https://pypi.org/simple" }
+sdist = { url = "https://files.pythonhosted.org/packages/89/23/adf3796d740536d63a6fbda113d07e60c734b6ed5d3058d1e47fc0495e47/soupsieve-2.8.1.tar.gz", hash = "sha256:4cf733bc50fa805f5df4b8ef4740fc0e0fa6218cf3006269afd3f9d6d80fd350", size = 117856, upload-time = "2025-12-18T13:50:34.655Z" }
+wheels = [
+ { url = "https://files.pythonhosted.org/packages/48/f3/b67d6ea49ca9154453b6d70b34ea22f3996b9fa55da105a79d8732227adc/soupsieve-2.8.1-py3-none-any.whl", hash = "sha256:a11fe2a6f3d76ab3cf2de04eb339c1be5b506a8a47f2ceb6d139803177f85434", size = 36710, upload-time = "2025-12-18T13:50:33.267Z" },
+]
+
[[package]]
name = "sphinx"
version = "8.2.3"
@@ -1272,17 +1325,16 @@ wheels = [
]
[[package]]
-name = "sphinx-rtd-theme"
-version = "3.0.2"
+name = "sphinx-book-theme"
+version = "1.1.4"
source = { registry = "https://pypi.org/simple" }
dependencies = [
- { name = "docutils" },
+ { name = "pydata-sphinx-theme" },
{ name = "sphinx" },
- { name = "sphinxcontrib-jquery" },
]
-sdist = { url = "https://files.pythonhosted.org/packages/91/44/c97faec644d29a5ceddd3020ae2edffa69e7d00054a8c7a6021e82f20335/sphinx_rtd_theme-3.0.2.tar.gz", hash = "sha256:b7457bc25dda723b20b086a670b9953c859eab60a2a03ee8eb2bb23e176e5f85", size = 7620463, upload-time = "2024-11-13T11:06:04.545Z" }
+sdist = { url = "https://files.pythonhosted.org/packages/45/19/d002ed96bdc7738c15847c730e1e88282d738263deac705d5713b4d8fa94/sphinx_book_theme-1.1.4.tar.gz", hash = "sha256:73efe28af871d0a89bd05856d300e61edce0d5b2fbb7984e84454be0fedfe9ed", size = 439188, upload-time = "2025-02-20T16:32:32.581Z" }
wheels = [
- { url = "https://files.pythonhosted.org/packages/85/77/46e3bac77b82b4df5bb5b61f2de98637724f246b4966cfc34bc5895d852a/sphinx_rtd_theme-3.0.2-py2.py3-none-any.whl", hash = "sha256:422ccc750c3a3a311de4ae327e82affdaf59eb695ba4936538552f3b00f4ee13", size = 7655561, upload-time = "2024-11-13T11:06:02.094Z" },
+ { url = "https://files.pythonhosted.org/packages/51/9e/c41d68be04eef5b6202b468e0f90faf0c469f3a03353f2a218fd78279710/sphinx_book_theme-1.1.4-py3-none-any.whl", hash = "sha256:843b3f5c8684640f4a2d01abd298beb66452d1b2394cd9ef5be5ebd5640ea0e1", size = 433952, upload-time = "2025-02-20T16:32:31.009Z" },
]
[[package]]
@@ -1327,18 +1379,6 @@ wheels = [
{ url = "https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8", size = 98705, upload-time = "2024-07-29T01:09:36.407Z" },
]
-[[package]]
-name = "sphinxcontrib-jquery"
-version = "4.1"
-source = { registry = "https://pypi.org/simple" }
-dependencies = [
- { name = "sphinx" },
-]
-sdist = { url = "https://files.pythonhosted.org/packages/de/f3/aa67467e051df70a6330fe7770894b3e4f09436dea6881ae0b4f3d87cad8/sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a", size = 122331, upload-time = "2023-03-14T15:01:01.944Z" }
-wheels = [
- { url = "https://files.pythonhosted.org/packages/76/85/749bd22d1a68db7291c89e2ebca53f4306c3f205853cf31e9de279034c3c/sphinxcontrib_jquery-4.1-py2.py3-none-any.whl", hash = "sha256:f936030d7d0147dd026a4f2b5a57343d233f1fc7b363f68b3d4f1cb0993878ae", size = 121104, upload-time = "2023-03-14T15:01:00.356Z" },
-]
-
[[package]]
name = "sphinxcontrib-jsmath"
version = "1.0.1"
@@ -1419,7 +1459,7 @@ dependencies = [
docs = [
{ name = "myst-parser" },
{ name = "sphinx" },
- { name = "sphinx-rtd-theme" },
+ { name = "sphinx-book-theme" },
{ name = "sphinxcontrib-bibtex" },
{ name = "sphinxcontrib-htmlhelp" },
{ name = "sphinxcontrib-mermaid" },
@@ -1469,7 +1509,7 @@ requires-dist = [
{ name = "seaborn", specifier = ">=0.13.2" },
{ name = "seaborn", marker = "extra == 'plotting'", specifier = ">=0.13.2" },
{ name = "sphinx", marker = "extra == 'docs'", specifier = ">=7.4.7" },
- { name = "sphinx-rtd-theme", marker = "extra == 'docs'", specifier = ">=2.0.0" },
+ { name = "sphinx-book-theme", marker = "extra == 'docs'", specifier = ">=1.1.3" },
{ name = "sphinxcontrib-bibtex", marker = "extra == 'docs'", specifier = ">=2.6.2" },
{ name = "sphinxcontrib-htmlhelp", marker = "extra == 'docs'", specifier = ">=2.1.0" },
{ name = "sphinxcontrib-mermaid", marker = "extra == 'docs'", specifier = ">=1.2.3" },