# -*- coding: utf-8 -*- # # Configuration file for the Sphinx documentation builder. # # This file does only contain a selection of the most common options. For a # full list see the documentation: # http://www.sphinx-doc.org/en/master/config # -- Path setup -------------------------------------------------------------- # If extensions (or modules to document with autodoc) are in another directory, # add these directories to sys.path here. If the directory is relative to the # documentation root, use os.path.abspath to make it absolute, like shown here. # import os import pathlib import shutil import sys sys.path.append(os.path.abspath("./_ext")) from docutils import nodes, utils from docutils.parsers.rst.roles import set_classes # -- Project information ----------------------------------------------------- project = u'VyOS' copyright = u'2026, VyOS maintainers and contributors' author = u'VyOS maintainers and contributors' # The short X.Y version (rolling — next major; bumped at branch cut) version = u'rolling' # The full version, including alpha/beta/rc tags. The `rolling` branch # is the rolling tip and serves at /en/rolling/ on RTD; the literal # below is exposed in the page footer ("v: rolling (current)") and is # interpolated into _templates/llms.txt.j2 ("This documentation covers # {{ release }}."). Pin this to a value that names what the rolling # docs actually serve, not a stale LTS codename. The "(current)" suffix # is release-channel terminology for the current rolling release; it is # unrelated to the former branch name. release = u'rolling (current)' # -- General configuration --------------------------------------------------- # If your documentation needs a minimal Sphinx version, state it here. # # needs_sphinx = '1.0' # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = ['sphinx.ext.intersphinx', 'sphinx.ext.todo', 'sphinx.ext.ifconfig', 'sphinx.ext.graphviz', 'notfound.extension', 'autosectionlabel', 'myst_parser', 'sphinx_design', 'vyos', 'sphinx_llms_txt', 'sphinx_sitemap', ] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # autosectionlabel autosectionlabel_prefix_document = True # The suffix(es) of source filenames. source_suffix = ['.md'] myst_enable_extensions = ["colon_fence", "deflist", "fieldlist", "substitution"] myst_fence_as_directive = ["cfgcmd", "opcmd", "cmdincludemd"] # The master toctree document. master_doc = 'index' # The language for content autogenerated by Sphinx. Refer to documentation # for a list of supported languages. # # This is also used if you do content translation via gettext catalogs. # Usually you set "language" from the command line for these cases. language = "en" # https://docs.readthedocs.io/en/stable/guides/manage-translations-sphinx.html#create-translatable-files locale_dirs = ['_locale/'] gettext_compact = True gettext_uuid = False # List of patterns, relative to source directory, that match files and # directories to ignore when looking for source files. # This pattern also affects html_static_path and html_extra_path . exclude_patterns = [ u'_build', 'Thumbs.db', '.DS_Store', '_include/vyos-1x', '_rst_legacy', ] # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'sphinx' # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True # -- Options for HTML output ------------------------------------------------- # The theme to use for HTML and HTML Help pages. See the documentation for # a list of builtin themes. # html_theme = "sphinx_rtd_theme" # Theme options are theme-specific and customize the look and feel of a theme # further. For a list of options available for each theme, see the # documentation. # # html_theme_options = {} # Add any paths that contain custom static files (such as style sheets) here, # relative to this directory. They are copied after the builtin static files, # so a file named "default.css" will overwrite the builtin "default.css". html_static_path = ['_static'] html_extra_path = ['_html_extra'] html_baseurl = 'https://docs.vyos.io/en/rolling/' _rtd_version_type = os.environ.get('READTHEDOCS_VERSION_TYPE', '') _github_version = ( os.environ.get('READTHEDOCS_GIT_COMMIT_HASH', 'rolling') if _rtd_version_type == 'external' else os.environ.get('READTHEDOCS_GIT_IDENTIFIER', 'rolling') ) html_context = { 'display_github': True, 'github_user': 'vyos', 'github_repo': 'vyos-documentation', 'github_version': _github_version, 'conf_py_path': '/docs/', 'gtm_id': os.environ.get('GTM_ID', ''), 'cookiebot_id': os.environ.get('COOKIEBOT_ID', ''), } # sphinx-sitemap: baseurl already includes /en/rolling/, so skip lang+version sitemap_url_scheme = '{link}' # sphinx-llms-txt: disable the package's auto-generated index llms.txt. # The curated llms.txt is rendered at build time from # _templates/llms.txt.j2 by the _write_llms_txt() build-finished hook # below; llms-full.txt is still auto-generated by sphinx-llms-txt. llms_txt_file = False # 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 = {} # The name of an image file (relative to this directory) to place at the top # of the sidebar. html_logo = '_static/images/vyos-logo.webp' # The name of an image file (within the static path) to use as favicon of the # docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 # pixels large. html_favicon = '_static/images/vyos-logo-icon.png' # The "title" for HTML documentation generated with Sphinx's own templates. # This is appended to the `