diff mbox series

INSTALL: note about make man with Asciidoctor backend

Message ID 20210512064128.15411-1-bagasdotme@gmail.com (mailing list archive)
State New, archived
Headers show
Series INSTALL: note about make man with Asciidoctor backend | expand

Commit Message

Bagas Sanjaya May 12, 2021, 6:41 a.m. UTC
"make man" can now be also done with Asciidoctor's manpage backend
instead of asciidoc+xmlto.

Update INSTALL to reflect that.

Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
---

 This patch is based on  "doc: add an option to have Asciidoctor build
 man pages directly" series by brian m. carlson [1]. It can be added
 to that series.

 [1]:
https://lore.kernel.org/git/20210512021138.63598-1-sandals@crustytoothpaste.net/

 INSTALL | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

Comments

Junio C Hamano May 12, 2021, 7 a.m. UTC | #1
Bagas Sanjaya <bagasdotme@gmail.com> writes:

> "make man" can now be also done with Asciidoctor's manpage backend
> instead of asciidoc+xmlto.
>
> Update INSTALL to reflect that.
>
> Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
> ---
>
>  This patch is based on  "doc: add an option to have Asciidoctor build
>  man pages directly" series by brian m. carlson [1]. It can be added
>  to that series.

It's not like "can be"; it would not make any sense to queue this
patch before queuing those two patches below it ;-)

Not everybody with Asciidoctor can do the "man" without xmlto; they
must have recent enough vintage of Asciidoctor, or they need xmlto.
The second hunk makes it quite clear, but the updated text in the
first hunk falls a bit short to convey that and needs a bit more
work to clarify, I would think.

> diff --git a/INSTALL b/INSTALL
> index 66389ce059..89e31566c3 100644
> --- a/INSTALL
> +++ b/INSTALL
> @@ -184,8 +184,9 @@ Issues of note:
>  
>     "make doc" builds documentation in man and html formats; there are
>     also "make man", "make html" and "make info". Note that "make html"
> -   requires asciidoc, but not xmlto. "make man" (and thus make doc)
> -   requires both.
> +   requires asciidoc, but not xmlto. "make man" requires either
> +   Asciidoctor or asciidoc+xmlto. "make doc" requires both asciidoc
> +   and xmlto.

As "make doc" is "make -C Documentaiton all",
   "make html" is "make -C Documentaiton html",
   "make man" is "make -C Documentaiton man",
and 
   "make -C Documentation all" is "make -C Documentation html man"

it seems that those who choose to go xmlto-less route for manpages
should not need xmlto while doing "make doc", so the last part of
the updated text is not quite accurate, no?

> @@ -201,6 +202,11 @@ Issues of note:
>     use Asciidoctor (requires Ruby) by passing USE_ASCIIDOCTOR=YesPlease
>     to make. You need at least Asciidoctor version 1.5.
>  
> +   You can also do "make man" using Asciidoctor's manpage backend in
> +   place of xmlto by passing USE_ASCIIDOCTOR_MANPAGE=YesPlease. Version
> +   2.0 or later is highly recommended, as these version properly handle
> +   apostrophes.
> +

Hmph, I wasn't closely following the previous discussion, but is the
apostrophes the primary reason why anything below 2.0 is not usable?

I actually do not mind, for clarity and brevity's sake, to give
readers a bit of white lie and just say something along the lines of

    If you use Asciidoctor version 2.0 or later, you can choose to
    directly generate manpages with its manpage backend, instaed of
    using xmlto in between, by passing USE_ASCIIDOCTOR_MANPAGE=YesPlease
    to "make man".

to _require_ 2.0 without even hinting that earlier versions might be
usable.

In any case, thanks for a good start.
Felipe Contreras May 12, 2021, 8:13 a.m. UTC | #2
Junio C Hamano wrote:
> Bagas Sanjaya <bagasdotme@gmail.com> writes:
> 
> > "make man" can now be also done with Asciidoctor's manpage backend
> > instead of asciidoc+xmlto.
> >
> > Update INSTALL to reflect that.
> >
> > Signed-off-by: Bagas Sanjaya <bagasdotme@gmail.com>
> > ---
> >
> >  This patch is based on  "doc: add an option to have Asciidoctor build
> >  man pages directly" series by brian m. carlson [1]. It can be added
> >  to that series.
> 
> It's not like "can be"; it would not make any sense to queue this
> patch before queuing those two patches below it ;-)
> 
> Not everybody with Asciidoctor can do the "man" without xmlto; they
> must have recent enough vintage of Asciidoctor, or they need xmlto.

This is something yet to be determined (I will investigate).

It's likely that they *can* do `make man` without xmlto, but perhaps
they wouldn't have a perfect output (yet to be determined).

> > @@ -201,6 +202,11 @@ Issues of note:
> >     use Asciidoctor (requires Ruby) by passing USE_ASCIIDOCTOR=YesPlease
> >     to make. You need at least Asciidoctor version 1.5.
> >  
> > +   You can also do "make man" using Asciidoctor's manpage backend in
> > +   place of xmlto by passing USE_ASCIIDOCTOR_MANPAGE=YesPlease. Version
> > +   2.0 or later is highly recommended, as these version properly handle
> > +   apostrophes.
> > +
> 
> Hmph, I wasn't closely following the previous discussion, but is the
> apostrophes the primary reason why anything below 2.0 is not usable?

"Not usable"?

I haven't been able to reproduce the original supposed problem, but even
if true, the man pages would be quite usable.

