# -*- coding: utf-8 -*- # Copyright (C) 2017-2022 The Project X-Ray Authors. # # Use of this source code is governed by a ISC-style # license that can be found in the LICENSE file or at # https://opensource.org/licenses/ISC # # SPDX-License-Identifier: ISC # # Project X-Ray documentation build configuration file, created by # sphinx-quickstart on Mon Feb 5 11:04:37 2018. # # This file is execfile()d with the current directory set to its # containing dir. # # Note that not all possible configuration values are present in this # autogenerated file. # # All configuration values have a default; values that are commented out # serve to show the default. # Updated documentation of the configuration options is available at # https://www.sphinx-doc.org/en/master/usage/configuration.html from pathlib import Path import re import recommonmark import os from sys import path as sys_path import subprocess sys_path.insert(0, os.path.abspath('.')) from markdown_code_symlinks import LinkParser, MarkdownSymlinksDomain # -- General configuration ------------------------------------------------ project = 'Project X-Ray' author = 'F4PGA Authors' copyright = f'{author}, 2018 - 2022' # yapf: disable extensions = [ 'sphinx.ext.autodoc', 'sphinx.ext.autosummary', 'sphinx.ext.doctest', 'sphinx.ext.imgmath', 'sphinx.ext.napoleon', 'sphinx.ext.todo', 'sphinx_markdown_tables', 'recommonmark' ] # yapf: enable emplates_path = ['_templates'] source_suffix = ['.rst', '.md'] source_parsers = { '.md': 'markdown_code_symlinks.LinkParser', } master_doc = 'index' # Enable github links when not on readthedocs on_rtd = os.environ.get('READTHEDOCS', None) == 'True' if not on_rtd: html_context = { "display_github": True, # Integrate GitHub "github_user": "f4pga", # Username "github_repo": "prjxray", # Repo name "github_version": "master", # Version "conf_py_path": "/doc/", } else: docs_dir = os.path.abspath(os.path.dirname(__file__)) print("Docs dir is:", docs_dir) subprocess.call('git fetch origin --unshallow', cwd=docs_dir, shell=True) subprocess.check_call('git fetch origin --tags', cwd=docs_dir, shell=True) subprocess.check_call('make links', cwd=docs_dir, shell=True) # The full version, including alpha/beta/rc tags. release = re.sub('^v', '', os.popen('git describe ').read().strip()) # The short X.Y version. version = release # yapf: disable exclude_patterns = [ '_build', 'architecture/copying.md', 'db_dev_process/minitests/index/**', 'db_dev_process/fuzzers/index/**' ] # yapf: enable # The name of the Pygments (syntax highlighting) style to use. pygments_style = 'default' # If true, `todo` and `todoList` produce output, else they produce nothing. todo_include_todos = True # -- Options for HTML output ---------------------------------------------- html_show_sourcelink = True html_theme = 'sphinx_symbiflow_theme' html_theme_options = { 'repo_name': 'f4pga/prjxray', 'github_url' : 'https://github.com/f4pga/prjxray', 'globaltoc_collapse': True, 'color_primary': 'indigo', 'color_accent': 'blue', } html_static_path = ['_static'] html_logo = str(Path(html_static_path[0]) / 'logo.svg') html_favicon = str(Path(html_static_path[0]) / 'favicon.svg') # -- Options for HTMLHelp output ------------------------------------------ # Output file base name for HTML help builder. htmlhelp_basename = 'prjxray' # -- Options for LaTeX output --------------------------------------------- latex_elements = {} latex_documents = [ ( master_doc, 'ProjectX-Ray.tex', u'Project X-Ray Documentation', u'F4PGA Authors', 'manual'), ] # -- Options for manual page output --------------------------------------- man_pages = [ (master_doc, 'projectx-ray', u'Project X-Ray Documentation', [author], 1) ] # -- Options for Texinfo output ------------------------------------------- texinfo_documents = [ ( master_doc, 'ProjectX-Ray', u'Project X-Ray Documentation', author, 'ProjectX-Ray', 'One line description of project.', 'Miscellaneous'), ] intersphinx_mapping = {'https://docs.python.org/': None} def setup(app): # Generate links for markdown-code-symlinks subprocess.check_call("make links", shell=True) github_code_repo = 'https://github.com/f4pga/prjxray/' github_code_branch = 'blob/master/' docs_root_dir = os.path.realpath(os.path.dirname(__file__)) code_root_dir = os.path.realpath(os.path.join(docs_root_dir, "..")) MarkdownSymlinksDomain.init_domain( github_code_repo, github_code_branch, docs_root_dir, code_root_dir) MarkdownSymlinksDomain.find_links() app.add_domain(MarkdownSymlinksDomain) app.add_config_value( 'recommonmark_config', { 'github_code_repo': github_code_repo, }, True)