All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Maydell <peter.maydell@linaro.org>
To: Markus Armbruster <armbru@redhat.com>
Cc: "John Snow" <jsnow@redhat.com>,
	"Daniel P. Berrangé" <berrange@redhat.com>,
	"QEMU Developers" <qemu-devel@nongnu.org>,
	"Stefan Hajnoczi" <stefanha@redhat.com>,
	"Michael Roth" <mdroth@linux.vnet.ibm.com>
Subject: Re: [PATCH 00/29] Convert QAPI doc comments to generate rST instead of texinfo
Date: Fri, 7 Feb 2020 17:10:23 +0000	[thread overview]
Message-ID: <CAFEAcA-owBQMnvY5Asa4m4DUF-hBqRTmu8C7fktfvMRE2HZfgg@mail.gmail.com> (raw)
In-Reply-To: <877e0ynxhx.fsf@dusky.pond.sub.org>

On Fri, 7 Feb 2020 at 17:00, Markus Armbruster <armbru@redhat.com> wrote:
>
> Peter Maydell <peter.maydell@linaro.org> writes:
>
> > This series switches all our QAPI doc comments over from
> > texinfo format to rST.
> >
> > The basic approach is somewhat similar to how we deal with kerneldoc
> > and hxtool: we have a custom Sphinx extension which is passed a
> > filename which is the json file it should run the QAPI parser over and
> > generate documentation for. Unlike 'kerneldoc' but somewhat like
> > hxtool, I have chosed to generate documentation by generating a tree
> > of docutils nodes, rather than by generating rST source that is then
> > fed to the rST parser to generate docutils nodes.  Individual lumps of
> > doc comment go to the rST parser, but the structured parts we render
> > directly. This makes it easier to get the structure and heading level
> > nesting correct.
> >
> > Rather than trying to exactly handle all the existing comments I have
> > opted (as Markus suggested) to tweak them where this seemed more
> > sensible than contorting the rST generator to deal with
> > weirdnesses. The principal changes are:
> >  * whitespace is now significant, and multiline definitions must have
> >    their second and subsequent lines indented to match the first line
> >  * general rST format markup is permitted, not just the small set of
> >    markup the old texinfo generator handled. For most things (notably
> >    bulleted and itemized lists) the old format is the same as rST was.
> >  * Specific things that might trip people up:
> >    - instead of *bold* and _italic_ rST has **bold** and *italic*
>
> Actually, qapi-code-gen.txt documents and doc.py implements *strong* and
> _emphasis_.  Texinfo commonly renders them as bold and italic when the
> output format supports that.  rST has **strong** and *emphasis*.
>
> Your series adjusts emphasis markup for rST [PATCH 18].  Since it
> doesn't touch strong markup, strong silently becomes emphasis.  I guess
> that's okay, perhaps even an improvement, but double-checking the actual
> uses of this markup wouldn't hurt.

