././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1732787765.5954938 sunpy_sphinx_theme-2.0.18/ 0000755 0001751 0000177 00000000000 14722037066 015147 5 ustar 00runner docker ././@PaxHeader 0000000 0000000 0000000 00000000026 00000000000 010213 x ustar 00 22 mtime=1732787755.0 sunpy_sphinx_theme-2.0.18/.readthedocs.yaml 0000644 0001751 0000177 00000000741 14722037053 020374 0 ustar 00runner docker version: 2 build: os: ubuntu-lts-latest tools: python: "mambaforge-latest" jobs: post_checkout: - git fetch --unshallow || true pre_install: - git update-index --assume-unchanged .rtd-environment.yml docs/conf.py conda: environment: .rtd-environment.yml sphinx: builder: html configuration: docs/conf.py fail_on_warning: True formats: - htmlzip python: install: - method: pip extra_requirements: - docs path: . ././@PaxHeader 0000000 0000000 0000000 00000000026 00000000000 010213 x ustar 00 22 mtime=1732787755.0 sunpy_sphinx_theme-2.0.18/.rtd-environment.yml 0000644 0001751 0000177 00000000173 14722037053 021100 0 ustar 00runner docker name: rtd_sunpy_sphinx_theme channels: - conda-forge dependencies: - python=3.11 - pip - graphviz!=2.42.*,!=2.43.* ././@PaxHeader 0000000 0000000 0000000 00000000026 00000000000 010213 x ustar 00 22 mtime=1732787755.0 sunpy_sphinx_theme-2.0.18/.stylelintrc.json 0000644 0001751 0000177 00000000230 14722037053 020463 0 ustar 00runner docker { "extends": "stylelint-config-recommended", "rules": { "no-descending-specificity": null, "selector-pseudo-element-no-unknown": null } } ././@PaxHeader 0000000 0000000 0000000 00000000026 00000000000 010213 x ustar 00 22 mtime=1732787755.0 sunpy_sphinx_theme-2.0.18/LICENSE.md 0000644 0001751 0000177 00000002462 14722037053 016553 0 ustar 00runner docker BSD 2-Clause License Copyright (c) 2018-2023, The SunPy Developers All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ././@PaxHeader 0000000 0000000 0000000 00000000026 00000000000 010213 x ustar 00 22 mtime=1732787755.0 sunpy_sphinx_theme-2.0.18/MANIFEST.in 0000644 0001751 0000177 00000000327 14722037053 016703 0 ustar 00runner docker exclude tox.ini exclude .gitignore exclude .pre-commit-config.yaml exclude .stylelintrc prune .circleci/ prune .github/ prune docs/ prune examples/ prune tools/ recursive-include src/sunpy_sphinx_theme/sunpy/ * ././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1732787765.5954938 sunpy_sphinx_theme-2.0.18/PKG-INFO 0000644 0001751 0000177 00000006122 14722037066 016245 0 ustar 00runner docker Metadata-Version: 2.1 Name: sunpy-sphinx-theme Version: 2.0.18 Summary: The sphinx theme for the SunPy website and documentation. Author: The SunPy Developers License: BSD 2-Clause License Copyright (c) 2018-2023, The SunPy Developers All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. - Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. Classifier: Development Status :: 5 - Production/Stable Classifier: Intended Audience :: Developers Classifier: Programming Language :: Python Classifier: Programming Language :: Python :: 3 Classifier: Framework :: Sphinx Classifier: Framework :: Sphinx :: Theme Classifier: Operating System :: OS Independent Classifier: License :: OSI Approved :: BSD License Requires-Python: >=3.9 Description-Content-Type: text/markdown License-File: LICENSE.md Requires-Dist: pydata-sphinx-theme~=0.16.0 Requires-Dist: sphinx Provides-Extra: docs Requires-Dist: matplotlib; extra == "docs" Requires-Dist: sphinx-automodapi; extra == "docs" Requires-Dist: sphinx-copybutton; extra == "docs" Requires-Dist: sphinx-design; extra == "docs" Requires-Dist: sphinx-gallery; extra == "docs" Requires-Dist: sphinx-hoverxref; extra == "docs" Requires-Dist: sphinx-togglebutton; extra == "docs" Requires-Dist: sunpy; extra == "docs" # SunPy Project Sphinx Theme [](https://badge.fury.io/py/sunpy-sphinx-theme) This repository contains the sphinx theme used by The Sunpy Project for all online resources. This theme is a derivative of the excellent [pydata-sphinx-theme](https://pydata-sphinx-theme.readthedocs.io/en/stable/index.html), customized to present a uniform navigation over all the projects. For more information see the [documentation](https://docs.sunpy.org/projects/sunpy-sphinx-theme/latest/). ././@PaxHeader 0000000 0000000 0000000 00000000026 00000000000 010213 x ustar 00 22 mtime=1732787755.0 sunpy_sphinx_theme-2.0.18/README.md 0000644 0001751 0000177 00000001037 14722037053 016423 0 ustar 00runner docker # SunPy Project Sphinx Theme [](https://badge.fury.io/py/sunpy-sphinx-theme) This repository contains the sphinx theme used by The Sunpy Project for all online resources. This theme is a derivative of the excellent [pydata-sphinx-theme](https://pydata-sphinx-theme.readthedocs.io/en/stable/index.html), customized to present a uniform navigation over all the projects. For more information see the [documentation](https://docs.sunpy.org/projects/sunpy-sphinx-theme/latest/). ././@PaxHeader 0000000 0000000 0000000 00000000026 00000000000 010213 x ustar 00 22 mtime=1732787755.0 sunpy_sphinx_theme-2.0.18/_typos.toml 0000644 0001751 0000177 00000000460 14722037053 017355 0 ustar 00runner docker default.extend-ignore-identifiers-re = [ "ANDed", # ANDed "arange", "iy1", "iy2", "EIS", "eis", "EIT", "eit", "HAE", "hsi", "Hsi", "nd", "NDData", "alog", "alog10", "FOVs", "FOV", # HEK "OT", "ot", # Coords, "pn", ] ././@PaxHeader 0000000 0000000 0000000 00000000026 00000000000 010213 x ustar 00 22 mtime=1732787755.0 sunpy_sphinx_theme-2.0.18/pyproject.toml 0000644 0001751 0000177 00000003310 14722037053 020054 0 ustar 00runner docker [build-system] requires = ["setuptools>=45", "setuptools_scm[toml]>=6.2", "wheel"] build-backend = 'setuptools.build_meta' [project] name = "sunpy-sphinx-theme" authors = [ {name = "The SunPy Developers"}, ] description = "The sphinx theme for the SunPy website and documentation." dynamic = ["version"] readme = "README.md" license = { file = "LICENSE.md" } classifiers = [ "Development Status :: 5 - Production/Stable", "Intended Audience :: Developers", "Programming Language :: Python", "Programming Language :: Python :: 3", "Framework :: Sphinx", "Framework :: Sphinx :: Theme", "Operating System :: OS Independent", "License :: OSI Approved :: BSD License", ] requires-python = ">=3.9" dependencies = [ "pydata-sphinx-theme~=0.16.0", "sphinx" ] [project.optional-dependencies] docs = [ "matplotlib", "sphinx-automodapi", "sphinx-copybutton", "sphinx-design", "sphinx-gallery", "sphinx-hoverxref", "sphinx-togglebutton", "sunpy", ] [project.entry-points] "sphinx.html_themes" = { sunpy = "sunpy_sphinx_theme" } [tool.setuptools] include-package-data = true [tool.setuptools_scm] [ tool.gilesbot ] [ tool.gilesbot.circleci_artifacts.giles ] enabled = false [ tool.gilesbot.circleci_artifacts.website ] url = "sunpy.org/_build/html/index.html" message = "SunPy website preview" report_on_fail = true [ tool.gilesbot.circleci_artifacts.sunpy_docs ] url = "sunpy_docs/sunpy/docs/_build/html/index.html" message = "sunpy docs preview" report_on_fail = true [ tool.gilesbot.circleci_artifacts.sunpy_docs-devdeps ] url = "sunpy_docs-devdeps/sunpy/docs/_build/html/index.html" message = "sunpy docs with devdeps preview" report_on_fail = true ././@PaxHeader 0000000 0000000 0000000 00000000026 00000000000 010213 x ustar 00 22 mtime=1732787755.0 sunpy_sphinx_theme-2.0.18/ruff.toml 0000644 0001751 0000177 00000004547 14722037053 017014 0 ustar 00runner docker # Allow unused variables when underscore-prefixed. lint.dummy-variable-rgx = "^(_+|(_+[a-zA-Z0-9_]*[a-zA-Z0-9]+?))$" target-version = "py310" line-length = 120 extend-exclude=[ "__pycache__", "build", "tools/**", ] lint.select = [ "ALL", ] lint.extend-ignore = [ "ANN001", # Missing type annotation for function argument "ANN002", # Missing type annotation for variable "ANN003", # Missing type annotation for keyword "ANN201", # Missing return type annotation for public function "ANN202", # Missing return type annotation for private function "ANN204", # Missing return type annotation for special method "ANN205", # Missing return type annotation for staticmethod "ANN206", # Missing return type annotation for classmethod "COM812", # May cause conflicts when used with the formatter "D200", # One-line docstring should fit on one line "D205", # 1 blank line required between summary line and description "D400", # First line should end with a period "D401", # First line should be in imperative mood "D404", # First word of the docstring should not be "This" "E501", # Line too long "FIX002", # Line contains TODO, consider resolving the issue "ISC001", # May cause conflicts when used with the formatter "PLR2004", # Magic value used in comparison "TD002", # Missing author in TODO "TD003", # Missing issue link on the line following this TODO ] [lint.per-file-ignores] "examples/*.py" = [ "B018", # Not print but display "D400", # First line should end with a period, question mark, or exclamation point "ERA001", # Commented out code "INP001", # Implicit namespace package "T201", # Use print ] "docs/conf.py" = [ "D100", # Missing docstring in public module "INP001", # conf.py is part of an implicit namespace package ] "setup.py" = [ "D100", # Missing docstring in public module ] "test_*.py" = [ "D100", # Missing docstring in public module "D103", # Missing docstring in public function "N806", # in function should be lowercase "S101", # Use of `assert` detected ] "sunpy_soar/version.py" = [ "D100", # Missing docstring in public module ] "sunpy_soar/conftest.py" = [ "D100", # Missing docstring in public module ] [lint.pydocstyle] convention = "numpy" [format] docstring-code-format = true indent-style = "space" quote-style = "double" ././@PaxHeader 0000000 0000000 0000000 00000000034 00000000000 010212 x ustar 00 28 mtime=1732787765.5954938 sunpy_sphinx_theme-2.0.18/setup.cfg 0000644 0001751 0000177 00000000046 14722037066 016770 0 ustar 00runner docker [egg_info] tag_build = tag_date = 0 ././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1732787765.587494 sunpy_sphinx_theme-2.0.18/src/ 0000755 0001751 0000177 00000000000 14722037066 015736 5 ustar 00runner docker ././@PaxHeader 0000000 0000000 0000000 00000000033 00000000000 010211 x ustar 00 27 mtime=1732787765.587494 sunpy_sphinx_theme-2.0.18/src/sunpy_sphinx_theme/ 0000755 0001751 0000177 00000000000 14722037066 021667 5 ustar 00runner docker ././@PaxHeader 0000000 0000000 0000000 00000000026 00000000000 010213 x ustar 00 22 mtime=1732787755.0 sunpy_sphinx_theme-2.0.18/src/sunpy_sphinx_theme/__init__.py 0000644 0001751 0000177 00000017006 14722037053 024000 0 ustar 00runner docker """ SunPy Sphinx Theme. """ import os from functools import partial from pathlib import Path from urllib.parse import urljoin from pydata_sphinx_theme import utils from sphinx.application import Sphinx __all__ = ["get_html_theme_path", "ON_RTD", "PNG_ICON", "SVG_ICON"] def get_html_theme_path(): """ Return list of HTML theme paths. """ parent = Path(__file__).parent.resolve() return parent / "theme" / "sunpy" def default_navbar(): return [ ( "About", [ ("Our Mission", "about/", 2), ("SunPy Project", "about/project/", 2), ("Presentations", "about/presentations/", 2), ("Community Roles", "about/roles/", 2), ("Meetings", "about/meetings/", 2), ("Code of Conduct", "coc/", 2), ], ), ( "Documentation", [ ("sunpy", "https://docs.sunpy.org/", 3), ("ndcube", "https://docs.sunpy.org/projects/ndcube/", 3), ("drms", "https://docs.sunpy.org/projects/drms/", 3), ("sunraster", "https://docs.sunpy.org/projects/sunraster/", 3), ("sunkit-image", "https://docs.sunpy.org/projects/sunkit-image/", 3), ("aiapy", "https://aiapy.readthedocs.io/", 3), ("sunpy-soar", "https://docs.sunpy.org/projects/soar/", 3), ("roentgen", "https://roentgen.readthedocs.io/", 3), ("sunkit-instruments ", "https://docs.sunpy.org/projects/sunkit-instruments/", 3), ("demcmc", "https://demcmc.readthedocs.io/en/latest/", 3), ("dkist", "https://docs.dkist.nso.edu/projects/python-tools", 3), ("solarmach", "https://solarmach.readthedocs.io/en/stable/", 3), ("sunkit-magex", "https://docs.sunpy.org/projects/sunkit-magex/", 3), ("pyflct", "https://pyflct.readthedocs.io/", 3), ("radiospectra", "https://docs.sunpy.org/projects/radiospectra/", 3), ], ), ("Affiliated Packages", "affiliated/", 2), ("Get Help", "help/", 2), ("Contribute", "contribute/", 2), ("Blog", "blog/", 2), ] def update_config(app) -> None: """ Update config with new default values and handle deprecated keys. """ # By the time `builder-inited` happens, `app.builder.theme_options` already exists. # At this point, modifying app.config.html_theme_options will NOT update the # page's HTML context (e.g. in jinja, `theme_keyword`). # To do this, you must manually modify `app.builder.theme_options`. theme_options = utils.get_theme_options_dict(app) if theme_options.get("sst_logo") and not isinstance(theme_options["sst_logo"], dict): sst_logo = str(theme_options["sst_logo"]) theme_options["sst_logo"] = {"light": sst_logo, "dark": sst_logo} theme_options["sst_is_root"] = bool(theme_options.get("sst_is_root", False)) if not theme_options.get("navbar_links"): theme_options["navbar_links"] = default_navbar() if not theme_options.get("footer_links", False): theme_options["footer_links"] = [ ("Code", "https://github.com/sunpy", 3), ("Forum", "https://community.openastronomy.org/c/sunpy", 3), ("Chat", "https://openastronomy.element.io/#/room/#sunpy:openastronomy.org", 3), ] # TODO: This is nasty # Set the default value of show_source to False unless it's specified in the user config if "html_show_sourcelink" not in app.config._raw_config: # NOQA: SLF001 app.config.html_show_sourcelink = False # Set the logo to the sunpy logo unless it's overridden in the user config if "html_logo" not in app.config._raw_config: # NOQA: SLF001 app.config.html_logo = str(get_html_theme_path() / "static" / "img" / "sunpy_icon.svg") def sst_pathto(context, document, relative_to=0): """ This is a modified version of the built-in ``pathto()`` function. The default version when called with one argument returns the URL to a sphinx document, when specified with a 1 as the second argument it returns the path to a file relative to the root of the generated output. This version has 4 modes: * ``sst_pathto(document)`` - The same as ``pathto(document)`` * ``sst_pathto(document, 1)`` - The same as ``pathto(document, 1)`` * ``sst_pathto(document, 2)`` - A URL relative to ``sst_site_root`` will be returned when ``sst_is_root`` is ``False`` and the equivalent of specifying 1 as the second argument when it is ``True``. * ``sst_pathto(document, 3)`` - Do nothing return ``document`` unmodified. """ if relative_to == 0: return context["pathto"](document) elif relative_to == 1: # NOQA: RET505 return context["pathto"](document, 1) elif relative_to == 2: if context.get("theme_sst_is_root", False): return context["pathto"](document, 1) return urljoin(context["theme_sst_site_root"], document) elif relative_to == 3: return document else: msg = "The third element of a link tuple must be 1, 2 or 3" raise ValueError(msg) def update_html_context(app: Sphinx, pagename: str, templatename: str, context, doctree) -> None: # NOQA: ARG001 """ Set extra things to use in jinja templates. """ context["favicon_url"] = context.get("favicon_url", None) or "_static/img/sunpy_icon.svg" context["sst_pathto"] = partial(sst_pathto, context) def setup(app: Sphinx): # Register theme theme_dir = get_html_theme_path() app.add_html_theme("sunpy", theme_dir) app.add_css_file("sunpy_style.css", priority=600) app.connect("builder-inited", update_config) app.connect("html-page-context", update_html_context) # Conditionally include goat counter js # We can't do this in update_config as that causes the scripts to be duplicated. # Also in here none of the theme defaults have be applied by `update_config` # TODO: Improve this mess theme_options = utils.get_theme_options_dict(app) # We want to default to the sunpy goat counter only if the sst_site_root is sunpy.org root_domain = theme_options.get("sst_site_root", "https://sunpy.org") sunpy_goat_url = "https://sunpy.goatcounter.com/count" default_goat_url = sunpy_goat_url if root_domain == "https://sunpy.org" else None if primary_goat_url := theme_options.get("goatcounter_analytics_url", default_goat_url): root_domain = root_domain.removeprefix("https://").removeprefix("http://") default_endpoint = theme_options.get("goatcounter_non_domain_endpoint", False) if default_endpoint is False: default_endpoint = "" app.add_js_file( None, body=f""" var endpoint = '{default_endpoint}'; if (location.hostname.endsWith('{root_domain}')) {{ endpoint = '{primary_goat_url}' }} window.goatcounter = {{ endpoint: endpoint, path: function(p) {{ return location.host + p }} }} """, ) app.add_js_file( "https://gc.zgo.at/count.js", loading_method="async", ) return { "parallel_read_safe": True, "parallel_write_safe": True, } _sunpy_static_path = get_html_theme_path() / "static" ON_RTD = os.environ.get("READTHEDOCS", False) == "True" SVG_ICON = _sunpy_static_path / "img" / "sunpy_icon.svg" PNG_ICON = _sunpy_static_path / "img" / "sunpy_icon_128x128.png" ././@PaxHeader 0000000 0000000 0000000 00000000026 00000000000 010213 x ustar 00 22 mtime=1732787755.0 sunpy_sphinx_theme-2.0.18/src/sunpy_sphinx_theme/cards.py 0000644 0001751 0000177 00000010222 14722037053 023326 0 ustar 00runner docker """ This provides a card extension for the website. """ from docutils import nodes from docutils.parsers.rst import Directive, directives from sphinx.application import Sphinx __all__ = ["Card", "_Card", "visit_card_node", "depart_card_node"] class _Card(nodes.General, nodes.Element): pass def visit_card_node(self, node) -> None: """ Prepare the card node for rendering. """ title = node.get("title", "") key = title or node["github"] key = key.lower().replace(" ", "-") title = f"
{node['name']}
{%- if last_updated %} {% trans last_updated=last_updated|e %}Updated on {{ last_updated }}{% endtrans %} {%- if show_sphinx %} {% trans sphinx_version=sphinx_version|e %}, built with Sphinx {{ sphinx_version }}{% endtrans %} {%- else %} {%- endif %} {%- endif %} {%- if show_sphinx and not last_updated %} {% trans sphinx_version=sphinx_version|e %}Built with Sphinx {{ sphinx_version }}.{% endtrans %} {%- endif %}
././@PaxHeader 0000000 0000000 0000000 00000000026 00000000000 010213 x ustar 00 22 mtime=1732787755.0 sunpy_sphinx_theme-2.0.18/src/sunpy_sphinx_theme/theme/sunpy/components/footer-links.html 0000644 0001751 0000177 00000000470 14722037053 031633 0 ustar 00runner docker ././@PaxHeader 0000000 0000000 0000000 00000000026 00000000000 010213 x ustar 00 22 mtime=1732787755.0 sunpy_sphinx_theme-2.0.18/src/sunpy_sphinx_theme/theme/sunpy/components/navbar-logo.html 0000644 0001751 0000177 00000002510 14722037053 031423 0 ustar 00runner docker {# Logo link generation -#} {% if not theme_logo.get("link") %} {% set href = pathto(root_doc) %} {% elif hasdoc(theme_logo.get("link")) %} {% set href = pathto(theme_logo.get("link")) %} {# internal page #} {% else %} {% set href = theme_logo.get("link") %} {# external url #} {% endif %} {#- Logo HTML and image #} {# get all the brand information from html_theme_option #} {% set is_logo = "light" in theme_logo["image_relative"] %} {% set alt = theme_logo.get("alt_text", "Logo image") %} {% if is_logo %} {# Theme switching is only available when JavaScript is enabled. # Thus we should add the extra image using JavaScript, defaulting # depending on the value of default_mode; and light if unset. #} {% if default_mode is undefined or default_mode == "auto" %} {% set default_mode = "light" %} {% endif %} {% set js_mode = "light" if default_mode == "dark" else "dark" %}{{ theme_logo.get("text") or docstitle }}
././@PaxHeader 0000000 0000000 0000000 00000000026 00000000000 010213 x ustar 00 22 mtime=1732787755.0 sunpy_sphinx_theme-2.0.18/src/sunpy_sphinx_theme/theme/sunpy/components/navbar_center.html 0000644 0001751 0000177 00000003402 14722037053 032026 0 ustar 00runner docker {# When we are rendering the top nav bar (wide screens) we use bootstrap dropdowns, #} {# when we render the sidebar (narrow screens) use collapse instead. #} {# TODO: If you have a section uncollapsed and then expand the width of your screen, weird shit happens #} {% if in_header %} {% set toggle="dropdown" %} {% set list_class="dropdown-menu" %} {% else %} {% set toggle="collapse" %} {% set list_class="collapse" %} {% endif %} ././@PaxHeader 0000000 0000000 0000000 00000000026 00000000000 010213 x ustar 00 22 mtime=1732787755.0 sunpy_sphinx_theme-2.0.18/src/sunpy_sphinx_theme/theme/sunpy/components/navbar_start.html 0000644 0001751 0000177 00000001536 14722037053 031711 0 ustar 00runner docker {% if theme_sst_logo %} {# Theme switching is only available when JavaScript is enabled. # Thus we should add the extra image using JavaScript, defaulting # depending on the value of default_mode; and light if unset. #} {% if default_mode is undefined or default_mode == "auto" %} {% set default_mode = "light" %} {% endif %} {% set js_mode = "light" if default_mode == "dark" else "dark" %}