]> git.notmuchmail.org Git - notmuch/blobdiff - doc/conf.py
Merge tag '0.31.4'
[notmuch] / doc / conf.py
index f8da1a422f9a557b258779a8fa1f4cc30b1a141b..1a5c217bb91e5299fbb2bc83f4e8d19bff466490 100644 (file)
@@ -4,6 +4,8 @@
 import sys
 import os
 
+extensions = [ 'sphinx.ext.autodoc' ]
+
 # The suffix of source filenames.
 source_suffix = '.rst'
 
@@ -12,16 +14,26 @@ master_doc = 'index'
 
 # General information about the project.
 project = u'notmuch'
-copyright = u'2009-2016, Carl Worth and many others'
+copyright = u'2009-2021, Carl Worth and many others'
 
 location = os.path.dirname(__file__)
 
 for pathdir in ['.', '..']:
-    version_file = os.path.join(location,pathdir,'version')
+    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', 'notmuch2'))
+
+# 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
 
@@ -29,6 +41,23 @@ release = version
 # 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-show.rsti', 'notmuch-tag.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'
 
@@ -47,6 +76,10 @@ 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
+
 # -- Options for manual page output ---------------------------------------
 
 # One entry per manual page. List of tuples
@@ -95,6 +128,14 @@ man_pages = [
      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),
@@ -132,7 +173,7 @@ man_pages = [
 texinfo_no_detailmenu = True
 
 texinfo_documents = [
-    ('notmuch-emacs', 'notmuch-emacs', u'notmuch Documentation',
+    ('notmuch-emacs', 'notmuch-emacs', u'notmuch-emacs documentation',
      notmuch_authors, 'notmuch-emacs',
      'emacs based front-end for notmuch', 'Miscellaneous'),
 ]
@@ -142,7 +183,7 @@ texinfo_documents += [
     (
         x[0],                          # source start file
         x[1],                          # target name
-        u'notmuch Documentation',      # title
+        x[1] + u' documentation',      # title
         x[3][0],                       # author
         x[1],                          # dir menu entry
         x[2],                          # description