From: Mike Rapoport <rppt@linux.vnet.ibm.com>
To: Jani Nikula <jani.nikula@intel.com>
Cc: Jonathan Corbet <corbet@lwn.net>,
Matthew Wilcox <willy@infradead.org>,
linux-doc@vger.kernel.org
Subject: Re: [PATCH 1/2] Documentation/sphinx: add "nodocs" directive
Date: Tue, 19 Jun 2018 16:09:01 +0300 [thread overview]
Message-ID: <20180619130900.GC19099@rapoport-lnx> (raw)
In-Reply-To: <871sd3xkmx.fsf@intel.com>
On Tue, Jun 19, 2018 at 11:09:42AM +0300, Jani Nikula wrote:
> On Tue, 19 Jun 2018, Mike Rapoport <rppt@linux.vnet.ibm.com> wrote:
> > On Tue, Jun 19, 2018 at 10:29:20AM +0300, Jani Nikula wrote:
> >> On Tue, 19 Jun 2018, Mike Rapoport <rppt@linux.vnet.ibm.com> wrote:
> >> > On Mon, Jun 18, 2018 at 11:01:32PM +0300, Jani Nikula wrote:
> >> >> On Mon, 18 Jun 2018, Mike Rapoport <rppt@linux.vnet.ibm.com> wrote:
> >> >> > When kernel-doc:: specified in .rst document without explicit directives,
> >> >> > it outputs both comment and DOC: sections. If a DOC: section was explictly
> >> >> > included in the same document it will be duplicated. For example, the
> >> >> > output generated for Documentation/core-api/idr.rst [1] has "IDA
> >> >> > description" in the "IDA usage" section and in the middle of the API
> >> >> > reference.
> >> >> >
> >> >> > Addition of "nodocs" directive prevents the duplication without the need to
> >> >> > explicitly define what functions should be include in the API reference.
> >> >> >
> >> >> > [1] https://www.kernel.org/doc/html/v4.17/core-api/idr.html
> >> >> >
> >> >> > Signed-off-by: Mike Rapoport <rppt@linux.vnet.ibm.com>
> >> >> > ---
> >> >> > Documentation/sphinx/kerneldoc.py | 3 +++
> >> >> > 1 file changed, 3 insertions(+)
> >> >> >
> >> >> > diff --git a/Documentation/sphinx/kerneldoc.py b/Documentation/sphinx/kerneldoc.py
> >> >> > index fbedcc3..bc5dd05 100644
> >> >> > --- a/Documentation/sphinx/kerneldoc.py
> >> >> > +++ b/Documentation/sphinx/kerneldoc.py
> >> >> > @@ -50,6 +50,7 @@ class KernelDocDirective(Directive):
> >> >> > 'functions': directives.unchanged_required,
> >> >> > 'export': directives.unchanged,
> >> >> > 'internal': directives.unchanged,
> >> >> > + 'nodocs': directives.unchanged,
> >> >>
> >> >> I'm not convinved this is the prettiest way to achieve what you
> >> >> want. 'nodocs' seems kind of clunky.
> >> >>
> >> >> I'd suggest supporting 'functions' without option arguments, and turning
> >> >> that into kernel-doc -no-doc-sections.
> >> >
> >> > Do you mean something like this:
> >>
> >> Yes.
> >>
> >> >
> >> > diff --git a/Documentation/sphinx/kerneldoc.py b/Documentation/sphinx/kerneldoc.py
> >> > index fbedcc3..9d0a7f0 100644
> >> > --- a/Documentation/sphinx/kerneldoc.py
> >> > +++ b/Documentation/sphinx/kerneldoc.py
> >> > @@ -47,7 +47,7 @@ class KernelDocDirective(Directive):
> >> > optional_arguments = 4
> >> > option_spec = {
> >> > 'doc': directives.unchanged_required,
> >> > - 'functions': directives.unchanged_required,
> >> > + 'functions': directives.unchanged,
> >> > 'export': directives.unchanged,
> >> > 'internal': directives.unchanged,
> >> > }
> >> > @@ -75,8 +75,12 @@ class KernelDocDirective(Directive):
> >> > elif 'doc' in self.options:
> >> > cmd += ['-function', str(self.options.get('doc'))]
> >> > elif 'functions' in self.options:
> >> > - for f in str(self.options.get('functions')).split():
> >> > - cmd += ['-function', f]
> >> > + functions = self.options.get('functions').split()
> >>
> >> Does .split() get upset if there's no argument? Or do you get an empty
> >> string if there are no options? I forget.
> >
> > "".split() gives an empty list.
>
> I tried to say, does self.options.get('functions') return an empty
> string or None if there are no options?
It returns an empty string.
> BR,
> Jani.
>
>
> >
> >> BR,
> >> Jani.
> >>
> >> > + if functions:
> >> > + for f in functions:
> >> > + cmd += ['-function', f]
> >> > + else:
> >> > + cmd += ['-no-doc-sections']
> >> >
> >> > for pattern in export_file_patterns:
> >> > for f in glob.glob(env.config.kerneldoc_srctree + '/' + pattern):
> >> >
> >> >> The usage in patch 2/2 would turn into:
> >> >>
> >> >> .. kernel-doc:: include/linux/idr.h
> >> >> :functions:
> >> >>
> >> >> which I think is much better overall in the rst source, complementing
> >> >> the places where you use :doc:.
> >> >>
> >> >> BR,
> >> >> Jani.
> >> >>
> >> >> > }
> >> >> > has_content = False
> >> >> >
> >> >> > @@ -77,6 +78,8 @@ class KernelDocDirective(Directive):
> >> >> > elif 'functions' in self.options:
> >> >> > for f in str(self.options.get('functions')).split():
> >> >> > cmd += ['-function', f]
> >> >> > + elif 'nodocs' in self.options:
> >> >> > + cmd += ['-no-doc-sections']
> >> >> >
> >> >> > for pattern in export_file_patterns:
> >> >> > for f in glob.glob(env.config.kerneldoc_srctree + '/' + pattern):
> >> >>
> >> >> --
> >> >> Jani Nikula, Intel Open Source Graphics Center
> >> >>
> >>
> >> --
> >> Jani Nikula, Intel Open Source Graphics Center
> >>
>
> --
> Jani Nikula, Intel Open Source Graphics Center
>
--
Sincerely yours,
Mike.
--
To unsubscribe from this list: send the line "unsubscribe linux-doc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2018-06-19 13:09 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-18 13:36 [PATCH 0/2] Documentation/sphinx: add "nodocs" directive Mike Rapoport
2018-06-18 13:36 ` [PATCH 1/2] " Mike Rapoport
2018-06-18 20:01 ` Jani Nikula
2018-06-19 5:03 ` Mike Rapoport
2018-06-19 7:29 ` Jani Nikula
2018-06-19 7:50 ` Mike Rapoport
2018-06-19 8:09 ` Jani Nikula
2018-06-19 13:09 ` Mike Rapoport [this message]
2018-06-18 13:36 ` [PATCH 2/2] docs/idr: use " Mike Rapoport
2018-06-18 17:10 ` [PATCH 0/2] Documentation/sphinx: add " Matthew Wilcox
2018-06-19 14:11 ` Matthew Wilcox
2018-06-19 14:49 ` Mike Rapoport
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=20180619130900.GC19099@rapoport-lnx \
--to=rppt@linux.vnet.ibm.com \
--cc=corbet@lwn.net \
--cc=jani.nikula@intel.com \
--cc=linux-doc@vger.kernel.org \
--cc=willy@infradead.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.
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.