.. _ref_user_guide_html_theme: HTML theme options ================== In the Sphinx configuration (``conf.py``) file in the ``doc`` directory, you can use the ``html_theme_options`` dictionary to customize the Ansys Sphinx theme. Show breadcrumbs ---------------- Showing breadcrumbs at the top of your documentation pages makes navigation easier. Breadcrumbs are shown by setting ``"show_breadcrumbs": True``. To add additional *root* breadcrumbs, ``"additional_breadcrumbs"`` is set to a list of tuples in this form: ``("Link text", "url")``. This ``html_theme_options`` dictionary show breadcrumbs, including a root breadcrumb for the documentation landing page for the Ansys repository: .. code:: python html_theme_options = { "github_url": "https://github.com/ansys/ansys-sphinx-theme", "show_prev_next": False, "show_breadcrumbs": True, "additional_breadcrumbs": [ ("PyAnsys", "https://docs.pyansys.com/"), ], } When you are on the landing page for your documentation, the breadcrumb shows the title for this page. However, Sphinx cannot access this title from other documentation pages. Thus, after ``html_theme_options`` dictionary, you must set ``html_short_title`` to the display text to use for this breadcrumb. To ensure a consistent user experience, always set the ``html_short_title`` (or optionally ``html_title`` if ``html_short_title`` is not used) to the library name. For example, in the ``conf.py`` file for the Ansys Sphinx Theme, this line is added after the ``html_theme_options`` dictionary: .. code:: python html_short_title = html_title = "Ansys Sphinx Theme" If you want the title for your documentation's main ``index.rst`` file to show the version, include ``|version|`` in the title: .. code:: python html_short_title = html_title = "Ansys Sphinx Theme |version|" Add and hide icons in the navigation bar ---------------------------------------- The navigation bar shows two icons on the right by default. The first is for switching between light and dark modes. The second is for going to the library's GitHub repository. - For comprehensive information on adding custom link behavior, see `Add custom attributes to icon links `_ in the PyData Theme documentation. - For comprehensive information on how to use Font Awesome to add icons, see `How To Add Icons `_ in the Font Awesome documentation. The following sections explain how to add icons and hide icons. Add icons ~~~~~~~~~ In the ``conf.py`` file, the ``html_theme_options`` dictionary has a child ``icon_links`` dictionary. To add icons to the navigation bar, add them to the ``icon_links`` dictionary. For each icon to add, specify its ``name``, the associated ``url``, the ``icon``, and the ``type``. This example adds an icon for sending an email: .. code-block:: pycon html_theme_options = { "icon_links": [ dict(name="Mail", url="mailto:me", icon="fas fa-envelope") ], ... } Hide icons ~~~~~~~~~~ To hide icons so that they do not show in the navigation bar, add their names to the ``hidden_icons`` dictionary: .. code-block:: pycon html_theme_options = { "hidden_icons": ["GitHub"], ... } If you want to hide all icons, use the ``show_icons`` Boolean variable: .. code-block:: pycon html_theme_options = { "show_icons": False, ... } Static search options ---------------------- The Ansys Sphinx theme supports static search options to customize the search experience. The static search bar is created using ``Fuse.js``. You can provide all options supported by ``Fuse.js`` through the ``static_search`` dictionary in the ``html_theme_options``. Additional options include: 1. ``keys``: List of keys to search in the documents. Default are ``["title", "text"]``. 2. ``threshold``: The minimum score a search result must have to be included in the results. Default is ``0.5``. 3. ``ignoreLocation``: Whether to ignore the location of the search term in the document. Default is ``False``. Ignoring the location can increase the search speed for large documents. 4. ``limit``: The maximum number of search results to display. Default is ``10``. 5. ``min_chars_for_search``: The minimum number of characters required to start the search. Default is ``1``. .. note:: All other options are available in the `Fuse.js documentation `_. Here is an example of how to add the ``static_search`` dictionary to the ``html_theme_options`` dictionary: .. code-block:: python html_theme_options = { "static_search": { "threshold": 0.5, "limit": 10, "min_chars_for_search": 1, }, } .. note:: Serve locally your documentation using the ``python -m http.server -d /path/to/docs/html/`` to have a live-preview of your search results. This method is compliant with the `CORS policy `_ and allows to load the generated resource files containing the indices of your documentation. The search bar does not work if you open the HTML files directly in the browser. To open the documentation in a local server, run the following command in the directory where the HTML files are located: .. code-block:: bash python -m http.server Then, open the browser and go to ``http://localhost:8000``. Cheat sheets ------------ If a cheat sheet has been created for your PyAnsys library, with ``quarto``, you can add it to the left navigation pane of your documentation. In the ``html_theme_options`` dictionary, you add a child dictionary named ``cheatsheet`` that contain these keys, in the order given: #. ``file``: File name including the extension of the cheat sheet. If the file is inside a directory, include the directory name relative to the root of the documentation. For example, if the cheat sheet is in the ``getting_started`` directory, the file name is ``getting_started/cheat_sheet.qmd``. #. ``title``: Title of the cheat sheet to be displayed in the left navigation pane. #. ``pages``: List of names for the pages to include the cheat sheet on. If no value is provided, the cheat sheet is displayed only on the main ``index.html`` file. #. ``version``: Version of the cheat sheet. If no value is provided, the version is ``main`` by default. Here is an example of how to add the ``cheatsheet`` dictionary to the `html_theme_options`` dictionary: .. code-block:: python html_theme_options = ( { "cheatsheet": { "file": "", "version": "", "pages": "", # Optional }, }, ) Here is an example of how to show a thumbnail of a PyMAPDL cheat sheet in the left navigation pane of its main ``index.rst`` file and the ``learning.rst`` file in its "Getting started" section: .. code-block:: python html_theme_options = ( { "cheatsheet": { "file": "getting_started/cheat_sheet.qmd", "version": f"{version}", "pages": ["index", "getting_started/learning"], }, }, ) .. note:: To use this feature, you must have the `quarto ` package installed. To create thumbnails of generated PDF files, the theme is using `pdf2image`. So you should have the ``poppler`` package installed in your system. For more information, see the `pdf2image documentation `_.