blob: ff54dd2cc490ffe64a4abcc6140fcc71bd637c09 [file] [log] [blame]
Gerard Marull-Paretas2b9b1632021-03-30 12:10:31 +02001# Zephyr documentation build configuration file.
2# Reference: https://www.sphinx-doc.org/en/master/usage/configuration.html
Anas Nashif06d380c2015-05-13 14:05:30 -04003
4import sys
5import os
Gerard Marull-Paretas4b09faf2021-03-30 14:38:59 +02006from pathlib import Path
Gerard Marull-Paretas7abf8382021-03-30 14:31:52 +02007import re
Benjamin Cabé472def92023-10-19 18:46:47 +02008import textwrap
Anas Nashif06d380c2015-05-13 14:05:30 -04009
Gerard Marull-Paretas1829dc82021-07-20 14:25:27 +020010from sphinx.cmd.build import get_parser
Gerard Marull-Paretas0312b0b2021-03-30 12:22:20 +020011
Gerard Marull-Paretas1829dc82021-07-20 14:25:27 +020012args = get_parser().parse_args()
13ZEPHYR_BASE = Path(__file__).resolve().parents[1]
14ZEPHYR_BUILD = Path(args.outputdir).resolve()
Marti Bolivar1c852dd2018-06-07 21:45:55 -040015
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +020016# Add the '_extensions' directory to sys.path, to enable finding Sphinx
Marti Bolivar6092fb02017-11-03 16:46:33 -040017# extensions within.
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +020018sys.path.insert(0, str(ZEPHYR_BASE / "doc" / "_extensions"))
Carles Cufi8d5259a2018-11-12 16:14:51 +010019
Gerard Marull-Paretasb2469e12021-03-30 10:55:43 +020020# Add the '_scripts' directory to sys.path, to enable finding utility
21# modules.
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +020022sys.path.insert(0, str(ZEPHYR_BASE / "doc" / "_scripts"))
Gerard Marull-Paretasb2469e12021-03-30 10:55:43 +020023
Marti Bolivarab822642019-01-23 08:31:06 -070024# Add the directory which contains the runners package as well,
25# for autodoc directives on runners.xyz.
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +020026sys.path.insert(0, str(ZEPHYR_BASE / "scripts" / "west_commands"))
Marti Bolivarab822642019-01-23 08:31:06 -070027
Piotr Golyzniak5a3b9792023-11-22 19:57:10 +010028# Add the directory which contains the pytest-twister-pytest
29sys.path.insert(0, str(ZEPHYR_BASE / "scripts" / "pylib" / "pytest-twister-harness" / "src"))
30
Gerard Marull-Paretasb2469e12021-03-30 10:55:43 +020031import redirects
32
Carles Cufi8d5259a2018-11-12 16:14:51 +010033try:
Marti Bolivar2b3d9df2019-07-22 11:00:59 -060034 import west as west_found
35except ImportError:
36 west_found = False
Anas Nashif06d380c2015-05-13 14:05:30 -040037
Gerard Marull-Paretas603e8752021-03-30 13:09:11 +020038# -- Project --------------------------------------------------------------
Anas Nashif06d380c2015-05-13 14:05:30 -040039
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +020040project = "Zephyr Project"
Henrik Brix Andersene2788522024-01-05 13:37:19 +010041copyright = "2015-2024 Zephyr Project members and individual contributors"
Gerard Marull-Paretas2f5a9d02021-07-22 16:14:51 +020042author = "The Zephyr Project Contributors"
Anas Nashif06d380c2015-05-13 14:05:30 -040043
Gerard Marull-Paretas7abf8382021-03-30 14:31:52 +020044# parse version from 'VERSION' file
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +020045with open(ZEPHYR_BASE / "VERSION") as f:
Gerard Marull-Paretas7abf8382021-03-30 14:31:52 +020046 m = re.match(
47 (
48 r"^VERSION_MAJOR\s*=\s*(\d+)$\n"
49 + r"^VERSION_MINOR\s*=\s*(\d+)$\n"
50 + r"^PATCHLEVEL\s*=\s*(\d+)$\n"
51 + r"^VERSION_TWEAK\s*=\s*\d+$\n"
52 + r"^EXTRAVERSION\s*=\s*(.*)$"
53 ),
54 f.read(),
55 re.MULTILINE,
56 )
57
58 if not m:
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +020059 sys.stderr.write("Warning: Could not extract kernel version\n")
Gerard Marull-Paretas7abf8382021-03-30 14:31:52 +020060 version = "Unknown"
61 else:
62 major, minor, patch, extra = m.groups(1)
63 version = ".".join((major, minor, patch))
64 if extra:
65 version += "-" + extra
Anas Nashif06d380c2015-05-13 14:05:30 -040066
Gerard Marull-Paretas2f5a9d02021-07-22 16:14:51 +020067release = version
68
Fabio Baltieri24cf2f62024-01-15 18:04:47 +000069# parse SDK version from 'SDK_VERSION' file
70with open(ZEPHYR_BASE / "SDK_VERSION") as f:
71 sdk_version = f.read().strip()
72
Gerard Marull-Paretas603e8752021-03-30 13:09:11 +020073# -- General configuration ------------------------------------------------
74
75extensions = [
Benjamin Cabé69fcc522023-08-09 17:52:13 +020076 "breathe",
Benjamin Cabéaa1ca172023-12-04 15:54:13 +010077 "sphinx_rtd_theme",
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +020078 "sphinx.ext.todo",
79 "sphinx.ext.extlinks",
80 "sphinx.ext.autodoc",
Gerard Marull-Paretas41271382021-07-20 16:12:23 +020081 "sphinx.ext.graphviz",
Gerard Marull-Paretas7c418a02023-07-12 20:47:14 +020082 "sphinxcontrib.jquery",
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +020083 "zephyr.application",
84 "zephyr.html_redirects",
Gerard Marull-Paretasfc942ef2022-01-12 13:41:15 +010085 "zephyr.kconfig",
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +020086 "zephyr.dtcompatible-role",
87 "zephyr.link-roles",
88 "sphinx_tabs.tabs",
Benjamin Cabé8f17c832024-02-26 11:59:57 +010089 "sphinx_sitemap",
Gerard Marull-Paretas96c7d102021-04-06 00:02:03 +020090 "zephyr.warnings_filter",
Gerard Marull-Paretas457f3a42021-04-16 10:47:43 +020091 "zephyr.doxyrunner",
Benjamin Cabé353f42d2023-10-25 12:12:02 +020092 "zephyr.gh_utils",
Anas Nashifdd7532d2023-08-31 12:59:14 +000093 "zephyr.manifest_projects_table",
Gerard Marull-Paretas95d8d2c2021-05-19 16:04:20 +020094 "notfound.extension",
Gerard Marull-Paretase9d2cea2022-03-25 13:29:37 +010095 "sphinx_copybutton",
Benjamin Cabéb2977b72023-08-30 09:26:48 +020096 "sphinx_togglebutton",
Gerard Marull-Paretas4dd15532021-05-10 19:11:14 +020097 "zephyr.external_content",
Benjamin Cabé3c5f3da2023-08-30 08:46:55 +020098 "zephyr.domain",
Ederson de Souza9ab243d2023-08-25 13:58:52 -070099 "zephyr.api_overview",
Gerard Marull-Paretas603e8752021-03-30 13:09:11 +0200100]
101
102# Only use SVG converter when it is really needed, e.g. LaTeX.
103if tags.has("svgconvert"): # pylint: disable=undefined-variable
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200104 extensions.append("sphinxcontrib.rsvgconverter")
Gerard Marull-Paretas603e8752021-03-30 13:09:11 +0200105
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200106templates_path = ["_templates"]
Gerard Marull-Paretas603e8752021-03-30 13:09:11 +0200107
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200108exclude_patterns = ["_build"]
Anas Nashif06d380c2015-05-13 14:05:30 -0400109
Carles Cufi8d5259a2018-11-12 16:14:51 +0100110if not west_found:
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200111 exclude_patterns.append("**/*west-apis*")
Carles Cufi8d5259a2018-11-12 16:14:51 +0100112else:
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200113 exclude_patterns.append("**/*west-not-found*")
Anas Nashif06d380c2015-05-13 14:05:30 -0400114
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200115pygments_style = "sphinx"
Benjamin Cabéf2b080b2023-10-20 18:46:25 +0200116highlight_language = "none"
Anas Nashif06d380c2015-05-13 14:05:30 -0400117
Carol Lee1aa77332015-08-07 13:22:27 -0400118todo_include_todos = False
Anas Nashif089a10b2015-06-12 10:51:09 -0700119
Gerard Marull-Paretas038ce402022-02-02 11:14:26 +0100120nitpick_ignore = [
121 # ignore C standard identifiers (they are not defined in Zephyr docs)
122 ("c:identifier", "FILE"),
123 ("c:identifier", "int8_t"),
124 ("c:identifier", "int16_t"),
125 ("c:identifier", "int32_t"),
126 ("c:identifier", "int64_t"),
127 ("c:identifier", "intptr_t"),
128 ("c:identifier", "off_t"),
129 ("c:identifier", "size_t"),
130 ("c:identifier", "ssize_t"),
131 ("c:identifier", "time_t"),
132 ("c:identifier", "uint8_t"),
133 ("c:identifier", "uint16_t"),
134 ("c:identifier", "uint32_t"),
135 ("c:identifier", "uint64_t"),
136 ("c:identifier", "uintptr_t"),
137 ("c:identifier", "va_list"),
138]
139
Fabio Baltieri24cf2f62024-01-15 18:04:47 +0000140SDK_URL_BASE="https://github.com/zephyrproject-rtos/sdk-ng/releases/download"
141
142rst_epilog = f"""
David B. Kinder486c5a52018-05-04 16:31:05 -0700143.. include:: /substitutions.txt
Fabio Baltieri24cf2f62024-01-15 18:04:47 +0000144
145.. |sdk-version-literal| replace:: ``{sdk_version}``
146.. |sdk-version-trim| unicode:: {sdk_version}
147 :trim:
148.. |sdk-version-ltrim| unicode:: {sdk_version}
149 :ltrim:
150.. _Zephyr SDK bundle: https://github.com/zephyrproject-rtos/sdk-ng/releases/tag/v{sdk_version}
151.. |sdk-url-linux| replace:: `{SDK_URL_BASE}/v{sdk_version}/zephyr-sdk-{sdk_version}_linux-x86_64.tar.xz`
152.. |sdk-url-linux-sha| replace:: `{SDK_URL_BASE}/v{sdk_version}/sha256.sum`
153.. |sdk-url-macos| replace:: `{SDK_URL_BASE}/v{sdk_version}/zephyr-sdk-{sdk_version}_macos-x86_64.tar.xz`
154.. |sdk-url-macos-sha| replace:: `{SDK_URL_BASE}/v{sdk_version}/sha256.sum`
155.. |sdk-url-windows| replace:: `{SDK_URL_BASE}/v{sdk_version}/zephyr-sdk-{sdk_version}_windows-x86_64.7z`
Anas Nashif089a10b2015-06-12 10:51:09 -0700156"""
Anas Nashif06d380c2015-05-13 14:05:30 -0400157
Anas Nashif06d380c2015-05-13 14:05:30 -0400158# -- Options for HTML output ----------------------------------------------
159
David B. Kinder5c8398d2018-08-03 16:12:03 -0700160html_theme = "sphinx_rtd_theme"
Gerard Marull-Paretasf0d3db22021-05-17 19:22:17 +0200161html_theme_options = {
162 "logo_only": True,
163 "prev_next_buttons_location": None
164}
Benjamin Cabéd1ec6f72023-02-13 14:47:56 +0100165html_baseurl = "https://docs.zephyrproject.org/latest/"
Anas Nashif12867502015-06-29 15:33:28 -0400166html_title = "Zephyr Project Documentation"
Gerard Marull-Paretas2d06ad72021-05-19 12:25:16 +0200167html_logo = str(ZEPHYR_BASE / "doc" / "_static" / "images" / "logo.svg")
Gerard Marull-Paretas1cecfe72021-06-30 15:03:11 +0200168html_favicon = str(ZEPHYR_BASE / "doc" / "_static" / "images" / "favicon.png")
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200169html_static_path = [str(ZEPHYR_BASE / "doc" / "_static")]
170html_last_updated_fmt = "%b %d, %Y"
Carol Lee1aa77332015-08-07 13:22:27 -0400171html_domain_indices = False
Carol Lee1aa77332015-08-07 13:22:27 -0400172html_split_index = True
David B. Kinderf3f266e2018-07-31 13:47:10 -0700173html_show_sourcelink = False
Rodrigo Caballero8d7b52f2015-10-16 09:30:15 -0500174html_show_sphinx = False
Gerard Marull-Paretas2d06ad72021-05-19 12:25:16 +0200175html_search_scorer = str(ZEPHYR_BASE / "doc" / "_static" / "js" / "scorer.js")
Benjamin Cabé7e253ff2023-11-07 11:32:08 +0100176html_additional_pages = {
177 "gsearch": "gsearch.html"
178}
Anas Nashif06d380c2015-05-13 14:05:30 -0400179
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200180is_release = tags.has("release") # pylint: disable=undefined-variable
Gerard Marull-Paretasb4f968c2021-10-28 18:57:20 +0200181reference_prefix = ""
182if tags.has("publish"): # pylint: disable=undefined-variable
183 reference_prefix = f"/{version}" if is_release else "/latest"
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200184docs_title = "Docs / {}".format(version if is_release else "Latest")
Rodrigo Caballero8d7b52f2015-10-16 09:30:15 -0500185html_context = {
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200186 "show_license": True,
187 "docs_title": docs_title,
188 "is_release": is_release,
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200189 "current_version": version,
190 "versions": (
191 ("latest", "/"),
Maureen Helm7c7b5fb2024-02-23 11:29:16 -0600192 ("3.6.0", "/3.6.0/"),
Johan Hedberg0d907c72023-10-20 09:42:16 +0300193 ("3.5.0", "/3.5.0/"),
Christopher Friedtb14f7d02024-03-01 18:10:23 -0500194 ("2.7.6 (LTS)", "/2.7.6/"),
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200195 ),
Benjamin Cabé353f42d2023-10-25 12:12:02 +0200196 "display_gh_links": True,
Gerard Marull-Paretasb4f968c2021-10-28 18:57:20 +0200197 "reference_links": {
198 "API": f"{reference_prefix}/doxygen/html/index.html",
Gerard Marull-Paretasfc942ef2022-01-12 13:41:15 +0100199 "Kconfig Options": f"{reference_prefix}/kconfig.html",
Anas Nashif6e9a43b2022-04-05 10:17:26 -0400200 "Devicetree Bindings": f"{reference_prefix}/build/dts/api/bindings.html",
Anas Nashifebc8fda2023-10-02 11:48:32 +0000201 "West Projects": f"{reference_prefix}/develop/manifest/index.html",
Benjamin Cabé7688f482023-07-04 17:20:09 +0200202 },
203 # Set google_searchengine_id to your Search Engine ID to replace built-in search
204 # engine with Google's Programmable Search Engine.
205 # See https://programmablesearchengine.google.com/ for details.
206 "google_searchengine_id": "746031aa0d56d4912",
Rodrigo Caballero8d7b52f2015-10-16 09:30:15 -0500207}
Anas Nashifb7b23182017-01-03 14:43:02 -0500208
Gerard Marull-Paretas603e8752021-03-30 13:09:11 +0200209# -- Options for LaTeX output ---------------------------------------------
210
211latex_elements = {
Gerard Marull-Paretas2f5a9d02021-07-22 16:14:51 +0200212 "papersize": "a4paper",
213 "maketitle": open(ZEPHYR_BASE / "doc" / "_static" / "latex" / "title.tex").read(),
214 "preamble": open(ZEPHYR_BASE / "doc" / "_static" / "latex" / "preamble.tex").read(),
Benjamin Cabéabc33402023-11-06 12:39:57 +0100215 "makeindex": r"\usepackage[columns=1]{idxlayout}\makeindex",
Benjamin Cabé472def92023-10-19 18:46:47 +0200216 "fontpkg": textwrap.dedent(r"""
217 \usepackage{noto}
218 \usepackage{inconsolata-nerd-font}
219 \usepackage[T1]{fontenc}
220 """),
Gerard Marull-Paretas2f5a9d02021-07-22 16:14:51 +0200221 "sphinxsetup": ",".join(
222 (
223 # NOTE: colors match those found in light.css stylesheet
224 "verbatimwithframe=false",
225 "VerbatimColor={HTML}{f0f2f4}",
226 "InnerLinkColor={HTML}{2980b9}",
227 "warningBgColor={HTML}{e9a499}",
228 "warningborder=0pt",
229 r"HeaderFamily=\rmfamily\bfseries",
230 )
231 ),
Gerard Marull-Paretas603e8752021-03-30 13:09:11 +0200232}
Gerard Marull-Paretas2f5a9d02021-07-22 16:14:51 +0200233latex_logo = str(ZEPHYR_BASE / "doc" / "_static" / "images" / "logo-latex.pdf")
Gerard Marull-Paretas603e8752021-03-30 13:09:11 +0200234latex_documents = [
Gerard Marull-Paretas2f5a9d02021-07-22 16:14:51 +0200235 ("index-tex", "zephyr.tex", "Zephyr Project Documentation", author, "manual"),
Gerard Marull-Paretas603e8752021-03-30 13:09:11 +0200236]
Benjamin Cabé201b6662023-10-19 18:42:53 +0200237latex_engine = "xelatex"
Gerard Marull-Paretas603e8752021-03-30 13:09:11 +0200238
Gerard Marull-Paretas457f3a42021-04-16 10:47:43 +0200239# -- Options for zephyr.doxyrunner plugin ---------------------------------
240
241doxyrunner_doxygen = os.environ.get("DOXYGEN_EXECUTABLE", "doxygen")
242doxyrunner_doxyfile = ZEPHYR_BASE / "doc" / "zephyr.doxyfile.in"
243doxyrunner_outdir = ZEPHYR_BUILD / "doxygen"
244doxyrunner_fmt = True
Gerard Marull-Paretasa42ee8b2021-10-03 19:32:42 +0200245doxyrunner_fmt_vars = {"ZEPHYR_BASE": str(ZEPHYR_BASE), "ZEPHYR_VERSION": version}
Gerard Marull-Paretasab64a672022-01-10 12:35:31 +0100246doxyrunner_outdir_var = "DOXY_OUT"
Gerard Marull-Paretas457f3a42021-04-16 10:47:43 +0200247
Benjamin Cabé69fcc522023-08-09 17:52:13 +0200248# -- Options for Breathe plugin -------------------------------------------
Gerard Marull-Paretas603e8752021-03-30 13:09:11 +0200249
Benjamin Cabé69fcc522023-08-09 17:52:13 +0200250breathe_projects = {"Zephyr": str(doxyrunner_outdir / "xml")}
251breathe_default_project = "Zephyr"
252breathe_domain_by_extension = {
Gerard Marull-Paretas603e8752021-03-30 13:09:11 +0200253 "h": "c",
254 "c": "c",
255}
Benjamin Cabé69fcc522023-08-09 17:52:13 +0200256breathe_show_enumvalue_initializer = True
257breathe_default_members = ("members", )
Gerard Marull-Paretas603e8752021-03-30 13:09:11 +0200258
259cpp_id_attributes = [
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200260 "__syscall",
Carlo Caionede90dfc2023-04-20 17:04:55 +0200261 "__syscall_always_inline",
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200262 "__deprecated",
263 "__may_alias",
264 "__used",
265 "__unused",
266 "__weak",
Nicolas Pitre0dc7b9e2021-04-09 00:40:41 -0400267 "__attribute_const__",
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200268 "__DEPRECATED_MACRO",
269 "FUNC_NORETURN",
270 "__subsystem",
Christopher Friedtf2d675b2022-02-01 15:30:19 -0500271 "ALWAYS_INLINE",
Gerard Marull-Paretas603e8752021-03-30 13:09:11 +0200272]
273c_id_attributes = cpp_id_attributes
274
275# -- Options for html_redirect plugin -------------------------------------
276
277html_redirect_pages = redirects.REDIRECTS
278
Gerard Marull-Paretas96c7d102021-04-06 00:02:03 +0200279# -- Options for zephyr.warnings_filter -----------------------------------
280
281warnings_filter_config = str(ZEPHYR_BASE / "doc" / "known-warnings.txt")
Gerard Marull-Paretas96c7d102021-04-06 00:02:03 +0200282
Gaute Svanes Lunde6acdb1b2022-10-12 15:29:10 +0200283# -- Options for zephyr.link-roles ----------------------------------------
284
285link_roles_manifest_project = "zephyr"
286link_roles_manifest_baseurl = "https://github.com/zephyrproject-rtos/zephyr"
287
Gerard Marull-Paretas95d8d2c2021-05-19 16:04:20 +0200288# -- Options for notfound.extension ---------------------------------------
289
Gerard Marull-Paretas45cce732021-06-22 11:16:25 +0200290notfound_urls_prefix = f"/{version}/" if is_release else "/latest/"
Gerard Marull-Paretas95d8d2c2021-05-19 16:04:20 +0200291
Benjamin Cabé353f42d2023-10-25 12:12:02 +0200292# -- Options for zephyr.gh_utils ------------------------------------------
Gerard Marull-Paretasfe7529f2021-06-28 20:08:13 +0200293
Benjamin Cabé353f42d2023-10-25 12:12:02 +0200294gh_link_version = f"v{version}" if is_release else "main"
295gh_link_base_url = f"https://github.com/zephyrproject-rtos/zephyr"
296gh_link_prefixes = {
Gerard Marull-Paretasfe7529f2021-06-28 20:08:13 +0200297 "samples/.*": "",
298 "boards/.*": "",
Marti Bolivaree4b1342023-01-09 15:46:59 -0800299 "snippets/.*": "",
Gerard Marull-Paretasfe7529f2021-06-28 20:08:13 +0200300 ".*": "doc",
301}
Benjamin Cabé353f42d2023-10-25 12:12:02 +0200302gh_link_exclude = [
Gerard Marull-Paretasfe7529f2021-06-28 20:08:13 +0200303 "reference/kconfig.*",
Anas Nashif6e9a43b2022-04-05 10:17:26 -0400304 "build/dts/api/bindings.*",
305 "build/dts/api/compatibles.*",
Gerard Marull-Paretasfe7529f2021-06-28 20:08:13 +0200306]
307
Gerard Marull-Paretasfc942ef2022-01-12 13:41:15 +0100308# -- Options for zephyr.kconfig -------------------------------------------
309
310kconfig_generate_db = True
311kconfig_ext_paths = [ZEPHYR_BASE]
312
Gerard Marull-Paretas4dd15532021-05-10 19:11:14 +0200313# -- Options for zephyr.external_content ----------------------------------
314
315external_content_contents = [
316 (ZEPHYR_BASE / "doc", "[!_]*"),
317 (ZEPHYR_BASE, "boards/**/*.rst"),
318 (ZEPHYR_BASE, "boards/**/doc"),
Andrei Emeltchenko0aaa5a92023-09-08 13:01:57 +0300319 (ZEPHYR_BASE, "samples/**/*.html"),
Gerard Marull-Paretas4dd15532021-05-10 19:11:14 +0200320 (ZEPHYR_BASE, "samples/**/*.rst"),
321 (ZEPHYR_BASE, "samples/**/doc"),
Marti Bolivaree4b1342023-01-09 15:46:59 -0800322 (ZEPHYR_BASE, "snippets/**/*.rst"),
323 (ZEPHYR_BASE, "snippets/**/doc"),
Gerard Marull-Paretas4dd15532021-05-10 19:11:14 +0200324]
325external_content_keep = [
326 "reference/kconfig/*",
Anas Nashifdd7532d2023-08-31 12:59:14 +0000327 "develop/manifest/index.rst",
Anas Nashif6e9a43b2022-04-05 10:17:26 -0400328 "build/dts/api/bindings.rst",
329 "build/dts/api/bindings/**/*",
330 "build/dts/api/compatibles/**/*",
Gerard Marull-Paretas4dd15532021-05-10 19:11:14 +0200331]
332
Gerard Marull-Paretas9e5e8e82024-01-09 15:34:14 +0100333# -- Options for zephyr.domain --------------------------------------------
334
335zephyr_breathe_insert_related_samples = True
336
Gerard Marull-Paretas41271382021-07-20 16:12:23 +0200337# -- Options for sphinx.ext.graphviz --------------------------------------
338
339graphviz_dot = os.environ.get("DOT_EXECUTABLE", "dot")
340graphviz_output_format = "svg"
341graphviz_dot_args = [
342 "-Gbgcolor=transparent",
343 "-Nstyle=filled",
344 "-Nfillcolor=white",
345 "-Ncolor=gray60",
346 "-Nfontcolor=gray25",
347 "-Ecolor=gray60",
348]
349
Benjamin Cabéb3a52f42023-10-17 22:38:31 -0400350# -- Options for sphinx_copybutton ----------------------------------------
351
352copybutton_prompt_text = r"\$ |uart:~\$ "
353copybutton_prompt_is_regexp = True
354
Benjamin Cabé8f17c832024-02-26 11:59:57 +0100355# -- Options for sphinx-sitemap ----------------------------------------
356
357sitemap_url_scheme = "{link}"
358
Gerard Marull-Paretas603e8752021-03-30 13:09:11 +0200359# -- Linkcheck options ----------------------------------------------------
Anas Nashif38a77792019-01-20 08:56:48 -0500360
Benjamin Cabéd3487c42023-10-18 08:23:55 -0400361linkcheck_ignore = [
362 r"https://github.com/zephyrproject-rtos/zephyr/issues/.*"
363]
364
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200365extlinks = {
Gerard Marull-Paretas2a93e8c2022-08-11 18:01:47 +0200366 "github": ("https://github.com/zephyrproject-rtos/zephyr/issues/%s", "GitHub #%s"),
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200367}
David B. Kinder2a1adfc2017-04-27 14:59:04 -0700368
369linkcheck_timeout = 30
370linkcheck_workers = 10
David B. Kinder2a1adfc2017-04-27 14:59:04 -0700371linkcheck_anchors = False
372
Ederson de Souza9ab243d2023-08-25 13:58:52 -0700373# -- Options for zephyr.api_overview --------------------------------------
374
375api_overview_doxygen_base_url = "../../doxygen/html"
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200376
David B. Kinder6bd5dff2017-01-27 16:20:21 -0800377def setup(app):
Gerard Marull-Paretasa6d8c232021-03-12 14:33:16 +0100378 # theme customizations
379 app.add_css_file("css/custom.css")
Benjamin Cabé29b19bc2023-12-05 15:17:47 +0100380 app.add_js_file("js/custom.js")
Gerard Marull-Paretasa6d8c232021-03-12 14:33:16 +0100381 app.add_js_file("js/dark-mode-toggle.min.mjs", type="module")