openFPGALoader/doc/conf.py

130 lines
3.7 KiB
Python

# -*- coding: utf-8 -*-
from sys import path as sys_path
from os.path import abspath
from pathlib import Path
from json import loads
ROOT = Path(__file__).resolve().parent
sys_path.insert(0, abspath("."))
from data import (
ReadBoardDataFromYAML,
BoardDataToTable,
ReadFPGADataFromYAML,
FPGADataToTable,
ReadCableDataFromYAML,
CableDataToTable
)
# -- General configuration ------------------------------------------------
extensions = [
# Standard Sphinx extensions
"sphinx.ext.extlinks",
"sphinx.ext.intersphinx",
]
templates_path = ["_templates"]
source_suffix = {
".rst": "restructuredtext",
}
master_doc = "index"
project = u"openFPGALoader: universal utility for programming FPGA"
copyright = u"2019-2022, Gwenhael Goavec-Merou and contributors"
author = u"Gwenhael Goavec-Merou and contributors"
version = "latest"
release = version # The full version, including alpha/beta/rc tags.
language = None
exclude_patterns = []
numfig = True
# -- Options for HTML output ----------------------------------------------
html_context = {}
ctx = ROOT / "context.json"
if ctx.is_file():
html_context.update(loads(ctx.open("r").read()))
if (ROOT / "_theme").is_dir():
html_theme_path = ["."]
html_theme = "_theme"
html_theme_options = {
"home_breadcrumbs": False,
"vcs_pageview_mode": "blob",
}
else:
html_theme = "alabaster"
htmlhelp_basename = "OFLDoc"
# -- Options for LaTeX output ---------------------------------------------
latex_elements = {
"papersize": "a4paper",
}
latex_documents = [
(master_doc, "OFLDoc.tex", u"openFPGALoader: universal utility for programming FPGA (Documentation)", author, "manual"),
]
# -- Options for manual page output ---------------------------------------
# One entry per manual page. List of tuples
# (source start file, name, description, authors, manual section).
man_pages = [(master_doc, "openFPGALoader", u"Universal utility for programming FPGA (Documentation)", [author], 1)]
# -- Options for Texinfo output -------------------------------------------
texinfo_documents = [
(
master_doc,
"openFPGALoader",
u"Universal utility for programming FPGA (Documentation)",
author,
"openFPGALoader",
"HDL verification.",
"Miscellaneous",
),
]
# -- Sphinx.Ext.InterSphinx -----------------------------------------------
intersphinx_mapping = {
"python": ("https://docs.python.org/3/", None),
"constraints": ("https://hdl.github.io/constraints", None)
}
# -- Sphinx.Ext.ExtLinks --------------------------------------------------
extlinks = {
"wikipedia": ("https://en.wikipedia.org/wiki/%s", None),
"ghsharp": ("https://github.com/trabucayre/openFPGALoader/issues/%s", "#"),
"ghissue": ("https://github.com/trabucayre/openFPGALoader/issues/%s", "issue #"),
"ghpull": ("https://github.com/trabucayre/openFPGALoader/pull/%s", "pull request #"),
"ghsrc": ("https://github.com/trabucayre/openFPGALoader/blob/master/%s", None),
}
# -- Generate partial board compatibility page (`board.inc`) with data from `boards.yml`
with (ROOT / "compatibility/boards.inc").open("w", encoding="utf-8") as wptr:
wptr.write(BoardDataToTable(ReadBoardDataFromYAML()))
# -- Generate partial FPGA compatibility page (`fpga.inc`) with data from `FPGAs.yml`
with (ROOT / "compatibility/fpga.inc").open("w", encoding="utf-8") as wptr:
wptr.write(FPGADataToTable(ReadFPGADataFromYAML()))
# -- Generate partial Cable compatibility page (`cable.inc`) with data from `cable.yml`
with (ROOT / "compatibility/cable.inc").open("w", encoding="utf-8") as wptr:
wptr.write(CableDataToTable(ReadCableDataFromYAML()))