summaryrefslogtreecommitdiff
path: root/docs/conf.py
diff options
context:
space:
mode:
Diffstat (limited to 'docs/conf.py')
-rw-r--r--docs/conf.py29
1 files changed, 28 insertions, 1 deletions
diff --git a/docs/conf.py b/docs/conf.py
index 1c1014e0..083baa61 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -13,6 +13,7 @@
# documentation root, use os.path.abspath to make it absolute, like shown here.
#
import os
+import shutil
import sys
sys.path.append(os.path.abspath("./_ext"))
@@ -66,6 +67,9 @@ autosectionlabel_prefix_document = True
# source_suffix = ['.rst', '.md']
source_suffix = ['.rst', '.md']
+myst_enable_extensions = ["colon_fence", "deflist", "fieldlist", "substitution"]
+myst_fence_as_directive = ["cfgcmd", "opcmd", "cmdincludemd"]
+
# The master toctree document.
master_doc = 'index'
@@ -85,7 +89,17 @@ 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']
+exclude_patterns = [
+ u'_build', 'Thumbs.db', '.DS_Store', '_include/vyos-1x',
+ 'md-*.md', '**/md-*.md',
+]
+
+import pathlib
+_build = pathlib.Path(__file__).parent / '_build'
+if (_build / '_swap_state.json').exists() and (_build / '_swap_exclude.txt').exists():
+ exclude_patterns.extend(
+ s for s in (line.strip() for line in (_build / '_swap_exclude.txt').read_text().splitlines()) if s
+ )
# The name of the Pygments (syntax highlighting) style to use.
pygments_style = 'sphinx'
@@ -217,5 +231,18 @@ def _prefer_webp(app):
app.builder.supported_image_types = ['image/webp'] + types
+def _copy_md_sources(app, exception):
+ """Copy .md source files verbatim into the HTML output tree."""
+ if exception is not None:
+ return
+ src = pathlib.Path(app.srcdir)
+ out = pathlib.Path(app.outdir)
+ for path in src.rglob("*.md"):
+ dest = out / path.relative_to(src)
+ dest.parent.mkdir(parents=True, exist_ok=True)
+ shutil.copy2(path, dest)
+
+
def setup(app):
app.connect('builder-inited', _prefer_webp)
+ app.connect('build-finished', _copy_md_sources)