@Daniel: I added you to this discussion. May you are interested in, 
it is about the parse-headers functionality from Mauro.

Am 16.08.2016 um 20:22 schrieb Mauro Carvalho Chehab <mche...@infradead.org>:

> Em Mon, 15 Aug 2016 10:21:07 +0200
> Markus Heiser <markus.hei...@darmarit.de> escreveu:
> 
>> Am 14.08.2016 um 20:09 schrieb Jonathan Corbet <cor...@lwn.net>:

...

>>> but stopped at parse-header.
>>> At this point, I have a few requests.  These are in approximate order of
>>> decreasing importance, but they're all important, I think.
> 
> After writing the PDF support, I'm starting to think that maybe we
> should migrate the entire functionality to the Sphinx extension.
> The rationale is that we won't need to be concerned about output
> specific escape codes there.

What do you mean with "output specific escape codes"? This: 

<SNIP>----
#
# Add escape codes for special characters
#
$data =~ s,([\_\`\*\<\>\&\\\\:\/\|]),\\$1,g;

$data =~ s,DEPRECATED,**DEPRECATED**,g;
<SNIP>----

will be resist, even if you implement it in python.


>>> - The new directive could really use some ... documentation.  Preferably in
>>> kernel-documentation.rst with the rest.  What is parse-header, how does
>>> it differ from kernel-doc, why might a kernel developer doing
>>> documentation want (or not want) to use it?  That's all pretty obscure
>>> now.  If we want others to jump onto this little bandwagon of ours, we
>>> need to make sure it's all really clear.  
>> 
>> This could be answered by Mauro.
> 
> We use it to allow including an entire header file as-is at the
> documentation, and cross-reference it with the documents.
> 
> IMO, this is very useful to document the ioctl UAPI. There, the most
> important things to be documented are the ioctl themselves. We don't
> have any way to document via kernel-doc (as they're #define macros).
> 
> Also, when documenting an ioctl, we want to document the structures
> that are used (most media ioctls use a struct instead of a single value).
> 
> So, what we do is that we write a proper description for the ioctl and
> everything related to it outside the source code. As we want to be
> sure that everything in the header is documented, we use the
> "parse-header.pl" (ok, this name really sucks) to create cross-references
> between the header and the documentation itself.
> 
> So, it is actually a script that replaces all occurrences of typedefs,
> defines, structs, functions, enums into references to the uAPI
> documentation.
> 
> This is is somewhat equivalent to:
>       .. code-block:: c
> 
> Or, even better, it resembles the Doxygen's \example directive:
>       https://www.stack.nl/~dimitri/doxygen/manual/commands.html#cmdexample
> 
> With produces a parsed file, like this one:
>       https://linuxtv.org/docs/libdvbv5/dvb-fe-tool_8c-example.html
> 
> Except that:
> 
> 1) It doesn't randomly painting the file;
> 
> 2) All places where the a typedef, define, struct, struct member,
> function or enum exists are replaced by a cross-reference to the
> documentation (except if explicitly defined to not do that, via a
> configuration file).
> 
> That, plus the nitpick mode at Sphinx, allows us to check what
> parts of the uAPI file aren't documented.
> 
>>> - Along those lines, is parse-header the right name for this thing?
>>> "Parsing" isn't necessarily the goal of somebody who uses this directive,
>>> right?  They want to extract documentation information.  Can we come up
>>> with a better name?  
>> 
>> Mauro, what is your suggestion and how would we go on in this topic?
> 
> Maybe we could call it as: "include-c-code-block" or something similar.

Hmm, that's not any better, IMHO ... there is a 'parsed-literal' so, what's
wrong with a 'parsed-header' directive or for my sake ' parse-c-header'.
IMHO it is very unspecific what this directive does and it might be changed in
the near future if someone (e.g. Daniel [1]) see more use cases then the one 
yet.

[1] https://www.mail-archive.com/linux-media%40vger.kernel.org/msg101129.html

-- Markus --

> Regards,
> Mauro

--
To unsubscribe from this list: send the line "unsubscribe linux-doc" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to