mirror of
https://github.com/samsonjs/vdirsyncer.git
synced 2026-03-25 08:55:50 +00:00
106 lines
2.6 KiB
Python
106 lines
2.6 KiB
Python
import datetime
|
|
import os
|
|
|
|
from pkg_resources import get_distribution
|
|
|
|
extensions = ["sphinx.ext.autodoc"]
|
|
|
|
templates_path = ["_templates"]
|
|
|
|
source_suffix = ".rst"
|
|
master_doc = "index"
|
|
|
|
project = "vdirsyncer"
|
|
copyright = "2014-{}, Markus Unterwaditzer & contributors".format(
|
|
datetime.date.today().strftime("%Y")
|
|
)
|
|
|
|
release = get_distribution("vdirsyncer").version
|
|
version = ".".join(release.split(".")[:2]) # The short X.Y version.
|
|
|
|
rst_epilog = ".. |vdirsyncer_version| replace:: %s" % release
|
|
|
|
exclude_patterns = ["_build"]
|
|
|
|
pygments_style = "sphinx"
|
|
|
|
on_rtd = os.environ.get("READTHEDOCS", None) == "True"
|
|
|
|
try:
|
|
import sphinx_rtd_theme
|
|
|
|
html_theme = "sphinx_rtd_theme"
|
|
html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
|
|
except ImportError:
|
|
html_theme = "default"
|
|
if not on_rtd:
|
|
print("-" * 74)
|
|
print(
|
|
"Warning: sphinx-rtd-theme not installed, building with default " "theme."
|
|
)
|
|
print("-" * 74)
|
|
|
|
html_static_path = ["_static"]
|
|
htmlhelp_basename = "vdirsyncerdoc"
|
|
|
|
latex_elements = {}
|
|
latex_documents = [
|
|
(
|
|
"index",
|
|
"vdirsyncer.tex",
|
|
"vdirsyncer Documentation",
|
|
"Markus Unterwaditzer",
|
|
"manual",
|
|
),
|
|
]
|
|
|
|
man_pages = [
|
|
("index", "vdirsyncer", "vdirsyncer Documentation", ["Markus Unterwaditzer"], 1)
|
|
]
|
|
|
|
texinfo_documents = [
|
|
(
|
|
"index",
|
|
"vdirsyncer",
|
|
"vdirsyncer Documentation",
|
|
"Markus Unterwaditzer",
|
|
"vdirsyncer",
|
|
"Synchronize calendars and contacts.",
|
|
"Miscellaneous",
|
|
),
|
|
]
|
|
|
|
|
|
def github_issue_role(name, rawtext, text, lineno, inliner, options=None, content=()):
|
|
options = options or {}
|
|
try:
|
|
issue_num = int(text)
|
|
if issue_num <= 0:
|
|
raise ValueError()
|
|
except ValueError:
|
|
msg = inliner.reporter.error(f"Invalid GitHub issue: {text}", line=lineno)
|
|
prb = inliner.problematic(rawtext, rawtext, msg)
|
|
return [prb], [msg]
|
|
|
|
from docutils import nodes
|
|
|
|
PROJECT_HOME = "https://github.com/pimutils/vdirsyncer"
|
|
link = "{}/{}/{}".format(
|
|
PROJECT_HOME, "issues" if name == "gh" else "pull", issue_num
|
|
)
|
|
linktext = ("issue #{}" if name == "gh" else "pull request #{}").format(issue_num)
|
|
node = nodes.reference(rawtext, linktext, refuri=link, **options)
|
|
return [node], []
|
|
|
|
|
|
def setup(app):
|
|
from sphinx.domains.python import PyObject
|
|
|
|
app.add_object_type(
|
|
"storage",
|
|
"storage",
|
|
"pair: %s; storage",
|
|
doc_field_types=PyObject.doc_field_types,
|
|
)
|
|
app.add_role("gh", github_issue_role)
|
|
app.add_role("ghpr", github_issue_role)
|