151 lines
4.6 KiB
Python
151 lines
4.6 KiB
Python
import re
|
|
from pathlib import Path
|
|
|
|
from packaging.version import parse as _parse
|
|
from sphinx import addnodes
|
|
|
|
import ablog
|
|
|
|
ablog_builder = "dirhtml"
|
|
ablog_website = "_website"
|
|
extensions = [
|
|
"sphinx.ext.autodoc",
|
|
"sphinx.ext.doctest",
|
|
"sphinx.ext.intersphinx",
|
|
"sphinx.ext.todo",
|
|
"sphinx.ext.ifconfig",
|
|
"sphinx.ext.extlinks",
|
|
"sphinx_automodapi.automodapi",
|
|
"ablog",
|
|
"alabaster",
|
|
"nbsphinx",
|
|
"myst_parser",
|
|
]
|
|
|
|
version = str(_parse(ablog.__version__))
|
|
project = "ABlog"
|
|
copyright = "2014-2022, ABlog Team"
|
|
master_doc = "index"
|
|
source_suffix = {
|
|
".rst": "restructuredtext",
|
|
".md": "markdown",
|
|
}
|
|
exclude_patterns = ["_build", "docs/manual/.ipynb_checkpoints"]
|
|
html_title = "ABlog"
|
|
html_use_index = True
|
|
html_domain_indices = False
|
|
html_show_sourcelink = True
|
|
html_favicon = "_static/ablog.ico"
|
|
blog_title = "ABlog"
|
|
blog_baseurl = "https://ablog.readthedocs.io/"
|
|
blog_locations = {
|
|
"Pittsburgh": ("Pittsburgh, PA", "https://en.wikipedia.org/wiki/Pittsburgh"),
|
|
"San Fran": ("San Francisco, CA", "https://en.wikipedia.org/wiki/San_Francisco"),
|
|
"Denizli": ("Denizli, Turkey", "https://en.wikipedia.org/wiki/Denizli"),
|
|
}
|
|
blog_languages = {
|
|
"en": ("English", None),
|
|
"nl": ("Nederlands", None),
|
|
"zh_CN": ("Chinese", None),
|
|
}
|
|
blog_default_language = "en"
|
|
language = "en"
|
|
blog_authors = {
|
|
"Ahmet": ("Ahmet Bakan", "https://ahmetbakan.com"),
|
|
"Luc": ("Luc Saffre", "https://saffre-rumma.net/luc/"),
|
|
"Mehmet": ("Mehmet Gerçeker", "https://github.com/mehmetg"),
|
|
"Libor": ("Libor Jelínek", "https://liborjelinek.github.io/"),
|
|
}
|
|
blog_feed_archives = True
|
|
blog_feed_fulltext = True
|
|
blog_feed_templates = {
|
|
"atom": {
|
|
"content": "{{ title }}{% for tag in post.tags %}" " #{{ tag.name|trim()|replace(' ', '') }}" "{% endfor %}",
|
|
},
|
|
"social": {
|
|
"content": "{{ title }}{% for tag in post.tags %}" " #{{ tag.name|trim()|replace(' ', '') }}" "{% endfor %}",
|
|
},
|
|
}
|
|
disqus_shortname = "https-ablog-readthedocs-io"
|
|
disqus_pages = True
|
|
fontawesome_link_cdn = "https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css"
|
|
html_theme = "alabaster"
|
|
html_sidebars = {
|
|
"**": [
|
|
"about.html", # Comes from alabaster
|
|
"searchfield.html", # Comes from alabaster
|
|
"ablog/postcard.html",
|
|
"ablog/recentposts.html",
|
|
"ablog/tagcloud.html",
|
|
"ablog/categories.html",
|
|
"ablog/archives.html",
|
|
"ablog/authors.html",
|
|
"ablog/languages.html",
|
|
"ablog/locations.html",
|
|
]
|
|
}
|
|
html_theme_options = {
|
|
"travis_button": False,
|
|
"github_user": "sunpy",
|
|
"github_repo": "ablog",
|
|
"description": "ABlog for blogging with Sphinx",
|
|
"logo": "ablog.png",
|
|
}
|
|
intersphinx_mapping = {
|
|
"python": ("https://docs.python.org/", None),
|
|
"sphinx": ("https://www.sphinx-doc.org/en/master/", None),
|
|
}
|
|
extlinks = {
|
|
"wiki": ("https://en.wikipedia.org/wiki/%s", "%s"),
|
|
"issue": ("https://github.com/sunpy/ablog/issues/%s", "issue %s"),
|
|
"pull": ("https://github.com/sunpy/ablog/pull/%s", "pull request %s"),
|
|
}
|
|
rst_epilog = """
|
|
.. _Sphinx: http://sphinx-doc.org/
|
|
.. _Python: https://python.org
|
|
.. _Disqus: https://disqus.com/
|
|
.. _GitHub: https://github.com/sunpy/ablog
|
|
.. _PyPI: https://pypi.python.org/pypi/ablog
|
|
.. _Read The Docs: https://readthedocs.org/
|
|
.. _Alabaster: https://github.com/bitprophet/alabaster
|
|
"""
|
|
locale_dirs = [str(Path(ablog.__file__).parent / Path("locales"))]
|
|
nitpicky = True
|
|
nitpick_ignore = []
|
|
for line in open("nitpick-exceptions"):
|
|
if line.strip() == "" or line.startswith("#"):
|
|
continue
|
|
dtype, target = line.split(None, 1)
|
|
target = target.strip()
|
|
nitpick_ignore.append((dtype, target))
|
|
|
|
|
|
def parse_event(env, sig, signode):
|
|
event_sig_re = re.compile(r"([a-zA-Z-]+)\s*\((.*)\)")
|
|
m = event_sig_re.match(sig)
|
|
if not m:
|
|
signode += addnodes.desc_name(sig, sig)
|
|
return sig
|
|
name, args = m.groups()
|
|
signode += addnodes.desc_name(name, name)
|
|
plist = addnodes.desc_parameterlist()
|
|
for arg in args.split(","):
|
|
arg = arg.strip()
|
|
plist += addnodes.desc_parameter(arg, arg)
|
|
signode += plist
|
|
return name
|
|
|
|
|
|
def setup(app):
|
|
from sphinx.ext.autodoc import cut_lines
|
|
from sphinx.util.docfields import GroupedField
|
|
|
|
app.connect("autodoc-process-docstring", cut_lines(4, what=["module"]))
|
|
app.add_object_type(
|
|
"confval",
|
|
"confval",
|
|
objname="configuration value",
|
|
indextemplate="pair: %s; configuration value",
|
|
)
|
|
fdesc = GroupedField("parameter", label="Parameters", names=["param"], can_collapse=True)
|
|
app.add_object_type("event", "event", "pair: %s; event", parse_event, doc_field_types=[fdesc])
|