| # -*- 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) |