Yeah, that would be a good plan.
 git grep '\*[^*]*\*' qapi/*.json
(and eyeball-filtering out the false hits) shows just one use:

qapi/introspect.json:# Note: the QAPI schema is also used to help
define *internal*

I can put a patch on the end which converts that to **internal**
once the rST generator is in use.

> >    - lists need a preceding and following blank line
> >    - a lone literal '*' will need to be backslash-escaped to
> >      avoid a rST syntax error
> >  * the old leading '|' for example (literal text) blocks is replaced
> >    by the standard rST '::' literal block.
> >  * headings and subheadings must now be in a freeform documentation
> >    comment of their own
>
> Can we simply use rST instead?  See my review of PATCH 18.

No, we can't (see my reply to that review). In theory you could have
the heading syntax be a rST heading, but that is not feasible to
recognise in the Python script[*] and it gives the impression that
it is just an inline rST heading, not something that's more complicated
and structured.

[*] You'd need to manually re-implement the weird thing rST does
where practically any kind of underlining is valid and it figures
out which one means which depth by looking at the usage through
the whole document. You'd have to do bizarre stuff like running
through the entire set of doc comments once doing no output but
just looking at heading underline characters to guess which one
is which depth, and then once you'd figured that out you could
do it all over again actually generating the doc.

thanks
-- PMM


  reply	other threads:[~2020-02-07 17:11 UTC|newest]

Thread overview: 77+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-06 17:30 [PATCH 00/29] Convert QAPI doc comments to generate rST instead of texinfo Peter Maydell
2020-02-06 17:30 ` [PATCH 01/29] configure: Allow user to specify sphinx-build binary Peter Maydell
2020-02-06 17:30 ` [PATCH 02/29] configure: Check that sphinx-build is using Python 3 Peter Maydell
2020-02-07 16:17   ` Markus Armbruster
2020-02-07 16:30     ` Peter Maydell
2020-02-08  7:50       ` Markus Armbruster
2020-02-08 13:11         ` Peter Maydell
2020-02-06 17:30 ` [PATCH 03/29] Makefile: Fix typo in dependency list for interop manpages Peter Maydell
2020-02-06 17:30 ` [PATCH 04/29] qga/qapi-schema.json: Fix missing '-' in GuestDiskBusType doc comment Peter Maydell
2020-02-07  8:16   ` Markus Armbruster
2020-02-06 17:30 ` [PATCH 05/29] qga/qapi-schema.json: Fix indent level on doc comments Peter Maydell
2020-02-07  8:18   ` Markus Armbruster
2020-02-07  8:22     ` Markus Armbruster
2020-02-06 17:30 ` [PATCH 06/29] qga/qapi-schema.json: minor format fixups for rST Peter Maydell
2020-02-07  8:32   ` Markus Armbruster
2020-02-13 16:20     ` Peter Maydell
2020-02-14 13:16       ` Markus Armbruster
2020-02-06 17:30 ` [PATCH 07/29] qapi/block-core.json: Use literal block for ascii art Peter Maydell
2020-02-07  8:50   ` Markus Armbruster
2020-02-07  9:27     ` Peter Maydell
2020-02-06 17:30 ` [PATCH 08/29] qapi: Use ':' after @argument in doc comments Peter Maydell
2020-02-07  9:28   ` Markus Armbruster
2020-02-07  9:33     ` Max Reitz
2020-02-07 10:24     ` Kevin Wolf
2020-02-07 11:05       ` Peter Maydell
2020-02-07 14:43         ` Markus Armbruster
2020-02-07 15:01           ` Max Reitz
2020-02-07 15:40             ` Kevin Wolf
2020-02-07 15:24           ` Peter Maydell
2020-02-08  7:54             ` Markus Armbruster
2020-02-08 13:22               ` Peter Maydell
2020-02-06 17:30 ` [PATCH 09/29] qapi: Fix indent level on doc comments in json files Peter Maydell
2020-02-07  9:31   ` Markus Armbruster
2020-02-06 17:30 ` [PATCH 10/29] qapi: Remove hardcoded tabs Peter Maydell
2020-02-07  9:32   ` Markus Armbruster
2020-02-06 17:30 ` [PATCH 11/29] qapi/ui.json: Put input-send-event body text in the right place Peter Maydell
2020-02-07  9:45   ` Markus Armbruster
2020-02-06 17:30 ` [PATCH 12/29] qapi: Explicitly put "foo: dropped in n.n" notes into Notes section Peter Maydell
2020-02-07 10:06   ` Markus Armbruster
2020-02-07 14:23     ` Eric Blake
2020-02-06 17:30 ` [PATCH 13/29] qapi/ui.json: Avoid `...' texinfo style quoting Peter Maydell
2020-02-07 10:13   ` Markus Armbruster
2020-02-06 17:30 ` [PATCH 14/29] qapi/block-core.json: Use explicit bulleted lists Peter Maydell
2020-02-07 12:07   ` Markus Armbruster
2020-02-06 17:30 ` [PATCH 15/29] qapi/ui.json: " Peter Maydell
2020-02-06 17:30 ` [PATCH 16/29] qapi/{block, misc, tmp}.json: " Peter Maydell
2020-02-07 10:33   ` Philippe Mathieu-Daudé
2020-02-06 17:30 ` [PATCH 17/29] qapi: Add blank lines before " Peter Maydell
2020-02-07 10:11   ` Philippe Mathieu-Daudé
2020-02-06 17:30 ` [PATCH 18/29] qapi/migration.json: Replace _this_ with *this* Peter Maydell
2020-02-07 16:54   ` Markus Armbruster
2020-02-07 17:00     ` Peter Maydell
2020-02-08 14:24       ` Markus Armbruster
2020-02-06 17:30 ` [PATCH 19/29] qapi/qapi-schema.json: Put headers in their own doc-comment blocks Peter Maydell
2020-02-07 15:34   ` Markus Armbruster
2020-02-07 16:13     ` Peter Maydell
2020-02-08 14:10       ` Markus Armbruster
2020-02-08 14:43         ` Peter Maydell
2020-02-06 17:30 ` [PATCH 20/29] qapi/machine.json: Escape a literal '*' in doc comment Peter Maydell
2020-02-06 17:30 ` [PATCH 21/29] scripts/qapi: Move doc-comment whitespace stripping to doc.py Peter Maydell
2020-02-06 17:30 ` [PATCH 22/29] scripts/qapi/parser.py: improve doc comment indent handling Peter Maydell
2020-02-06 17:30 ` [PATCH 23/29] docs/sphinx: Add new qapi-doc Sphinx extension Peter Maydell
2020-02-06 17:30 ` [PATCH 24/29] docs/interop: Convert qemu-ga-ref to rST Peter Maydell
2020-02-06 17:30 ` [PATCH 25/29] docs/interop: Convert qemu-qmp-ref " Peter Maydell
2020-02-06 17:30 ` [PATCH 26/29] qapi: Use rST markup for literal blocks Peter Maydell
2020-02-06 17:30 ` [PATCH 27/29] qga/qapi-schema.json: Add some headings Peter Maydell
2020-02-06 17:30 ` [PATCH 28/29] scripts/qapi: Remove texinfo generation support Peter Maydell
2020-02-06 17:59   ` Peter Maydell
2020-02-06 17:30 ` [PATCH 29/29] docs/devel/qapi-code-gen.txt: Update to new rST backend conventions Peter Maydell
2020-02-06 18:47 ` [PATCH 00/29] Convert QAPI doc comments to generate rST instead of texinfo Peter Maydell
2020-02-06 19:53 ` no-reply
2020-02-06 19:56 ` no-reply
2020-02-07 17:00 ` Markus Armbruster
2020-02-07 17:10   ` Peter Maydell [this message]
2020-02-08 14:15     ` Markus Armbruster
2020-02-08 14:59       ` Peter Maydell
2020-02-10  0:34 ` Aleksandar Markovic

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=CAFEAcA-owBQMnvY5Asa4m4DUF-hBqRTmu8C7fktfvMRE2HZfgg@mail.gmail.com \
    --to=peter.maydell@linaro.org \
    --cc=armbru@redhat.com \
    --cc=berrange@redhat.com \
    --cc=jsnow@redhat.com \
    --cc=mdroth@linux.vnet.ibm.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefanha@redhat.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.