# Configuration file for the Sphinx documentation builder. # # This file only contains 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 subprocess import sys import types sys.path.insert(0, os.path.abspath('.')) # linuxdoc still imports docutils.utils.error_reporting, which was removed in # newer docutils releases. Provide the small API surface linuxdoc uses so Sphinx # can keep loading with either docutils version. try: import docutils.utils.error_reporting # type: ignore # noqa: F401 except ModuleNotFoundError: error_reporting = types.ModuleType('docutils.utils.error_reporting') def ErrorString(error): return str(error) def SafeString(value): return str(value) error_reporting.ErrorString = ErrorString error_reporting.SafeString = SafeString sys.modules['docutils.utils.error_reporting'] = error_reporting # -- Project information ----------------------------------------------------- project = 'libfyaml' copyright = '2019-2026, Pantelis Antoniou' author = 'Pantelis Antoniou' ROOT_DIR = pathlib.Path(__file__).resolve().parent.parent def get_release(): tarball_version = ROOT_DIR / '.tarball-version' if tarball_version.exists(): version = tarball_version.read_text(encoding='utf-8').strip() if version: return version git_version_gen = ROOT_DIR / 'build-aux' / 'git-version-gen' if git_version_gen.exists(): try: version = subprocess.check_output( [str(git_version_gen), str(tarball_version)], cwd=ROOT_DIR, text=True, ).strip() if version: return version except (OSError, subprocess.SubprocessError): pass return os.environ.get('PACKAGE_VERSION', '0.0') # The short X.Y version and the full release, including alpha/beta/rc tags. release = get_release() version = release.split('-', 1)[0] # -- General configuration --------------------------------------------------- # Add any Sphinx extension module names here, as strings. They can be # extensions coming with Sphinx (named 'sphinx.ext.*') or your custom # ones. extensions = [ 'linuxdoc.rstFlatTable' # Implementation of the 'flat-table' reST-directive. , 'linuxdoc.rstKernelDoc' # Implementation of the 'kernel-doc' reST-directive. , 'linuxdoc.kernel_include' # Implementation of the 'kernel-include' reST-directive. , 'linuxdoc.manKernelDoc' # Implementation of the 'kernel-doc-man' builder , 'linuxdoc.cdomain' # Replacement for the sphinx c-domain. , 'linuxdoc.kfigure' # Sphinx extension which implements scalable image handling. , 'sphinx_markdown_builder' # Sphinx markdown builder ] # Add any paths that contain templates here, relative to this directory. templates_path = ['_templates'] # 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 = ['_build', 'Thumbs.db', '.DS_Store'] # -- 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 = 'alabaster' html_theme = 'sphinx_rtd_theme' # 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'] master_doc = 'index' # Tell kernel-doc to strip libfyaml-specific compiler-hint macros from # function prototypes before passing them to Sphinx C domain. kernel_doc_known_attrs = "FY_ALWAYS_INLINE FY_GENERIC_CONTAINER_ALIGNMENT" man_pages = [ ('man/fy-tool', 'fy-tool', 'fy-tool documentation ', '', 1), ('libfyaml', 'libfyaml', 'libfyaml API overview', '', 3), ('libfyaml-core', 'libfyaml-core', 'libfyaml core API', '', 3), ('libfyaml-misc', 'libfyaml-misc', 'libfyaml miscellaneous API', '', 3), ('libfyaml-generics', 'libfyaml-generics', 'libfyaml generic API', '', 3), ('libfyaml-reflection', 'libfyaml-reflection', 'libfyaml reflection API', '', 3), ]