mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-27 13:17:56 +01:00
4d367ac0b4
This corresponds to flycheck commit 1702d2db3d8ba9bcb9b2bf810e791e907fcc3adc, which is apparently the last time this file was modified (2018). Embedding seems defensible since the file is evidently not changing that much, and we need to change some labels to make it fit with the not-just-emacs nature of notmuch docs.
235 lines
7.6 KiB
Python
235 lines
7.6 KiB
Python
|
|
# -*- coding: utf-8 -*-
|
|
|
|
import sys
|
|
import os
|
|
from pathlib import Path
|
|
sys.path.append(str(Path(__file__).parent))
|
|
|
|
extensions = [ 'sphinx.ext.autodoc', 'elisp' ]
|
|
|
|
# The suffix of source filenames.
|
|
source_suffix = '.rst'
|
|
|
|
# The master toctree document.
|
|
master_doc = 'index'
|
|
|
|
# General information about the project.
|
|
project = u'notmuch'
|
|
copyright = u'2009-2022, Carl Worth and many others'
|
|
|
|
location = os.path.dirname(__file__)
|
|
|
|
for pathdir in ['.', '..']:
|
|
version_file = os.path.join(location,pathdir,'version.txt')
|
|
if os.path.exists(version_file):
|
|
with open(version_file,'r') as infile:
|
|
version=infile.read().replace('\n','')
|
|
|
|
# for autodoc
|
|
sys.path.insert(0, os.path.join(location, '..', 'bindings', 'python-cffi', 'build', 'stage'))
|
|
|
|
# read generated config
|
|
for pathdir in ['.', '..']:
|
|
conf_file = os.path.join(location,pathdir,'sphinx.config')
|
|
if os.path.exists(conf_file):
|
|
with open(conf_file,'r') as infile:
|
|
exec(''.join(infile.readlines()))
|
|
|
|
# The full version, including alpha/beta/rc tags.
|
|
release = version
|
|
|
|
# List of patterns, relative to source directory, that match files and
|
|
# directories to ignore when looking for source files.
|
|
exclude_patterns = ['_build']
|
|
|
|
if tags.has('WITH_EMACS'):
|
|
# Hacky reimplementation of include to workaround limitations of
|
|
# sphinx-doc
|
|
lines = ['.. include:: /../emacs/rstdoc.rsti\n\n'] # in the source tree
|
|
for file in ('notmuch.rsti', 'notmuch-lib.rsti', 'notmuch-hello.rsti', 'notmuch-show.rsti', 'notmuch-tag.rsti', 'notmuch-tree.rsti'):
|
|
lines.extend(open(rsti_dir+'/'+file))
|
|
rst_epilog = ''.join(lines)
|
|
del lines
|
|
else:
|
|
# If we don't have emacs (or the user configured --without-emacs),
|
|
# don't build the notmuch-emacs docs, as they need emacs to generate
|
|
# the docstring include files
|
|
exclude_patterns.append('notmuch-emacs.rst')
|
|
|
|
if not tags.has('WITH_PYTHON'):
|
|
exclude_patterns.append('python-bindings.rst')
|
|
|
|
# The name of the Pygments (syntax highlighting) style to use.
|
|
pygments_style = 'sphinx'
|
|
|
|
# -- 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 = 'default'
|
|
|
|
# prevent generation of python module index
|
|
html_domain_indices=[]
|
|
|
|
# Add any paths that contain custom static files (such as style sheets) here,
|
|
# relative to this directory. They are copied after the builtin static files,
|
|
# so a file named "default.css" will overwrite the builtin "default.css".
|
|
html_static_path = []
|
|
|
|
# Output file base name for HTML help builder.
|
|
htmlhelp_basename = 'notmuchdoc'
|
|
|
|
# Disable SmartyPants, as it mangles command lines.
|
|
# Despite the name, this actually affects manual pages as well.
|
|
html_use_smartypants = False
|
|
|
|
# See:
|
|
# - https://www.sphinx-doc.org/en/master/usage/configuration.html#confval-manpages_url
|
|
# - https://manpages.debian.org/
|
|
manpages_url = 'https://manpages.debian.org/{page}.{section}.html'
|
|
|
|
# -- Options for manual page output ---------------------------------------
|
|
|
|
# One entry per manual page. List of tuples
|
|
# (source start file, name, description, authors, manual section).
|
|
|
|
notmuch_authors = u'Carl Worth and many others'
|
|
|
|
man_make_section_directory = False
|
|
|
|
man_pages = [
|
|
('man1/notmuch', 'notmuch',
|
|
u'thread-based email index, search, and tagging',
|
|
[notmuch_authors], 1),
|
|
|
|
('man1/notmuch-address', 'notmuch-address',
|
|
u'output addresses from matching messages',
|
|
[notmuch_authors], 1),
|
|
|
|
('man1/notmuch-compact', 'notmuch-compact',
|
|
u'compact the notmuch database',
|
|
[notmuch_authors], 1),
|
|
|
|
('man1/notmuch-config', 'notmuch-config',
|
|
u'access notmuch configuration file',
|
|
[notmuch_authors], 1),
|
|
|
|
('man1/notmuch-count', 'notmuch-count',
|
|
u'count messages matching the given search terms',
|
|
[notmuch_authors], 1),
|
|
|
|
('man1/notmuch-dump', 'notmuch-dump',
|
|
u'creates a plain-text dump of the tags of each message',
|
|
[notmuch_authors], 1),
|
|
|
|
('man1/notmuch-emacs-mua', 'notmuch-emacs-mua',
|
|
u'send mail with notmuch and emacs',
|
|
[notmuch_authors], 1),
|
|
|
|
('man1/notmuch-git', 'notmuch-git',
|
|
u'manage notmuch tags with git',
|
|
[notmuch_authors], 1),
|
|
|
|
('man1/notmuch-git', 'nmbug',
|
|
u'manage notmuch bugs with git',
|
|
[notmuch_authors], 1),
|
|
|
|
('man5/notmuch-hooks', 'notmuch-hooks',
|
|
u'hooks for notmuch',
|
|
[notmuch_authors], 5),
|
|
|
|
('man1/notmuch-insert', 'notmuch-insert',
|
|
u'add a message to the maildir and notmuch database',
|
|
[notmuch_authors], 1),
|
|
|
|
('man1/notmuch-new', 'notmuch-new',
|
|
u'incorporate new mail into the notmuch database',
|
|
[notmuch_authors], 1),
|
|
|
|
('man7/notmuch-properties', 'notmuch-properties',
|
|
u'notmuch message property conventions and documentation',
|
|
[notmuch_authors], 7),
|
|
|
|
('man1/notmuch-reindex', 'notmuch-reindex',
|
|
u're-index matching messages',
|
|
[notmuch_authors], 1),
|
|
|
|
('man1/notmuch-reply', 'notmuch-reply',
|
|
u'constructs a reply template for a set of messages',
|
|
[notmuch_authors], 1),
|
|
|
|
('man1/notmuch-restore', 'notmuch-restore',
|
|
u'restores the tags from the given file (see notmuch dump)',
|
|
[notmuch_authors], 1),
|
|
|
|
('man1/notmuch-search', 'notmuch-search',
|
|
u'search for messages matching the given search terms',
|
|
[notmuch_authors], 1),
|
|
|
|
('man7/notmuch-search-terms', 'notmuch-search-terms',
|
|
u'syntax for notmuch queries',
|
|
[notmuch_authors], 7),
|
|
|
|
('man1/notmuch', 'notmuch-setup',
|
|
u'getting started with notmuch',
|
|
[notmuch_authors], 1),
|
|
|
|
('man7/notmuch-sexp-queries', 'notmuch-sexp-queries',
|
|
u's-expression syntax for notmuch queries',
|
|
[notmuch_authors], 7),
|
|
|
|
('man1/notmuch-show', 'notmuch-show',
|
|
u'show messages matching the given search terms',
|
|
[notmuch_authors], 1),
|
|
|
|
('man1/notmuch-tag', 'notmuch-tag',
|
|
u'add/remove tags for all messages matching the search terms',
|
|
[notmuch_authors], 1),
|
|
]
|
|
|
|
# If true, show URL addresses after external links.
|
|
#man_show_urls = False
|
|
|
|
# -- Options for Texinfo output -------------------------------------------
|
|
|
|
# Grouping the document tree into Texinfo files. List of tuples
|
|
# (source start file, target name, title, author,
|
|
# dir menu entry, description, category)
|
|
# If true, do not generate a @detailmenu in the "Top" node's menu.
|
|
texinfo_no_detailmenu = True
|
|
|
|
texinfo_documents = [
|
|
('notmuch-emacs', 'notmuch-emacs', u'notmuch-emacs documentation',
|
|
notmuch_authors, 'notmuch-emacs',
|
|
'emacs based front-end for notmuch', 'Miscellaneous'),
|
|
]
|
|
|
|
# generate texinfo list from man page list
|
|
texinfo_documents += [
|
|
(
|
|
x[0], # source start file
|
|
x[1], # target name
|
|
x[1] + u' documentation', # title
|
|
x[3][0], # author
|
|
x[1], # dir menu entry
|
|
x[2], # description
|
|
'Miscellaneous' # category
|
|
) for x in man_pages]
|
|
|
|
def setup(app):
|
|
import docutils.nodes
|
|
# define nmconfig role and directive for config items.
|
|
app.add_object_type('nmconfig','nmconfig',
|
|
indextemplate='pair: configuration item; %s',
|
|
ref_nodeclass=docutils.nodes.generated,
|
|
objname='config item' )
|
|
app.add_object_type('emacsvar','emacsvar',
|
|
indextemplate='pair: Emacs variable; %s',
|
|
ref_nodeclass=docutils.nodes.generated,
|
|
objname='Emacs variable')
|
|
app.add_object_type('emacscmd','emacscmd',
|
|
indextemplate='pair: Emacs command; %s',
|
|
ref_nodeclass=docutils.nodes.generated,
|
|
objname='Emacs command')
|
|
|