[petsc-dev] User(s) manual sections field in manual pages?
Jed Brown
jed at jedbrown.org
Mon Jun 17 15:39:42 CDT 2019
Lawrence Mitchell <wence at gmx.li> writes:
>> On 17 Jun 2019, at 19:50, Jed Brown via petsc-dev <petsc-dev at mcs.anl.gov> wrote:
>
> [...]
>>
>> As for strategy, we have these primary forms of documentation:
>>
>> * Users Manual
>>
>> A lot of value here is in cross-references between the manual and man
>> pages. PETSc has a special pass where it creates links from to all
>> the man pages every time a keyword appears, including in listings.
>> I'd rather not be verbose about it in rst source as in
>> :c:func:`~.PetscScalar`.
>
> Yes, this is a disadvantage of OOTB sphinx (unless we've misconfigured
> it). You have to explicitly mark up the links in the long-form
> documentation that you would like to link. I guess we could do it
> after the fact, but have not done so. As a result, we're rather
> inconsistent about it. This is "fine" if you're reading the whole
> manual with a Python terminal up and running to check docstrings, but
> hardly seamless.
The noisiness of the native RST source representation is also pretty
gross in my opinion.
>> Also, the Firedrake manual (and I think
>> Sphinx as a whole) doesn't hyperlink keywords appearing in source.
>> So, for example, there is no link from CircleManifoldMesh to a man
>> page.
>>
>> https://www.firedrakeproject.org/extruded-meshes.html#generating-extruded-meshes-in-firedrake
>
> It ought, I suppose, be possible to write a plugin that adds links automagically to all keywords in formatted source, but I don't know the details of how these are written.
Right, we have to learn how to add such things. If you know where to
look, it would be helpful.
>> * Manual pages
>>
>> I need to learn a bit more about the numpydoc and breathe
>> implementations to be able to write a Sowing parser for it.
>
> Would this be changing the format for man page docs to numpydoc? I don't know enough about the current setup one-way or another to know if
I guess that could be considered, but I meant parsing Sowing to talk to
Sphinx in the same way that numpydoc parses its format for Sphinx. I
haven't found a nice tutorial on this so I figured I would work it out
from the implementations of numpydoc/breathe.
>>> For instance, can we start by just generating stub .rst-formatted man
>>> pages, which include a link to the existing man pages?
>>
>> I guess, but all the value is in cross-references. Also, I don't care
>> to have an rst-formatted representation appear in a file.
>
> This is certainly a disadvantage of our approach: docstrings as formatted in the python repl are ugly if they contain much linking (and/or maths). Having a setup that minimises the amount of noise in the text format is probably preferable.
I care about the source format too because that's what people need to
edit.
More information about the petsc-dev
mailing list