mirror of
https://github.com/The-OpenROAD-Project/OpenROAD.git
synced 2026-06-02 01:08:34 +08:00
188 lines
5.2 KiB
Python
188 lines
5.2 KiB
Python
# 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:
|
|
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
|
|
|
# -- 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
|
|
|
|
# -- Project information -----------------------------------------------------
|
|
|
|
project = "OpenROAD"
|
|
copyright = "The OpenROAD Authors, 2021"
|
|
author = "OpenROAD Team"
|
|
|
|
|
|
# -- 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 = [
|
|
"sphinx.ext.autodoc",
|
|
"sphinx.ext.ifconfig",
|
|
"sphinx.ext.mathjax",
|
|
"sphinx.ext.napoleon",
|
|
"sphinx.ext.todo",
|
|
"sphinx_external_toc",
|
|
"sphinx_copybutton",
|
|
"myst_parser",
|
|
"sphinxcontrib.mermaid",
|
|
"sphinx_tabs.tabs",
|
|
]
|
|
|
|
myst_enable_extensions = [
|
|
"amsmath",
|
|
"colon_fence",
|
|
"deflist",
|
|
"dollarmath",
|
|
"html_admonition",
|
|
"html_image",
|
|
"replacements",
|
|
"smartquotes",
|
|
"substitution",
|
|
"tasklist",
|
|
"html_image",
|
|
]
|
|
|
|
external_toc_path = "toc.yml"
|
|
|
|
# Add any paths that contain templates here, relative to this directory.
|
|
templates_path = ["_templates"]
|
|
|
|
# The suffix(es) of source filenames.
|
|
# You can specify multiple suffix as a list of string:
|
|
#
|
|
source_suffix = [".rst", ".md"]
|
|
|
|
# The master toctree document.
|
|
master_doc = "index"
|
|
|
|
# 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",
|
|
"**/LICENSE",
|
|
"**/LICENSE.md",
|
|
"README.md",
|
|
"misc/NewToolDocExample.md",
|
|
"docs/releases/PostAlpha2.1BranchMethodology.md",
|
|
"main/src/odb/src/def/README.md",
|
|
"main/src/odb/src/def/doc/README.md",
|
|
"main/src/odb/src/lef/README.md",
|
|
"main/docs",
|
|
"md", # manpage dir
|
|
"man", # manpage dir
|
|
"cat", # manpage dir
|
|
"html", # manpage dir
|
|
]
|
|
|
|
# The name of the Pygments (syntax highlighting) style to use.
|
|
pygments_style = None
|
|
|
|
# Mermaid related args
|
|
mermaid_output_format = "svg"
|
|
mermaid_params = [
|
|
"-p",
|
|
"puppeteer-config.json",
|
|
"--theme",
|
|
"forest",
|
|
"--width",
|
|
"200",
|
|
"--backgroundColor",
|
|
"transparent",
|
|
]
|
|
mermaid_init_js = (
|
|
"mermaid.initialize({startOnLoad:true, flowchart:{useMaxWidth:false}})"
|
|
)
|
|
mermaid_verbose = True
|
|
|
|
# -- 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 = "sphinx_book_theme"
|
|
|
|
html_theme_options = {
|
|
"repository_url": "https://github.com/The-OpenROAD-Project/OpenROAD",
|
|
"repository_branch": "master",
|
|
"show_navbar_depth": 2,
|
|
"use_issues_button": True,
|
|
# "use_repository_button": True,
|
|
"use_download_button": True,
|
|
# list for more fine-grained ordering of icons
|
|
"icon_links": [
|
|
{
|
|
"name": "The OpenROAD Project",
|
|
"url": "https://theopenroadproject.org/",
|
|
"icon": "fa-solid fa-globe",
|
|
},
|
|
{
|
|
"name": "Twitter",
|
|
"url": "https://twitter.com/OpenROAD_EDA",
|
|
"icon": "fa-brands fa-twitter",
|
|
},
|
|
{
|
|
"name": "Email",
|
|
"url": "mailto:openroad@ucsd.edu",
|
|
"icon": "fa-solid fa-envelope",
|
|
},
|
|
{
|
|
"name": "GitHub",
|
|
"url": "https://github.com/The-OpenROAD-Project/OpenROAD",
|
|
"icon": "fa-brands fa-github",
|
|
},
|
|
{
|
|
"name": "Stars",
|
|
"url": "https://github.com/The-OpenROAD-Project/OpenROAD/stargazers",
|
|
"icon": "https://img.shields.io/github/stars/The-OpenROAD-Project/OpenROAD",
|
|
"type": "url",
|
|
},
|
|
],
|
|
}
|
|
|
|
|
|
def swap_prefix(file, old, new):
|
|
with open(file, "r") as f:
|
|
lines = f.read()
|
|
lines = lines.replace(old, new)
|
|
with open(file, "wt") as f:
|
|
f.write(lines)
|
|
|
|
|
|
def setup(app):
|
|
import os
|
|
|
|
if not os.path.exists("./main"):
|
|
os.symlink("..", "./main")
|
|
|
|
# also symlink readme
|
|
import shutil
|
|
|
|
if not os.path.exists("./main/README2.md"):
|
|
shutil.copy("main/README.md", "main/README2.md")
|
|
|
|
# these prefix swaps will be reverted and is needed for sphinx compilation.
|
|
for filename in ["../README.md", "../README2.md"]:
|
|
swap_prefix(filename, "(docs/", "(../")
|
|
swap_prefix(filename, "```mermaid", "```{mermaid}\n:align: center\n")
|
|
|
|
# for populating OR Messages page.
|
|
command = "python getMessages.py"
|
|
_ = os.popen(command).read()
|
|
|
|
if not os.path.exists("../_readthedocs/html/doxygen_output"):
|
|
os.makedirs("../_readthedocs/html/doxygen_output", exist_ok=True)
|
|
command = "cd .. ; doxygen"
|
|
_ = os.popen(command).read()
|