From: Jonathan Corbet <corbet@lwn.net>
To: "Nícolas F. R. A. Prado" <nfraprado@protonmail.com>
Cc: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org,
lkcamp@lists.libreplanetbr.org, andrealmeid@collabora.com
Subject: Re: [PATCH v2] docs: automarkup.py: Allow automatic cross-reference inside C namespace
Date: Wed, 18 Nov 2020 13:37:04 -0700 [thread overview]
Message-ID: <20201118133704.43977072@lwn.net> (raw)
In-Reply-To: <20201117021107.214704-1-nfraprado@protonmail.com>
On Tue, 17 Nov 2020 02:12:01 +0000
Nícolas F. R. A. Prado <nfraprado@protonmail.com> wrote:
> Sphinx 3.1 introduced namespaces for C cross-references. With this,
> each C domain type/function declaration is put inside the namespace that
> was active at the time of its declaration.
>
> Add support for automatic cross-referencing inside C namespaces by
> checking whether the corresponding source file had a C namespace Sphinx
> directive, and if so, try cross-referencing inside of it before going to
> the global scope.
>
> This assumes there's only one namespace (if any) per rst file.
>
> Signed-off-by: Nícolas F. R. A. Prado <nfraprado@protonmail.com>
> ---
>
> To those following from v1:
>
> I ended up doing the simplest solution possible, which is to just directly read
> the rst source corresponding to the doc page right before doing the automarkup.
> It's not very efficient in the sense that the source is being read
> twice (first by Sphinx, then by this), but it sidesteps the "data sharing
> between processes" issue, so parallel_read_safe can be reenabled, and I didn't
> notice any performance hit from this patch (as opposed to the big hit from v1).
> Works with both Sphinx 2 and 3.
The solution does lack elegance, but it is a solution, which is more than
we had before :) That said, rather than re-opening and re-reading the
file, why not just connect to the source-read event, which will happily
hand you the document source that it has already read?
Thanks,
jon
next prev parent reply other threads:[~2020-11-18 20:37 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-17 2:12 [PATCH v2] docs: automarkup.py: Allow automatic cross-reference inside C namespace Nícolas F. R. A. Prado
2020-11-17 5:47 ` Mauro Carvalho Chehab
2020-11-17 12:30 ` Nícolas F. R. A. Prado
2020-11-18 20:38 ` Jonathan Corbet
2020-11-18 20:37 ` Jonathan Corbet [this message]
2020-11-18 23:53 ` Nícolas F. R. A. Prado
2020-11-30 19:57 ` Jonathan Corbet
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201118133704.43977072@lwn.net \
--to=corbet@lwn.net \
--cc=andrealmeid@collabora.com \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=lkcamp@lists.libreplanetbr.org \
--cc=mchehab+huawei@kernel.org \
--cc=nfraprado@protonmail.com \
/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.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.