mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
116 lines
3.4 KiB
Python
116 lines
3.4 KiB
Python
# -*- coding: utf-8 -*-
|
|
#
|
|
# Sphinx documentation build configuration file
|
|
|
|
import re
|
|
import sphinx
|
|
|
|
extensions = ['sphinx.ext.autodoc', 'sphinx.ext.doctest', 'sphinx.ext.todo',
|
|
'sphinx.ext.autosummary']
|
|
|
|
master_doc = 'contents'
|
|
templates_path = ['_templates']
|
|
exclude_patterns = ['_build']
|
|
|
|
project = 'Sphinx'
|
|
copyright = '2007-2010, Georg Brandl'
|
|
version = sphinx.__released__
|
|
release = version
|
|
|
|
show_authors = True
|
|
|
|
html_theme = 'sphinxdoc'
|
|
modindex_common_prefix = ['sphinx.']
|
|
html_static_path = ['_static']
|
|
html_index = 'index.html'
|
|
html_sidebars = {'index': ['indexsidebar.html', 'searchbox.html']}
|
|
html_additional_pages = {'index': 'index.html'}
|
|
html_use_opensearch = 'http://sphinx.pocoo.org'
|
|
|
|
htmlhelp_basename = 'Sphinxdoc'
|
|
|
|
epub_theme = 'epub'
|
|
epub_basename = 'sphinx'
|
|
epub_author = 'Georg Brandl'
|
|
epub_publisher = 'http://sphinx.pocoo.org/'
|
|
epub_scheme = 'url'
|
|
epub_identifier = epub_publisher
|
|
epub_pre_files = [('index', 'Welcome')]
|
|
epub_exclude_files = ['_static/opensearch.xml', '_static/doctools.js',
|
|
'_static/jquery.js', '_static/searchtools.js',
|
|
'_static/basic.css', 'search.html']
|
|
|
|
latex_documents = [('contents', 'sphinx.tex', 'Sphinx Documentation',
|
|
'Georg Brandl', 'manual', 1)]
|
|
latex_logo = '_static/sphinx.png'
|
|
latex_elements = {
|
|
'fontpkg': '\\usepackage{palatino}',
|
|
}
|
|
|
|
todo_include_todos = True
|
|
|
|
man_pages = [
|
|
('contents', 'sphinx-all', 'Sphinx documentation generator system manual',
|
|
'Georg Brandl', 1),
|
|
('man/sphinx-build', 'sphinx-build', 'Sphinx documentation generator tool',
|
|
'', 1),
|
|
('man/sphinx-quickstart', 'sphinx-quickstart', 'Sphinx documentation '
|
|
'template generator', '', 1),
|
|
]
|
|
|
|
|
|
# -- Extension interface -------------------------------------------------------
|
|
|
|
from sphinx import addnodes
|
|
|
|
dir_sig_re = re.compile(r'\.\. ([^:]+)::(.*)$')
|
|
|
|
def parse_directive(env, sig, signode):
|
|
if not sig.startswith('.'):
|
|
dec_sig = '.. %s::' % sig
|
|
signode += addnodes.desc_name(dec_sig, dec_sig)
|
|
return sig
|
|
m = dir_sig_re.match(sig)
|
|
if not m:
|
|
signode += addnodes.desc_name(sig, sig)
|
|
return sig
|
|
name, args = m.groups()
|
|
dec_name = '.. %s::' % name
|
|
signode += addnodes.desc_name(dec_name, dec_name)
|
|
signode += addnodes.desc_addname(args, args)
|
|
return name
|
|
|
|
|
|
def parse_role(env, sig, signode):
|
|
signode += addnodes.desc_name(':%s:' % sig, ':%s:' % sig)
|
|
return sig
|
|
|
|
|
|
event_sig_re = re.compile(r'([a-zA-Z-]+)\s*\((.*)\)')
|
|
|
|
def parse_event(env, sig, signode):
|
|
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
|
|
app.connect('autodoc-process-docstring', cut_lines(4, what=['module']))
|
|
app.add_description_unit('directive', 'dir', 'pair: %s; directive',
|
|
parse_directive)
|
|
app.add_description_unit('role', 'role', 'pair: %s; role', parse_role)
|
|
app.add_description_unit('confval', 'confval',
|
|
objname='configuration value',
|
|
indextemplate='pair: %s; configuration value')
|
|
app.add_description_unit('event', 'event', 'pair: %s; event', parse_event)
|