git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH 1/2] doc: add an option to have Asciidoctor build man pages directly

From
Jeff King <peff@peff.net>
Date
May 12, 2021, 06:22 UTC
Message-ID
<YJt0Dv7HP2VnLLwv@coredump.intra.peff.net>
In-Reply-To
<20210512021138.63598-1-sandals@crustytoothpaste.net>
On Wed, May 12, 2021 at 02:11:37AM +0000, brian m. carlson wrote:
Show 10 quoted lines
> @@ -367,9 +370,16 @@ $(OBSOLETE_HTML): %.html : %.txto asciidoc.conf asciidoctor-extensions.rb GIT-AS
>  manpage-base-url.xsl: manpage-base-url.xsl.in
>  	$(QUIET_GEN)sed "s|@@MAN_BASE_URL@@|$(MAN_BASE_URL)|" $< > $@
>  
> +ifdef TXT_TO_MAN
> +%.1 %.5 %.7 : %.txt asciidoc.conf asciidoctor-extensions.rb GIT-ASCIIDOCFLAGS
> +	$(QUIET_ASCIIDOC)$(RM) $@+ $@ && \
> +	$(TXT_TO_MAN) -o $@+ $< && \
> +	mv $@+ $@
> +else

This depends on GIT-ASCIIDOCFLAGS, which is good. But I think we'd also want to tell that file whether we are using the direct backend or not. Otherwise, doing:

  make USE_ASCIIDOCTOR=1 git.1
  make USE_ASCIIDOCTOR=1 USE_ASCIIDOCTOR_MANPAGE=1 git.1

gets confused. Because git.1 is more recent than git.txt, it things there is nothing to build in the second case. I think you want:

diff --git a/Documentation/Makefile b/Documentation/Makefile
index 536d9a5f3d..4b66a61f51 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -337,7 +337,7 @@ mergetools-list.made: ../git-mergetool--lib.sh $(wildcard ../mergetools/*)
 		show_tool_names can_merge "* " || :' >mergetools-merge.txt && \
 	date >$@
 
-TRACK_ASCIIDOCFLAGS = $(subst ','\'',$(ASCIIDOC_COMMON):$(ASCIIDOC_HTML):$(ASCIIDOC_DOCBOOK))
+TRACK_ASCIIDOCFLAGS = $(subst ','\'',$(ASCIIDOC_COMMON):$(ASCIIDOC_HTML):$(ASCIIDOC_DOCBOOK):$(USE_ASCIIDOCTOR_MANPAGE))
 
 GIT-ASCIIDOCFLAGS: FORCE
 	@FLAGS='$(TRACK_ASCIIDOCFLAGS)'; \

With that change, plus a patch I'll send in a minute, it's easy to run
doc-diff on the result.

> diff --git a/Documentation/asciidoctor-extensions.rb b/Documentation/asciidoctor-extensions.rb
> index d906a00803..40fa87b121 100644
> --- a/Documentation/asciidoctor-extensions.rb
> +++ b/Documentation/asciidoctor-extensions.rb
> @@ -15,6 +15,8 @@ module Git
>            "#{target}(#{attrs[1]})</ulink>"
>          elsif parent.document.basebackend? 'html'
>            %(<a href="#{prefix}#{target}.html">#{target}(#{attrs[1]})</a>)
> +        elsif parent.document.basebackend? 'manpage'
> +          %(\\fB#{target}\\fP\\fR(#{attrs[1]})\\fP)

Unfortunately, this doesn't seem to work. Diffing the rendered docs
between regular asciidoctor-then-xmlto and direct-to-manpage shows a lot
of hunks like:

              For more details about the <pathspec> syntax, see the pathspec
  -           entry in gitglossary(7).
  +           entry in \fBgitglossary\fP\fR(7)\fP.

-Peff
Previous: brian m. carlsonNext: Jeff King
Message 22 of 45 in “doc: use asciidoctor to build man pages directly”
  1. doc: use asciidoctor to build man pages directlyFelipe Contreras, May 11, 2021
  2. brian m. carlsonMay 11, 2021
  3. Felipe ContrerasMay 12, 2021
  4. 1/2 doc: add an option to have Asciidoctor build man pages directlybrian m. carlson, May 12, 2021
  5. 2/2 doc: remove GNU_ROFF optionbrian m. carlson, May 12, 2021
  6. Eric SunshineMay 12, 2021
  7. brian m. carlsonMay 12, 2021
  8. Felipe ContrerasMay 12, 2021
  9. brian m. carlsonMay 14, 2021
  10. Felipe ContrerasMay 15, 2021
  11. Martin ÅgrenMay 13, 2021
  12. Bagas SanjayaMay 12, 2021
  13. Felipe ContrerasMay 12, 2021
  14. brian m. carlsonMay 13, 2021
  15. Felipe ContrerasMay 14, 2021
  16. Felipe ContrerasMay 15, 2021
  17. Felipe ContrerasMay 12, 2021
  18. brian m. carlsonMay 13, 2021
  19. Felipe ContrerasMay 14, 2021
  20. Bagas SanjayaMay 12, 2021
  21. brian m. carlsonMay 13, 2021
  22. Jeff KingMay 12, 2021
  23. Jeff KingMay 12, 2021
  24. Jeff KingMay 12, 2021
  25. Felipe ContrerasMay 12, 2021
  26. Martin ÅgrenMay 13, 2021
  27. Felipe ContrerasMay 13, 2021
  28. Eric SunshineMay 12, 2021
  29. Jeff KingMay 12, 2021
  30. Martin ÅgrenMay 14, 2021
  31. 0/2 Asciidoctor native manpage buildsbrian m. carlson, May 14, 2021
  32. 1/2 doc: add an option to have Asciidoctor build man pages directlybrian m. carlson, May 14, 2021
  33. Junio C HamanoMay 14, 2021
  34. Jeff KingMay 14, 2021
  35. Felipe ContrerasMay 14, 2021
  36. brian m. carlsonMay 14, 2021
  37. Felipe ContrerasMay 14, 2021
  38. Felipe ContrerasMay 14, 2021
  39. Felipe ContrerasMay 14, 2021
  40. brian m. carlsonMay 14, 2021
  41. Felipe ContrerasMay 14, 2021
  42. 2/2 doc: remove GNU_ROFF optionbrian m. carlson, May 14, 2021
  43. Felipe ContrerasMay 14, 2021
  44. brian m. carlsonMay 14, 2021
  45. Felipe ContrerasMay 14, 2021

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.