blob: c9b8453a28b2b15ef2a9405cf77f6c12a2d750a9 [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",
Gerard Marull-Paretas96c7d102021-04-06 00:02:03 +020089 "zephyr.warnings_filter",
Gerard Marull-Paretas457f3a42021-04-16 10:47:43 +020090 "zephyr.doxyrunner",
Benjamin Cabé353f42d2023-10-25 12:12:02 +020091 "zephyr.gh_utils",
Anas Nashifdd7532d2023-08-31 12:59:14 +000092 "zephyr.manifest_projects_table",
Gerard Marull-Paretas95d8d2c2021-05-19 16:04:20 +020093 "notfound.extension",
Gerard Marull-Paretase9d2cea2022-03-25 13:29:37 +010094 "sphinx_copybutton",
Benjamin Cabéb2977b72023-08-30 09:26:48 +020095 "sphinx_togglebutton",
Gerard Marull-Paretas4dd15532021-05-10 19:11:14 +020096 "zephyr.external_content",
Benjamin Cabé3c5f3da2023-08-30 08:46:55 +020097 "zephyr.domain",
Gerard Marull-Paretas603e8752021-03-30 13:09:11 +020098]
99
100# Only use SVG converter when it is really needed, e.g. LaTeX.
101if tags.has("svgconvert"): # pylint: disable=undefined-variable
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200102 extensions.append("sphinxcontrib.rsvgconverter")
Gerard Marull-Paretas603e8752021-03-30 13:09:11 +0200103
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200104templates_path = ["_templates"]
Gerard Marull-Paretas603e8752021-03-30 13:09:11 +0200105
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200106exclude_patterns = ["_build"]
Anas Nashif06d380c2015-05-13 14:05:30 -0400107
Carles Cufi8d5259a2018-11-12 16:14:51 +0100108if not west_found:
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200109 exclude_patterns.append("**/*west-apis*")
Carles Cufi8d5259a2018-11-12 16:14:51 +0100110else:
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200111 exclude_patterns.append("**/*west-not-found*")
Anas Nashif06d380c2015-05-13 14:05:30 -0400112
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200113pygments_style = "sphinx"
Benjamin Cabéf2b080b2023-10-20 18:46:25 +0200114highlight_language = "none"
Anas Nashif06d380c2015-05-13 14:05:30 -0400115
Carol Lee1aa77332015-08-07 13:22:27 -0400116todo_include_todos = False
Anas Nashif089a10b2015-06-12 10:51:09 -0700117
Gerard Marull-Paretas038ce402022-02-02 11:14:26 +0100118nitpick_ignore = [
119 # ignore C standard identifiers (they are not defined in Zephyr docs)
120 ("c:identifier", "FILE"),
121 ("c:identifier", "int8_t"),
122 ("c:identifier", "int16_t"),
123 ("c:identifier", "int32_t"),
124 ("c:identifier", "int64_t"),
125 ("c:identifier", "intptr_t"),
126 ("c:identifier", "off_t"),
127 ("c:identifier", "size_t"),
128 ("c:identifier", "ssize_t"),
129 ("c:identifier", "time_t"),
130 ("c:identifier", "uint8_t"),
131 ("c:identifier", "uint16_t"),
132 ("c:identifier", "uint32_t"),
133 ("c:identifier", "uint64_t"),
134 ("c:identifier", "uintptr_t"),
135 ("c:identifier", "va_list"),
136]
137
Fabio Baltieri24cf2f62024-01-15 18:04:47 +0000138SDK_URL_BASE="https://github.com/zephyrproject-rtos/sdk-ng/releases/download"
139
140rst_epilog = f"""
David B. Kinder486c5a52018-05-04 16:31:05 -0700141.. include:: /substitutions.txt
Fabio Baltieri24cf2f62024-01-15 18:04:47 +0000142
143.. |sdk-version-literal| replace:: ``{sdk_version}``
144.. |sdk-version-trim| unicode:: {sdk_version}
145 :trim:
146.. |sdk-version-ltrim| unicode:: {sdk_version}
147 :ltrim:
148.. _Zephyr SDK bundle: https://github.com/zephyrproject-rtos/sdk-ng/releases/tag/v{sdk_version}
149.. |sdk-url-linux| replace:: `{SDK_URL_BASE}/v{sdk_version}/zephyr-sdk-{sdk_version}_linux-x86_64.tar.xz`
150.. |sdk-url-linux-sha| replace:: `{SDK_URL_BASE}/v{sdk_version}/sha256.sum`
151.. |sdk-url-macos| replace:: `{SDK_URL_BASE}/v{sdk_version}/zephyr-sdk-{sdk_version}_macos-x86_64.tar.xz`
152.. |sdk-url-macos-sha| replace:: `{SDK_URL_BASE}/v{sdk_version}/sha256.sum`
153.. |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 -0700154"""
Anas Nashif06d380c2015-05-13 14:05:30 -0400155
Anas Nashif06d380c2015-05-13 14:05:30 -0400156# -- Options for HTML output ----------------------------------------------
157
David B. Kinder5c8398d2018-08-03 16:12:03 -0700158html_theme = "sphinx_rtd_theme"
Gerard Marull-Paretasf0d3db22021-05-17 19:22:17 +0200159html_theme_options = {
160 "logo_only": True,
161 "prev_next_buttons_location": None
162}
Benjamin Cabéd1ec6f72023-02-13 14:47:56 +0100163html_baseurl = "https://docs.zephyrproject.org/latest/"
Anas Nashif12867502015-06-29 15:33:28 -0400164html_title = "Zephyr Project Documentation"
Gerard Marull-Paretas2d06ad72021-05-19 12:25:16 +0200165html_logo = str(ZEPHYR_BASE / "doc" / "_static" / "images" / "logo.svg")
Gerard Marull-Paretas1cecfe72021-06-30 15:03:11 +0200166html_favicon = str(ZEPHYR_BASE / "doc" / "_static" / "images" / "favicon.png")
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200167html_static_path = [str(ZEPHYR_BASE / "doc" / "_static")]
168html_last_updated_fmt = "%b %d, %Y"
Carol Lee1aa77332015-08-07 13:22:27 -0400169html_domain_indices = False
Carol Lee1aa77332015-08-07 13:22:27 -0400170html_split_index = True
David B. Kinderf3f266e2018-07-31 13:47:10 -0700171html_show_sourcelink = False
Rodrigo Caballero8d7b52f2015-10-16 09:30:15 -0500172html_show_sphinx = False
Gerard Marull-Paretas2d06ad72021-05-19 12:25:16 +0200173html_search_scorer = str(ZEPHYR_BASE / "doc" / "_static" / "js" / "scorer.js")
Benjamin Cabé7e253ff2023-11-07 11:32:08 +0100174html_additional_pages = {
175 "gsearch": "gsearch.html"
176}
Anas Nashif06d380c2015-05-13 14:05:30 -0400177
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200178is_release = tags.has("release") # pylint: disable=undefined-variable
Gerard Marull-Paretasb4f968c2021-10-28 18:57:20 +0200179reference_prefix = ""
180if tags.has("publish"): # pylint: disable=undefined-variable
181 reference_prefix = f"/{version}" if is_release else "/latest"
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200182docs_title = "Docs / {}".format(version if is_release else "Latest")
Rodrigo Caballero8d7b52f2015-10-16 09:30:15 -0500183html_context = {
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200184 "show_license": True,
185 "docs_title": docs_title,
186 "is_release": is_release,
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200187 "current_version": version,
188 "versions": (
189 ("latest", "/"),
Maureen Helm7c7b5fb2024-02-23 11:29:16 -0600190 ("3.6.0", "/3.6.0/"),
Johan Hedberg0d907c72023-10-20 09:42:16 +0300191 ("3.5.0", "/3.5.0/"),
Christopher Friedtb14f7d02024-03-01 18:10:23 -0500192 ("2.7.6 (LTS)", "/2.7.6/"),
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200193 ),
Benjamin Cabé353f42d2023-10-25 12:12:02 +0200194 "display_gh_links": True,
Gerard Marull-Paretasb4f968c2021-10-28 18:57:20 +0200195 "reference_links": {
196 "API": f"{reference_prefix}/doxygen/html/index.html",
Gerard Marull-Paretasfc942ef2022-01-12 13:41:15 +0100197 "Kconfig Options": f"{reference_prefix}/kconfig.html",
Anas Nashif6e9a43b2022-04-05 10:17:26 -0400198 "Devicetree Bindings": f"{reference_prefix}/build/dts/api/bindings.html",
Anas Nashifebc8fda2023-10-02 11:48:32 +0000199 "West Projects": f"{reference_prefix}/develop/manifest/index.html",
Benjamin Cabé7688f482023-07-04 17:20:09 +0200200 },
201 # Set google_searchengine_id to your Search Engine ID to replace built-in search
202 # engine with Google's Programmable Search Engine.
203 # See https://programmablesearchengine.google.com/ for details.
204 "google_searchengine_id": "746031aa0d56d4912",
Rodrigo Caballero8d7b52f2015-10-16 09:30:15 -0500205}
Anas Nashifb7b23182017-01-03 14:43:02 -0500206
Gerard Marull-Paretas603e8752021-03-30 13:09:11 +0200207# -- Options for LaTeX output ---------------------------------------------
208
209latex_elements = {
Gerard Marull-Paretas2f5a9d02021-07-22 16:14:51 +0200210 "papersize": "a4paper",
211 "maketitle": open(ZEPHYR_BASE / "doc" / "_static" / "latex" / "title.tex").read(),
212 "preamble": open(ZEPHYR_BASE / "doc" / "_static" / "latex" / "preamble.tex").read(),
Benjamin Cabéabc33402023-11-06 12:39:57 +0100213 "makeindex": r"\usepackage[columns=1]{idxlayout}\makeindex",
Benjamin Cabé472def92023-10-19 18:46:47 +0200214 "fontpkg": textwrap.dedent(r"""
215 \usepackage{noto}
216 \usepackage{inconsolata-nerd-font}
217 \usepackage[T1]{fontenc}
218 """),
Gerard Marull-Paretas2f5a9d02021-07-22 16:14:51 +0200219 "sphinxsetup": ",".join(
220 (
221 # NOTE: colors match those found in light.css stylesheet
222 "verbatimwithframe=false",
223 "VerbatimColor={HTML}{f0f2f4}",
224 "InnerLinkColor={HTML}{2980b9}",
225 "warningBgColor={HTML}{e9a499}",
226 "warningborder=0pt",
227 r"HeaderFamily=\rmfamily\bfseries",
228 )
229 ),
Gerard Marull-Paretas603e8752021-03-30 13:09:11 +0200230}
Gerard Marull-Paretas2f5a9d02021-07-22 16:14:51 +0200231latex_logo = str(ZEPHYR_BASE / "doc" / "_static" / "images" / "logo-latex.pdf")
Gerard Marull-Paretas603e8752021-03-30 13:09:11 +0200232latex_documents = [
Gerard Marull-Paretas2f5a9d02021-07-22 16:14:51 +0200233 ("index-tex", "zephyr.tex", "Zephyr Project Documentation", author, "manual"),
Gerard Marull-Paretas603e8752021-03-30 13:09:11 +0200234]
Benjamin Cabé201b6662023-10-19 18:42:53 +0200235latex_engine = "xelatex"
Gerard Marull-Paretas603e8752021-03-30 13:09:11 +0200236
Gerard Marull-Paretas457f3a42021-04-16 10:47:43 +0200237# -- Options for zephyr.doxyrunner plugin ---------------------------------
238
239doxyrunner_doxygen = os.environ.get("DOXYGEN_EXECUTABLE", "doxygen")
240doxyrunner_doxyfile = ZEPHYR_BASE / "doc" / "zephyr.doxyfile.in"
241doxyrunner_outdir = ZEPHYR_BUILD / "doxygen"
242doxyrunner_fmt = True
Gerard Marull-Paretasa42ee8b2021-10-03 19:32:42 +0200243doxyrunner_fmt_vars = {"ZEPHYR_BASE": str(ZEPHYR_BASE), "ZEPHYR_VERSION": version}
Gerard Marull-Paretasab64a672022-01-10 12:35:31 +0100244doxyrunner_outdir_var = "DOXY_OUT"
Gerard Marull-Paretas457f3a42021-04-16 10:47:43 +0200245
Benjamin Cabé69fcc522023-08-09 17:52:13 +0200246# -- Options for Breathe plugin -------------------------------------------
Gerard Marull-Paretas603e8752021-03-30 13:09:11 +0200247
Benjamin Cabé69fcc522023-08-09 17:52:13 +0200248breathe_projects = {"Zephyr": str(doxyrunner_outdir / "xml")}
249breathe_default_project = "Zephyr"
250breathe_domain_by_extension = {
Gerard Marull-Paretas603e8752021-03-30 13:09:11 +0200251 "h": "c",
252 "c": "c",
253}
Benjamin Cabé69fcc522023-08-09 17:52:13 +0200254breathe_show_enumvalue_initializer = True
255breathe_default_members = ("members", )
Gerard Marull-Paretas603e8752021-03-30 13:09:11 +0200256
257cpp_id_attributes = [
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200258 "__syscall",
Carlo Caionede90dfc2023-04-20 17:04:55 +0200259 "__syscall_always_inline",
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200260 "__deprecated",
261 "__may_alias",
262 "__used",
263 "__unused",
264 "__weak",
Nicolas Pitre0dc7b9e2021-04-09 00:40:41 -0400265 "__attribute_const__",
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200266 "__DEPRECATED_MACRO",
267 "FUNC_NORETURN",
268 "__subsystem",
Christopher Friedtf2d675b2022-02-01 15:30:19 -0500269 "ALWAYS_INLINE",
Gerard Marull-Paretas603e8752021-03-30 13:09:11 +0200270]
271c_id_attributes = cpp_id_attributes
272
273# -- Options for html_redirect plugin -------------------------------------
274
275html_redirect_pages = redirects.REDIRECTS
276
Gerard Marull-Paretas96c7d102021-04-06 00:02:03 +0200277# -- Options for zephyr.warnings_filter -----------------------------------
278
279warnings_filter_config = str(ZEPHYR_BASE / "doc" / "known-warnings.txt")
Gerard Marull-Paretas96c7d102021-04-06 00:02:03 +0200280
Gaute Svanes Lunde6acdb1b2022-10-12 15:29:10 +0200281# -- Options for zephyr.link-roles ----------------------------------------
282
283link_roles_manifest_project = "zephyr"
284link_roles_manifest_baseurl = "https://github.com/zephyrproject-rtos/zephyr"
285
Gerard Marull-Paretas95d8d2c2021-05-19 16:04:20 +0200286# -- Options for notfound.extension ---------------------------------------
287
Gerard Marull-Paretas45cce732021-06-22 11:16:25 +0200288notfound_urls_prefix = f"/{version}/" if is_release else "/latest/"
Gerard Marull-Paretas95d8d2c2021-05-19 16:04:20 +0200289
Benjamin Cabé353f42d2023-10-25 12:12:02 +0200290# -- Options for zephyr.gh_utils ------------------------------------------
Gerard Marull-Paretasfe7529f2021-06-28 20:08:13 +0200291
Benjamin Cabé353f42d2023-10-25 12:12:02 +0200292gh_link_version = f"v{version}" if is_release else "main"
293gh_link_base_url = f"https://github.com/zephyrproject-rtos/zephyr"
294gh_link_prefixes = {
Gerard Marull-Paretasfe7529f2021-06-28 20:08:13 +0200295 "samples/.*": "",
296 "boards/.*": "",
Marti Bolivaree4b1342023-01-09 15:46:59 -0800297 "snippets/.*": "",
Gerard Marull-Paretasfe7529f2021-06-28 20:08:13 +0200298 ".*": "doc",
299}
Benjamin Cabé353f42d2023-10-25 12:12:02 +0200300gh_link_exclude = [
Gerard Marull-Paretasfe7529f2021-06-28 20:08:13 +0200301 "reference/kconfig.*",
Anas Nashif6e9a43b2022-04-05 10:17:26 -0400302 "build/dts/api/bindings.*",
303 "build/dts/api/compatibles.*",
Gerard Marull-Paretasfe7529f2021-06-28 20:08:13 +0200304]
305
Gerard Marull-Paretasfc942ef2022-01-12 13:41:15 +0100306# -- Options for zephyr.kconfig -------------------------------------------
307
308kconfig_generate_db = True
309kconfig_ext_paths = [ZEPHYR_BASE]
310
Gerard Marull-Paretas4dd15532021-05-10 19:11:14 +0200311# -- Options for zephyr.external_content ----------------------------------
312
313external_content_contents = [
314 (ZEPHYR_BASE / "doc", "[!_]*"),
315 (ZEPHYR_BASE, "boards/**/*.rst"),
316 (ZEPHYR_BASE, "boards/**/doc"),
Andrei Emeltchenko0aaa5a92023-09-08 13:01:57 +0300317 (ZEPHYR_BASE, "samples/**/*.html"),
Gerard Marull-Paretas4dd15532021-05-10 19:11:14 +0200318 (ZEPHYR_BASE, "samples/**/*.rst"),
319 (ZEPHYR_BASE, "samples/**/doc"),
Marti Bolivaree4b1342023-01-09 15:46:59 -0800320 (ZEPHYR_BASE, "snippets/**/*.rst"),
321 (ZEPHYR_BASE, "snippets/**/doc"),
Gerard Marull-Paretas4dd15532021-05-10 19:11:14 +0200322]
323external_content_keep = [
324 "reference/kconfig/*",
Anas Nashifdd7532d2023-08-31 12:59:14 +0000325 "develop/manifest/index.rst",
Anas Nashif6e9a43b2022-04-05 10:17:26 -0400326 "build/dts/api/bindings.rst",
327 "build/dts/api/bindings/**/*",
328 "build/dts/api/compatibles/**/*",
Gerard Marull-Paretas4dd15532021-05-10 19:11:14 +0200329]
330
Gerard Marull-Paretas9e5e8e82024-01-09 15:34:14 +0100331# -- Options for zephyr.domain --------------------------------------------
332
333zephyr_breathe_insert_related_samples = True
334
Gerard Marull-Paretas41271382021-07-20 16:12:23 +0200335# -- Options for sphinx.ext.graphviz --------------------------------------
336
337graphviz_dot = os.environ.get("DOT_EXECUTABLE", "dot")
338graphviz_output_format = "svg"
339graphviz_dot_args = [
340 "-Gbgcolor=transparent",
341 "-Nstyle=filled",
342 "-Nfillcolor=white",
343 "-Ncolor=gray60",
344 "-Nfontcolor=gray25",
345 "-Ecolor=gray60",
346]
347
Benjamin Cabéb3a52f42023-10-17 22:38:31 -0400348# -- Options for sphinx_copybutton ----------------------------------------
349
350copybutton_prompt_text = r"\$ |uart:~\$ "
351copybutton_prompt_is_regexp = True
352
Gerard Marull-Paretas603e8752021-03-30 13:09:11 +0200353# -- Linkcheck options ----------------------------------------------------
Anas Nashif38a77792019-01-20 08:56:48 -0500354
Benjamin Cabéd3487c42023-10-18 08:23:55 -0400355linkcheck_ignore = [
356 r"https://github.com/zephyrproject-rtos/zephyr/issues/.*"
357]
358
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200359extlinks = {
Gerard Marull-Paretas2a93e8c2022-08-11 18:01:47 +0200360 "github": ("https://github.com/zephyrproject-rtos/zephyr/issues/%s", "GitHub #%s"),
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200361}
David B. Kinder2a1adfc2017-04-27 14:59:04 -0700362
363linkcheck_timeout = 30
364linkcheck_workers = 10
David B. Kinder2a1adfc2017-04-27 14:59:04 -0700365linkcheck_anchors = False
366
Gerard Marull-Paretasf4edff02021-03-30 14:50:25 +0200367
David B. Kinder6bd5dff2017-01-27 16:20:21 -0800368def setup(app):
Gerard Marull-Paretasa6d8c232021-03-12 14:33:16 +0100369 # theme customizations
370 app.add_css_file("css/custom.css")
Benjamin Cabé29b19bc2023-12-05 15:17:47 +0100371 app.add_js_file("js/custom.js")
Gerard Marull-Paretasa6d8c232021-03-12 14:33:16 +0100372 app.add_js_file("js/dark-mode-toggle.min.mjs", type="module")