From: David Bremner <david@tethera.net>
To: David Bremner <david@tethera.net>,
Daniel Kahn Gillmor <dkg@fifthhorseman.net>,
Notmuch Mail <notmuch@notmuchmail.org>
Subject: [PATCH] doc: fix for out-of-tree builds of notmuch-emacs docs
Date: Sun, 31 May 2020 13:15:03 -0300 [thread overview]
Message-ID: <20200531161503.4100110-1-david@tethera.net> (raw)
In-Reply-To: <87k10sz3wb.fsf@tethera.net>
The sphinx-doc include directive does not have the ability to include
files from the build tree, so we replace the include with reading the
files in conf.py. The non-trivial downside of this is that the emacs
docstrings are now defined for every rst source file. They are
namespaced with docstring::, so hopefully there will not be any
surprises. One thing that is noticable is a small (absolute) time
penalty in running sphinx-doc.
---
doc/Makefile.local | 2 +-
doc/conf.py | 19 +++++++++++++++----
doc/notmuch-emacs.rst | 10 ----------
3 files changed, 16 insertions(+), 15 deletions(-)
diff --git a/doc/Makefile.local b/doc/Makefile.local
index b4e0c955..769438ed 100644
--- a/doc/Makefile.local
+++ b/doc/Makefile.local
@@ -4,7 +4,7 @@ dir := doc
# You can set these variables from the command line.
SPHINXOPTS := -q
-SPHINXBUILD = WITH_EMACS=${WITH_EMACS} sphinx-build
+SPHINXBUILD = WITH_EMACS=${WITH_EMACS} RSTI_DIR=$(realpath emacs) sphinx-build
DOCBUILDDIR := $(dir)/_build
# Internal variables.
diff --git a/doc/conf.py b/doc/conf.py
index fc9738ff..d8841d99 100644
--- a/doc/conf.py
+++ b/doc/conf.py
@@ -29,10 +29,21 @@ release = version
# directories to ignore when looking for source files.
exclude_patterns = ['_build']
-# 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
-if os.environ.get('WITH_EMACS') != '1':
+if os.environ.get('WITH_EMACS') == '1':
+ # Hacky reimplementation of include to workaround limitations of
+ # sphinx-doc
+ accumulator='.. include:: /../emacs/rstdoc.rsti\n\n' # in the source tree
+ rsti_dir=os.environ.get('RSTI_DIR')
+ # the other files are from the build tree
+ for file in ['notmuch.rsti', 'notmuch-lib.rsti', 'notmuch-show.rsti', 'notmuch-tag.rsti']:
+ with open(rsti_dir+'/'+file) as f:
+ for line in f:
+ accumulator += line
+ rst_epilog=accumulator
+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')
# The name of the Pygments (syntax highlighting) style to use.
diff --git a/doc/notmuch-emacs.rst b/doc/notmuch-emacs.rst
index 1655e2f0..de47b726 100644
--- a/doc/notmuch-emacs.rst
+++ b/doc/notmuch-emacs.rst
@@ -377,13 +377,3 @@ suffix exist it will be read instead (just one of these, chosen in this
order). Most often users create ``~/.emacs.d/notmuch-config.el`` and just
work with it. If Emacs was invoked with the ``-q`` or ``--no-init-file``
options, ``notmuch-init-file`` is not read.
-
-.. include:: ../emacs/rstdoc.rsti
-
-.. include:: ../emacs/notmuch.rsti
-
-.. include:: ../emacs/notmuch-lib.rsti
-
-.. include:: ../emacs/notmuch-show.rsti
-
-.. include:: ../emacs/notmuch-tag.rsti
--
2.26.2
next prev parent reply other threads:[~2020-05-31 16:15 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-26 17:03 doc build warnings when building out-of-tree Daniel Kahn Gillmor
2020-05-30 16:28 ` David Bremner
2020-05-31 12:26 ` David Bremner
2020-05-31 16:15 ` David Bremner [this message]
2020-05-31 20:29 ` [PATCH] doc: fix for out-of-tree builds of notmuch-emacs docs Tomi Ollila
2020-06-01 12:12 ` David Bremner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://notmuchmail.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200531161503.4100110-1-david@tethera.net \
--to=david@tethera.net \
--cc=dkg@fifthhorseman.net \
--cc=notmuch@notmuchmail.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://yhetil.org/notmuch.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).