(not beeing able to copy-paste chunks of code from a man page with
apostrophes can't be hardly considered "unusable").


Either way, more work is needed to figure out what's going on.

Cheers.
Martin Ågren May 13, 2021, 1:41 p.m. UTC | #3
On Wed, 12 May 2021 at 10:13, Felipe Contreras
<felipe.contreras@gmail.com> wrote:
>
> Junio C Hamano wrote:
> > Bagas Sanjaya <bagasdotme@gmail.com> writes:
> >
> > > +   You can also do "make man" using Asciidoctor's manpage backend in
> > > +   place of xmlto by passing USE_ASCIIDOCTOR_MANPAGE=YesPlease. Version
> > > +   2.0 or later is highly recommended, as these version properly handle
> > > +   apostrophes.
> > > +
> >
> > Hmph, I wasn't closely following the previous discussion, but is the
> > apostrophes the primary reason why anything below 2.0 is not usable?
>
> "Not usable"?
>
> I haven't been able to reproduce the original supposed problem, but even
> if true, the man pages would be quite usable.

Even early 2.0.x had some issues [1]. It's always debatable whether they're
significant or not, i.e., is a significant speed-up worth it if the
result is just-as-informative-but-a-bit-ugly-here-and-there? We should
provide some rough background here to help people and distros decide.
Maybe something like

  "This can be quite a bit faster and requires fewer dependencies, but
   please note that this is early work: there are some typographical
   issues we know of, and there might be others."

but hopefully phrased better than that. I would suggest the commit
message saying something like "I skimmed through the doc-diff between
the asciidoctor-with-xmlto and asciidoctor-without-xmlto (using
asciidoctor v2.x.y) -- there are quite many minor differences, but
nothing particularly jarring stands out".

[1] https://lore.kernel.org/git/20190325190041.GM4047@pobox.com/

Martin
Junio C Hamano May 13, 2021, 8:23 p.m. UTC | #4
Martin Ågren <martin.agren@gmail.com> writes:

>> > Bagas Sanjaya <bagasdotme@gmail.com> writes:
>> >
>> > > +   You can also do "make man" using Asciidoctor's manpage backend in
>> > > +   place of xmlto by passing USE_ASCIIDOCTOR_MANPAGE=YesPlease. Version
>> > > +   2.0 or later is highly recommended, as these version properly handle
>> > > +   apostrophes.
>> ...
>
> Even early 2.0.x had some issues [1]. It's always debatable whether they're
> significant or not, i.e., is a significant speed-up worth it if the
> result is just-as-informative-but-a-bit-ugly-here-and-there? We should
> provide some rough background here to help people and distros decide.

What does "properly handle apostrophes" refer to exactly?  I got an
impression that it was the pretty-quoting that breaks cut-and-paste,
which is a usability issue for manpages.

> Maybe something like
>
>   "This can be quite a bit faster and requires fewer dependencies, but
>    please note that this is early work: there are some typographical
>    issues we know of, and there might be others."
>
> but hopefully phrased better than that.

That looks like a good starting point.
Felipe Contreras June 2, 2021, 8:07 p.m. UTC | #5
Martin Ågren wrote:
> On Wed, 12 May 2021 at 10:13, Felipe Contreras
> <felipe.contreras@gmail.com> wrote:
> >
> > Junio C Hamano wrote:
> > > Bagas Sanjaya <bagasdotme@gmail.com> writes:
> > >
> > > > +   You can also do "make man" using Asciidoctor's manpage backend in
> > > > +   place of xmlto by passing USE_ASCIIDOCTOR_MANPAGE=YesPlease. Version
> > > > +   2.0 or later is highly recommended, as these version properly handle
> > > > +   apostrophes.
> > > > +
> > >
> > > Hmph, I wasn't closely following the previous discussion, but is the
> > > apostrophes the primary reason why anything below 2.0 is not usable?
> >
> > "Not usable"?
> >
> > I haven't been able to reproduce the original supposed problem, but even
> > if true, the man pages would be quite usable.
> 
> Even early 2.0.x had some issues [1].
> [1] https://lore.kernel.org/git/20190325190041.GM4047@pobox.com/

That issue affects only the docbook generation, not direct man pages.

So far nobody has mentioned any issues with USE_ASCIIDOCTOR_MANPAGE=1 in
older asciidoctor, especially not regarding apostrophes.
diff mbox series

Patch

diff --git a/INSTALL b/INSTALL
index 66389ce059..89e31566c3 100644
--- a/INSTALL
+++ b/INSTALL
@@ -184,8 +184,9 @@  Issues of note:
 
    "make doc" builds documentation in man and html formats; there are
    also "make man", "make html" and "make info". Note that "make html"
-   requires asciidoc, but not xmlto. "make man" (and thus make doc)
-   requires both.
+   requires asciidoc, but not xmlto. "make man" requires either
+   Asciidoctor or asciidoc+xmlto. "make doc" requires both asciidoc
+   and xmlto.
 
    "make install-doc" installs documentation in man format only; there
    are also "make install-man", "make install-html" and "make
@@ -201,6 +202,11 @@  Issues of note:
    use Asciidoctor (requires Ruby) by passing USE_ASCIIDOCTOR=YesPlease
    to make. You need at least Asciidoctor version 1.5.
 
+   You can also do "make man" using Asciidoctor's manpage backend in
+   place of xmlto by passing USE_ASCIIDOCTOR_MANPAGE=YesPlease. Version
+   2.0 or later is highly recommended, as these version properly handle
+   apostrophes.
+
    There are also "make quick-install-doc", "make quick-install-man"
    and "make quick-install-html" which install preformatted man pages
    and html documentation. To use these build targets, you need to