"""Sphinx configuration for MindIE SD documentation."""
import os
import shutil
PROJECT = "MindIE SD"
COPYRIGHT_TEXT = "2024-2026, Huawei Technologies Co., Ltd."
AUTHOR = "Huawei Technologies Co., Ltd."
EXTENSIONS = [
"myst_parser",
"sphinx_copybutton",
"sphinx_design",
]
SOURCE_SUFFIX = {
".md": "markdown",
}
EXCLUDE_PATTERNS = [
"_build",
"Thumbs.db",
".DS_Store",
]
TEMPLATES_PATH = ["_templates"]
HTML_STATIC_PATH = ["_static"]
MYST_ENABLE_EXTENSIONS = [
"colon_fence",
"deflist",
]
MYST_HEADING_ANCHORS = 3
SUPPRESS_WARNINGS = [
"image.not_readable",
"myst.header",
"myst.xref_missing",
"toc.not_included",
"toc.not_readable",
]
HTML_THEME = "sphinx_book_theme"
HTML_TITLE = "MindIE SD Documentation"
HTML_THEME_OPTIONS = {
"repository_url": "https://gitcode.com/Ascend/MindIE-SD",
"repository_provider": "gitlab",
"use_repository_button": True,
"path_to_docs": "docs",
"article_header_end": ["language-switcher.html", "article-header-buttons.html"],
}
_current_lang = os.environ.get("SPHINX_LANGUAGE", "en")
if _current_lang == "zh":
language = "zh_CN"
HTML_TITLE = "MindIE SD \u6587\u6863"
else:
language = "en"
_on_rtd = os.environ.get("READTHEDOCS") == "True"
if _on_rtd:
_en_url = "../en/index.html" if _current_lang == "zh" else "index.html"
_zh_url = "../zh/index.html" if _current_lang == "en" else "index.html"
else:
_en_url = "../en/html/index.html" if _current_lang == "zh" else "index.html"
_zh_url = "../zh/html/index.html" if _current_lang == "en" else "index.html"
HTML_CONTEXT = {
"current_language": _current_lang,
"current_language_name": "\u4e2d\u6587" if _current_lang == "zh" else "English",
"language_switcher_items": [
{
"name": "English",
"url": _en_url,
"lang_path": "en",
},
{
"name": "\u4e2d\u6587",
"url": _zh_url,
"lang_path": "zh",
},
],
}
def _inject_language_switcher(app, pagename, templatename, context, doctree):
context["current_language_name"] = HTML_CONTEXT["current_language_name"]
context["language_switcher_items"] = HTML_CONTEXT["language_switcher_items"]
def _copy_shared_assets(app, exc):
srcdir = app.srcdir
if os.path.basename(srcdir) in ("zh", "en"):
docs_dir = os.path.dirname(srcdir)
else:
docs_dir = srcdir
outdir = app.outdir
for asset in ["figures", "tech_report"]:
src = os.path.join(docs_dir, asset)
dst = os.path.join(outdir, asset)
if os.path.isdir(src) and not os.path.isdir(dst):
shutil.copytree(src, dst)
def setup(app):
app.connect("html-page-context", _inject_language_switcher)
app.connect("build-finished", _copy_shared_assets)
globals().update(
{
"project": PROJECT,
"copyright": COPYRIGHT_TEXT,
"author": AUTHOR,
"language": language,
"extensions": EXTENSIONS,
"source_suffix": SOURCE_SUFFIX,
"exclude_patterns": EXCLUDE_PATTERNS,
"templates_path": TEMPLATES_PATH,
"html_static_path": HTML_STATIC_PATH,
"html_context": HTML_CONTEXT,
"myst_enable_extensions": MYST_ENABLE_EXTENSIONS,
"myst_heading_anchors": MYST_HEADING_ANCHORS,
"suppress_warnings": SUPPRESS_WARNINGS,
"html_theme": HTML_THEME,
"html_title": HTML_TITLE,
"html_theme_options": HTML_THEME_OPTIONS,
}
)