diff --git a/docs/conf.py b/docs/conf.py index d39282a..0141c74 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -35,21 +35,9 @@ "sphinx.ext.autodoc", "sphinx.ext.viewcode", "sphinx_preview", + "ubt_sphinx" ] -# During a PDF build with Sphinx-SimplePDF, a special theme is used. -# But adding "sphinx_immaterial" to the extension list, the "immaterial" already -# does a lot of sphinx voodoo, which is not needed and does not work during a PDF build. -# Therefore we add it only, if a special ENV-Var is not set. -# -# As we can't ask Sphinx already in the config file, which Builder will be used, we need -# to set this information by hand, or in this case via an ENV var. -# -# To build HTML, just call ``make html -# To build PDF, call ``env PDF=1 make simplepdf" -if os.environ.get("PDF", "0") != "1": - extensions.append("sphinx_immaterial") - ############################################################################### # SPHINX-NEEDS Config START ############################################################################### @@ -127,14 +115,9 @@ html_theme = "alabaster" # Sphinx Defaul Theme -# Set ``html_theme`` to ``sphinx_immaterial`` only, if we do NOT perform a PDF build. -if os.environ.get("PDF", 0) != 1: - html_theme = "sphinx_immaterial" html_static_path = ["_static"] -sphinx_immaterial_override_generic_admonitions = True - html_logo = "_images/sphinx-needs-logo.png" html_theme_options = { "font": False, @@ -142,7 +125,7 @@ "repo": "fontawesome/brands/github", "edit": "material/file-edit-outline", }, - "site_url": "https://jbms.github.io/sphinx-immaterial/", + "site_url": "https://sphinx-needs.com", "repo_url": "https://github.com/useblocks/sphinx-needs-demo", "repo_name": "Sphinx-Needs Demo", "edit_uri": "blob/main/docs", @@ -192,6 +175,34 @@ "custom.css", ] +################################################################## +# ubTrace Builder options # +################################################################## +ubtrace_organization = "useblocks" +ubtrace_project = "sphinx-needs-demo" +ubtrace_version = "1" + +# Pattern to secure pages manually. +# Example: {"developer_handbook/features/": ["int_developer"]} +ubtrace_secure_pattern = {} + +# ubTrace Theme Options +ubtrace_theme_options = { + "logo": { + "desktop": { + "light": "_static/sn_demo_logo_light.png", + "dark": "_static/sn_demo_logo_dark.png", + }, + "mobile": { + "light": "_static/sn_demo_logo_light.png", + "dark": "_static/sn_demo_logo_dark.png", + }, + }, + "repo_url": "https://github.com/useblocks/sphinx-needs-demo/", + "edit_uri": "/edit/main/docs/", + "view_source_uri": "/blob/main/docs/", +} + # Some special vodoo to render each rst-file by jinja, before it gets handled by Sphinx. # This allows us to use the powerfull jinja-features to create content in a loop, react on diff --git a/requirements-dev.lock b/requirements-dev.lock new file mode 100644 index 0000000..ab2bd89 --- /dev/null +++ b/requirements-dev.lock @@ -0,0 +1,213 @@ +# generated by rye +# use `rye lock` or `rye sync` to update this lockfile +# +# last locked with the following flags: +# pre: false +# features: [] +# all-features: false +# with-sources: false +# generate-hashes: false +# universal: false + +-e file:. +accessible-pygments==0.0.5 + # via furo +alabaster==1.0.0 + # via sphinx +annotated-types==0.7.0 + # via pydantic +appdirs==1.4.4 + # via sphinx-immaterial +attrs==25.3.0 + # via jsonschema + # via referencing +babel==2.17.0 + # via sphinx +beautifulsoup4==4.13.5 + # via furo + # via sphinx-simplepdf +brotli==1.1.0 + # via fonttools +certifi==2025.8.3 + # via requests +cffi==2.0.0 + # via weasyprint +charset-normalizer==3.4.3 + # via requests +contourpy==1.3.3 + # via matplotlib +cssselect2==0.8.0 + # via weasyprint +cycler==0.12.1 + # via matplotlib +cython==3.1.4 + # via sphinx +defusedxml==0.7.1 + # via sphinx +docutils==0.21.2 + # via sphinx +execnet==2.1.1 + # via pytest-xdist +fonttools==4.60.0 + # via matplotlib + # via weasyprint +furo==2025.7.19 + # via sphinx-needs-demo +idna==3.10 + # via requests +imagesize==1.4.1 + # via sphinx +iniconfig==2.1.0 + # via pytest +jinja2==3.1.6 + # via sphinx +jsonschema==4.25.1 + # via sphinx-needs +jsonschema-specifications==2025.9.1 + # via jsonschema +kiwisolver==1.4.9 + # via matplotlib +libsass==0.23.0 + # via sphinx-simplepdf +lxml==6.0.1 + # via sphinx-test-reports +markupsafe==3.0.2 + # via jinja2 + # via sphinx-immaterial +matplotlib==3.10.6 + # via sphinx-needs +numpy==2.3.3 + # via contourpy + # via matplotlib +packaging==25.0 + # via matplotlib + # via pytest + # via sphinx +pillow==11.3.0 + # via matplotlib + # via weasyprint +pluggy==1.6.0 + # via pytest +psutil==7.0.0 + # via pytest-xdist +pycparser==2.23 + # via cffi +pydantic==2.11.9 + # via pydantic-extra-types + # via sphinx-immaterial +pydantic-core==2.33.2 + # via pydantic +pydantic-extra-types==2.10.5 + # via sphinx-immaterial +pydyf==0.11.0 + # via weasyprint +pygments==2.19.2 + # via accessible-pygments + # via furo + # via pytest + # via sphinx +pyparsing==3.2.4 + # via matplotlib +pyphen==0.17.2 + # via weasyprint +pytest==8.4.2 + # via pytest-xdist + # via sphinx +pytest-xdist==3.8.0 + # via sphinx +python-dateutil==2.9.0.post0 + # via matplotlib +referencing==0.36.2 + # via jsonschema + # via jsonschema-specifications +requests==2.32.5 + # via requests-file + # via sphinx + # via sphinx-immaterial + # via sphinx-needs +requests-file==2.1.0 + # via sphinx-needs +roman-numerals-py==3.1.0 + # via sphinx +rpds-py==0.27.1 + # via jsonschema + # via referencing +setuptools==80.9.0 + # via sphinx +six==1.17.0 + # via python-dateutil +snowballstemmer==3.0.1 + # via sphinx +soupsieve==2.8 + # via beautifulsoup4 +sphinx==8.2.3 + # via furo + # via sphinx-basic-ng + # via sphinx-data-viewer + # via sphinx-design + # via sphinx-immaterial + # via sphinx-needs + # via sphinx-needs-demo + # via sphinx-simplepdf + # via sphinx-test-reports + # via sphinxcontrib-jquery + # via sphinxcontrib-plantuml +sphinx-basic-ng==1.0.0b2 + # via furo +sphinx-data-viewer==0.1.5 + # via sphinx-needs +sphinx-design==0.6.1 + # via sphinx-needs-demo +sphinx-immaterial==0.13.6 + # via sphinx-needs-demo +sphinx-needs==5.1.0 + # via sphinx-needs-demo + # via sphinx-test-reports +sphinx-preview==0.1.2 + # via sphinx-needs-demo +sphinx-simplepdf==1.6.0 + # via sphinx-needs-demo +sphinx-test-reports==1.2.0 + # via sphinx-needs-demo +sphinxcontrib-applehelp==2.0.0 + # via sphinx +sphinxcontrib-devhelp==2.0.0 + # via sphinx +sphinxcontrib-htmlhelp==2.1.0 + # via sphinx +sphinxcontrib-jquery==4.1 + # via sphinx-needs +sphinxcontrib-jsmath==1.0.1 + # via sphinx +sphinxcontrib-plantuml==0.31 + # via sphinx-needs-demo +sphinxcontrib-qthelp==2.0.0 + # via sphinx +sphinxcontrib-serializinghtml==2.0.0 + # via sphinx +tinycss2==1.4.0 + # via cssselect2 + # via weasyprint +tinyhtml5==2.0.0 + # via weasyprint +typing-extensions==4.15.0 + # via beautifulsoup4 + # via pydantic + # via pydantic-core + # via pydantic-extra-types + # via referencing + # via sphinx + # via sphinx-immaterial + # via typing-inspection +typing-inspection==0.4.1 + # via pydantic +urllib3==2.5.0 + # via requests +weasyprint==66.0 + # via sphinx-simplepdf +webencodings==0.5.1 + # via cssselect2 + # via tinycss2 + # via tinyhtml5 +zopfli==0.2.3.post1 + # via fonttools diff --git a/requirements.lock b/requirements.lock new file mode 100644 index 0000000..ab2bd89 --- /dev/null +++ b/requirements.lock @@ -0,0 +1,213 @@ +# generated by rye +# use `rye lock` or `rye sync` to update this lockfile +# +# last locked with the following flags: +# pre: false +# features: [] +# all-features: false +# with-sources: false +# generate-hashes: false +# universal: false + +-e file:. +accessible-pygments==0.0.5 + # via furo +alabaster==1.0.0 + # via sphinx +annotated-types==0.7.0 + # via pydantic +appdirs==1.4.4 + # via sphinx-immaterial +attrs==25.3.0 + # via jsonschema + # via referencing +babel==2.17.0 + # via sphinx +beautifulsoup4==4.13.5 + # via furo + # via sphinx-simplepdf +brotli==1.1.0 + # via fonttools +certifi==2025.8.3 + # via requests +cffi==2.0.0 + # via weasyprint +charset-normalizer==3.4.3 + # via requests +contourpy==1.3.3 + # via matplotlib +cssselect2==0.8.0 + # via weasyprint +cycler==0.12.1 + # via matplotlib +cython==3.1.4 + # via sphinx +defusedxml==0.7.1 + # via sphinx +docutils==0.21.2 + # via sphinx +execnet==2.1.1 + # via pytest-xdist +fonttools==4.60.0 + # via matplotlib + # via weasyprint +furo==2025.7.19 + # via sphinx-needs-demo +idna==3.10 + # via requests +imagesize==1.4.1 + # via sphinx +iniconfig==2.1.0 + # via pytest +jinja2==3.1.6 + # via sphinx +jsonschema==4.25.1 + # via sphinx-needs +jsonschema-specifications==2025.9.1 + # via jsonschema +kiwisolver==1.4.9 + # via matplotlib +libsass==0.23.0 + # via sphinx-simplepdf +lxml==6.0.1 + # via sphinx-test-reports +markupsafe==3.0.2 + # via jinja2 + # via sphinx-immaterial +matplotlib==3.10.6 + # via sphinx-needs +numpy==2.3.3 + # via contourpy + # via matplotlib +packaging==25.0 + # via matplotlib + # via pytest + # via sphinx +pillow==11.3.0 + # via matplotlib + # via weasyprint +pluggy==1.6.0 + # via pytest +psutil==7.0.0 + # via pytest-xdist +pycparser==2.23 + # via cffi +pydantic==2.11.9 + # via pydantic-extra-types + # via sphinx-immaterial +pydantic-core==2.33.2 + # via pydantic +pydantic-extra-types==2.10.5 + # via sphinx-immaterial +pydyf==0.11.0 + # via weasyprint +pygments==2.19.2 + # via accessible-pygments + # via furo + # via pytest + # via sphinx +pyparsing==3.2.4 + # via matplotlib +pyphen==0.17.2 + # via weasyprint +pytest==8.4.2 + # via pytest-xdist + # via sphinx +pytest-xdist==3.8.0 + # via sphinx +python-dateutil==2.9.0.post0 + # via matplotlib +referencing==0.36.2 + # via jsonschema + # via jsonschema-specifications +requests==2.32.5 + # via requests-file + # via sphinx + # via sphinx-immaterial + # via sphinx-needs +requests-file==2.1.0 + # via sphinx-needs +roman-numerals-py==3.1.0 + # via sphinx +rpds-py==0.27.1 + # via jsonschema + # via referencing +setuptools==80.9.0 + # via sphinx +six==1.17.0 + # via python-dateutil +snowballstemmer==3.0.1 + # via sphinx +soupsieve==2.8 + # via beautifulsoup4 +sphinx==8.2.3 + # via furo + # via sphinx-basic-ng + # via sphinx-data-viewer + # via sphinx-design + # via sphinx-immaterial + # via sphinx-needs + # via sphinx-needs-demo + # via sphinx-simplepdf + # via sphinx-test-reports + # via sphinxcontrib-jquery + # via sphinxcontrib-plantuml +sphinx-basic-ng==1.0.0b2 + # via furo +sphinx-data-viewer==0.1.5 + # via sphinx-needs +sphinx-design==0.6.1 + # via sphinx-needs-demo +sphinx-immaterial==0.13.6 + # via sphinx-needs-demo +sphinx-needs==5.1.0 + # via sphinx-needs-demo + # via sphinx-test-reports +sphinx-preview==0.1.2 + # via sphinx-needs-demo +sphinx-simplepdf==1.6.0 + # via sphinx-needs-demo +sphinx-test-reports==1.2.0 + # via sphinx-needs-demo +sphinxcontrib-applehelp==2.0.0 + # via sphinx +sphinxcontrib-devhelp==2.0.0 + # via sphinx +sphinxcontrib-htmlhelp==2.1.0 + # via sphinx +sphinxcontrib-jquery==4.1 + # via sphinx-needs +sphinxcontrib-jsmath==1.0.1 + # via sphinx +sphinxcontrib-plantuml==0.31 + # via sphinx-needs-demo +sphinxcontrib-qthelp==2.0.0 + # via sphinx +sphinxcontrib-serializinghtml==2.0.0 + # via sphinx +tinycss2==1.4.0 + # via cssselect2 + # via weasyprint +tinyhtml5==2.0.0 + # via weasyprint +typing-extensions==4.15.0 + # via beautifulsoup4 + # via pydantic + # via pydantic-core + # via pydantic-extra-types + # via referencing + # via sphinx + # via sphinx-immaterial + # via typing-inspection +typing-inspection==0.4.1 + # via pydantic +urllib3==2.5.0 + # via requests +weasyprint==66.0 + # via sphinx-simplepdf +webencodings==0.5.1 + # via cssselect2 + # via tinycss2 + # via tinyhtml5 +zopfli==0.2.3.post1 + # via fonttools