Git Mailing List Archive mirror
 help / color / mirror / Atom feed
* [RFC PATCH 00/12] doc: add tests and reimplement xmlto
@ 2023-04-13 11:57 Felipe Contreras
  2023-04-13 11:57 ` [RFC PATCH 01/12] doc: add test for doc tools output Felipe Contreras
                   ` (11 more replies)
  0 siblings, 12 replies; 13+ messages in thread
From: Felipe Contreras @ 2023-04-13 11:57 UTC (permalink / raw
  To: git
  Cc: Junio C Hamano, Chris Johnsen, Martin Ågren,
	brian m . carlson, Jeff King, Felipe Contreras

It's never clear what a single change does in the myriad of
{asciidoc.py,asciidoctor}{docbook45,docbook5,manpage} tools, not to mention
xmlto and docbook-xsl.

So I decided to create a very simple test to generate a manpage in different
tools, and the result is that nothing works correctly.

Once the test was running correctly I decided to investigate why xmlto wasn't
able to verify docbook5 documents, and it turns out it's just not supported,
and neither it is in xmllint.

While doing so I realized xmlto doesn't do anything for us, so I wrote a simple
script that does the same thing.

Moving all the old hacks to this gen-stylesheet script, I realized a hack from
2006 is not necessary anymore, and DocBook Stylesheets already generate much
better output.

Getting rid of this generates nice aligment for callouts:

     $ git diff            (1)
     $ git diff --cached   (2)
     $ git diff HEAD       (3)

  1. Changes in the working tree not yet staged for the next
     commit.
  2. Changes between the index and your last commit; what you
     would be committing if you run git commit without -a
     option.
  3. Changes in the working tree since your last commit; what
     you would be committing if you run git commit -a

There's a lot of changes not explored in detail, so this is only an RFC but I
think it's clear something like this is the direction to go.

Felipe Contreras (12):
  doc: add test for doc tools output
  doc: add missing manpage docinfo
  doc: remove unnecessary hack for asciidoctor
  test: doc: add test for docbook5
  doc: fix support for multiple docbook backends
  doc: add gen-stylesheet helper
  doc: get rid of xmlto dependency
  test: doc: use temporary stylesheet
  doc: remove references to xmlto
  doc: stylesheet: move all the xslt templates
  test: doc: add check for callouts
  doc: manpage: remove callout hack

 Documentation/.gitignore               |   1 +
 Documentation/Makefile                 |  19 ++--
 Documentation/asciidoc.conf            |  15 +--
 Documentation/gen-stylesheet           |  28 +++++
 Documentation/manpage-bold-literal.xsl |  16 ---
 Documentation/manpage-normal.xsl       |  26 -----
 Documentation/manpage.xsl              |   3 -
 INSTALL                                |   4 +-
 ci/install-dependencies.sh             |   2 +-
 shared.mak                             |   3 +-
 t/t0600-doc-tools.sh                   | 135 +++++++++++++++++++++++++
 11 files changed, 184 insertions(+), 68 deletions(-)
 create mode 100755 Documentation/gen-stylesheet
 delete mode 100644 Documentation/manpage-bold-literal.xsl
 delete mode 100644 Documentation/manpage-normal.xsl
 delete mode 100644 Documentation/manpage.xsl
 create mode 100755 t/t0600-doc-tools.sh

-- 
2.40.0+fc1


^ permalink raw reply	[flat|nested] 13+ messages in thread

* [RFC PATCH 01/12] doc: add test for doc tools output
  2023-04-13 11:57 [RFC PATCH 00/12] doc: add tests and reimplement xmlto Felipe Contreras
@ 2023-04-13 11:57 ` Felipe Contreras
  2023-04-13 11:57 ` [RFC PATCH 02/12] doc: add missing manpage docinfo Felipe Contreras
                   ` (10 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: Felipe Contreras @ 2023-04-13 11:57 UTC (permalink / raw
  To: git
  Cc: Junio C Hamano, Chris Johnsen, Martin Ågren,
	brian m . carlson, Jeff King, Felipe Contreras

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 t/t0600-doc-tools.sh | 91 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 91 insertions(+)
 create mode 100755 t/t0600-doc-tools.sh

diff --git a/t/t0600-doc-tools.sh b/t/t0600-doc-tools.sh
new file mode 100755
index 0000000000..0f9a4053a9
--- /dev/null
+++ b/t/t0600-doc-tools.sh
@@ -0,0 +1,91 @@
+#!/bin/sh
+
+test_description='Check the output of documentation tools'
+
+. ./test-lib.sh
+
+doc_dir="$GIT_BUILD_DIR/Documentation"
+
+command -v asciidoc >/dev/null && test_set_prereq ASCIIDOC
+command -v asciidoctor >/dev/null && test_set_prereq ASCIIDOCTOR
+
+cat >git-foo.txt <<EOF
+git-foo(1)
+===========
+
+NAME
+----
+git-foo - Test command
+
+SYNOPSIS
+--------
+[verse]
+'git-foo' [<arg>]
+
+DESCRIPTION
+-----------
+description
+
+GIT
+---
+Part of the linkgit:git[1] suite
+EOF
+
+cat >git-foo.1.expected <<EOF
+'\" t
+.TH "GIT\-FOO" "1" "2005\-01\-01" "Git 1\&.0\&.0" "Git Manual"
+.ie \n(.g .ds Aq \(aq
+.el       .ds Aq '
+.nh
+.ad l
+.SH "NAME"
+git-foo \- Test command
+.SH "SYNOPSIS"
+.sp
+.nf
+\fIgit\-foo\fR [<arg>]
+.fi
+.sp
+.SH "DESCRIPTION"
+.sp
+description
+.SH "GIT"
+.sp
+Part of the \fBgit\fR(1) suite
+EOF
+
+xmltoman() {
+	base="$1"
+	shift
+	xmlto --skip-validation -m "$doc_dir/manpage-normal.xsl" -m "$doc_dir/manpage-bold-literal.xsl" "$@" man "$base.xml"
+}
+
+build_asciidoc_py() {
+	asciidoc -f "$doc_dir/asciidoc.conf" -amanmanual='Git Manual' -amansource='Git 1.0.0' -arevdate='2005-01-01' -b docbook -d manpage \
+		-o "$1.xml" "$1.txt" &&
+	xmltoman "$1"
+}
+
+build_asciidoctor() {
+	asciidoctor -acompat-mode -atabsize=8 -I "$doc_dir" -rasciidoctor-extensions -alitdd='&#x2d;&#x2d;' \
+		-amanmanual='Git Manual' -amansource='Git 1.0.0' -arevdate='2005-01-01' -b docbook5 -d manpage \
+		-o "$1.xml" "$1.txt" &&
+	xmltoman "$1" -x "$doc_dir"/manpage.xsl
+}
+
+check_manpage() {
+	sed -e '/^\.\\"/d' -e '/^$/d' "$1.1" >"$1.1.actual" &&
+	test_cmp "$1.1.expected" "$1.1.actual"
+}
+
+test_expect_failure ASCIIDOC 'legacy asciidoc.py' '
+	build_asciidoc_py "git-foo" &&
+	check_manpage "git-foo"
+'
+
+test_expect_failure ASCIIDOCTOR 'modern asciidoctor (docbook5)' '
+	build_asciidoctor "git-foo" &&
+	check_manpage "git-foo"
+'
+
+test_done
-- 
2.40.0+fc1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [RFC PATCH 02/12] doc: add missing manpage docinfo
  2023-04-13 11:57 [RFC PATCH 00/12] doc: add tests and reimplement xmlto Felipe Contreras
  2023-04-13 11:57 ` [RFC PATCH 01/12] doc: add test for doc tools output Felipe Contreras
@ 2023-04-13 11:57 ` Felipe Contreras
  2023-04-13 11:57 ` [RFC PATCH 03/12] doc: remove unnecessary hack for asciidoctor Felipe Contreras
                   ` (9 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: Felipe Contreras @ 2023-04-13 11:57 UTC (permalink / raw
  To: git
  Cc: Junio C Hamano, Chris Johnsen, Martin Ågren,
	brian m . carlson, Jeff King, Felipe Contreras

We can remove the whole hack, since asciidoc.py already does that
correctly since 2008.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 Documentation/asciidoc.conf | 3 +++
 t/t0600-doc-tools.sh        | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/Documentation/asciidoc.conf b/Documentation/asciidoc.conf
index 3e4c13971b..303d45dc34 100644
--- a/Documentation/asciidoc.conf
+++ b/Documentation/asciidoc.conf
@@ -56,6 +56,9 @@ ifdef::backend-docbook[]
 [header]
 template::[header-declarations]
 <refentry>
+<refentryinfo>
+template::[docinfo]
+</refentryinfo>
 <refmeta>
 <refentrytitle>{mantitle}</refentrytitle>
 <manvolnum>{manvolnum}</manvolnum>
diff --git a/t/t0600-doc-tools.sh b/t/t0600-doc-tools.sh
index 0f9a4053a9..db77db72e5 100755
--- a/t/t0600-doc-tools.sh
+++ b/t/t0600-doc-tools.sh
@@ -78,7 +78,7 @@ check_manpage() {
 	test_cmp "$1.1.expected" "$1.1.actual"
 }
 
-test_expect_failure ASCIIDOC 'legacy asciidoc.py' '
+test_expect_success ASCIIDOC 'legacy asciidoc.py' '
 	build_asciidoc_py "git-foo" &&
 	check_manpage "git-foo"
 '
-- 
2.40.0+fc1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [RFC PATCH 03/12] doc: remove unnecessary hack for asciidoctor
  2023-04-13 11:57 [RFC PATCH 00/12] doc: add tests and reimplement xmlto Felipe Contreras
  2023-04-13 11:57 ` [RFC PATCH 01/12] doc: add test for doc tools output Felipe Contreras
  2023-04-13 11:57 ` [RFC PATCH 02/12] doc: add missing manpage docinfo Felipe Contreras
@ 2023-04-13 11:57 ` Felipe Contreras
  2023-04-13 11:57 ` [RFC PATCH 04/12] test: doc: add test for docbook5 Felipe Contreras
                   ` (8 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: Felipe Contreras @ 2023-04-13 11:57 UTC (permalink / raw
  To: git
  Cc: Junio C Hamano, Chris Johnsen, Martin Ågren,
	brian m . carlson, Jeff King, Felipe Contreras

It was added in f6461b82b9 (Documentation: fix build with Asciidoctor 2,
2019-09-15) to avoid newlines, but they don't matter.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 Documentation/Makefile    | 1 -
 Documentation/manpage.xsl | 3 ---
 t/t0600-doc-tools.sh      | 4 ++--
 3 files changed, 2 insertions(+), 6 deletions(-)
 delete mode 100644 Documentation/manpage.xsl

diff --git a/Documentation/Makefile b/Documentation/Makefile
index 5cd35df61c..3fab7ce9cd 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -202,7 +202,6 @@ ASCIIDOC_EXTRA += -alitdd='&\#x2d;&\#x2d;'
 ASCIIDOC_DEPS = asciidoctor-extensions.rb GIT-ASCIIDOCFLAGS
 DBLATEX_COMMON =
 XMLTO_EXTRA += --skip-validation
-XMLTO_EXTRA += -x manpage.xsl
 endif
 
 SHELL_PATH ?= $(SHELL)
diff --git a/Documentation/manpage.xsl b/Documentation/manpage.xsl
deleted file mode 100644
index ef64bab17a..0000000000
--- a/Documentation/manpage.xsl
+++ /dev/null
@@ -1,3 +0,0 @@
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
-	<xsl:import href="http://docbook.sourceforge.net/release/xsl-ns/current/manpages/docbook.xsl" />
-</xsl:stylesheet>
diff --git a/t/t0600-doc-tools.sh b/t/t0600-doc-tools.sh
index db77db72e5..a80cd32cd6 100755
--- a/t/t0600-doc-tools.sh
+++ b/t/t0600-doc-tools.sh
@@ -70,7 +70,7 @@ build_asciidoctor() {
 	asciidoctor -acompat-mode -atabsize=8 -I "$doc_dir" -rasciidoctor-extensions -alitdd='&#x2d;&#x2d;' \
 		-amanmanual='Git Manual' -amansource='Git 1.0.0' -arevdate='2005-01-01' -b docbook5 -d manpage \
 		-o "$1.xml" "$1.txt" &&
-	xmltoman "$1" -x "$doc_dir"/manpage.xsl
+	xmltoman "$1"
 }
 
 check_manpage() {
@@ -83,7 +83,7 @@ test_expect_success ASCIIDOC 'legacy asciidoc.py' '
 	check_manpage "git-foo"
 '
 
-test_expect_failure ASCIIDOCTOR 'modern asciidoctor (docbook5)' '
+test_expect_success ASCIIDOCTOR 'modern asciidoctor (docbook5)' '
 	build_asciidoctor "git-foo" &&
 	check_manpage "git-foo"
 '
-- 
2.40.0+fc1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [RFC PATCH 04/12] test: doc: add test for docbook5
  2023-04-13 11:57 [RFC PATCH 00/12] doc: add tests and reimplement xmlto Felipe Contreras
                   ` (2 preceding siblings ...)
  2023-04-13 11:57 ` [RFC PATCH 03/12] doc: remove unnecessary hack for asciidoctor Felipe Contreras
@ 2023-04-13 11:57 ` Felipe Contreras
  2023-04-13 11:57 ` [RFC PATCH 05/12] doc: fix support for multiple docbook backends Felipe Contreras
                   ` (7 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: Felipe Contreras @ 2023-04-13 11:57 UTC (permalink / raw
  To: git
  Cc: Junio C Hamano, Chris Johnsen, Martin Ågren,
	brian m . carlson, Jeff King, Felipe Contreras

It was released 13 years ago and we still don't support it.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 t/t0600-doc-tools.sh | 8 +++++++-
 1 file changed, 7 insertions(+), 1 deletion(-)

diff --git a/t/t0600-doc-tools.sh b/t/t0600-doc-tools.sh
index a80cd32cd6..e4388a54c6 100755
--- a/t/t0600-doc-tools.sh
+++ b/t/t0600-doc-tools.sh
@@ -61,7 +61,8 @@ xmltoman() {
 }
 
 build_asciidoc_py() {
-	asciidoc -f "$doc_dir/asciidoc.conf" -amanmanual='Git Manual' -amansource='Git 1.0.0' -arevdate='2005-01-01' -b docbook -d manpage \
+	backend=${2-docbook}
+	asciidoc -f "$doc_dir/asciidoc.conf" -amanmanual='Git Manual' -amansource='Git 1.0.0' -arevdate='2005-01-01' -b "$backend" -d manpage \
 		-o "$1.xml" "$1.txt" &&
 	xmltoman "$1"
 }
@@ -83,6 +84,11 @@ test_expect_success ASCIIDOC 'legacy asciidoc.py' '
 	check_manpage "git-foo"
 '
 
+test_expect_failure ASCIIDOC 'legacy asciidoc.py (docbook5)' '
+	build_asciidoc_py "git-foo" docbook5 &&
+	check_manpage "git-foo"
+'
+
 test_expect_success ASCIIDOCTOR 'modern asciidoctor (docbook5)' '
 	build_asciidoctor "git-foo" &&
 	check_manpage "git-foo"
-- 
2.40.0+fc1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [RFC PATCH 05/12] doc: fix support for multiple docbook backends
  2023-04-13 11:57 [RFC PATCH 00/12] doc: add tests and reimplement xmlto Felipe Contreras
                   ` (3 preceding siblings ...)
  2023-04-13 11:57 ` [RFC PATCH 04/12] test: doc: add test for docbook5 Felipe Contreras
@ 2023-04-13 11:57 ` Felipe Contreras
  2023-04-13 11:57 ` [RFC PATCH 06/12] doc: add gen-stylesheet helper Felipe Contreras
                   ` (6 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: Felipe Contreras @ 2023-04-13 11:57 UTC (permalink / raw
  To: git
  Cc: Junio C Hamano, Chris Johnsen, Martin Ågren,
	brian m . carlson, Jeff King, Felipe Contreras

docbook isn't a backend, but a famliy of backends.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 Documentation/asciidoc.conf | 12 ++++++------
 t/t0600-doc-tools.sh        |  2 +-
 2 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/Documentation/asciidoc.conf b/Documentation/asciidoc.conf
index 303d45dc34..356b131870 100644
--- a/Documentation/asciidoc.conf
+++ b/Documentation/asciidoc.conf
@@ -22,15 +22,15 @@ apostrophe=&#39;
 backtick=&#96;
 litdd=&#45;&#45;
 
-ifdef::backend-docbook[]
+ifdef::basebackend-docbook[]
 [linkgit-inlinemacro]
 {0%{target}}
 {0#<citerefentry>}
 {0#<refentrytitle>{target}</refentrytitle><manvolnum>{0}</manvolnum>}
 {0#</citerefentry>}
-endif::backend-docbook[]
+endif::basebackend-docbook[]
 
-ifdef::backend-docbook[]
+ifdef::basebackend-docbook[]
 ifdef::doctype-manpage[]
 # The following two small workarounds insert a simple paragraph after screen
 [listingblock]
@@ -49,10 +49,10 @@ ifdef::doctype-manpage[]
 {title#}</para></formalpara>
 {title%}<simpara></simpara>
 endif::doctype-manpage[]
-endif::backend-docbook[]
+endif::basebackend-docbook[]
 
 ifdef::doctype-manpage[]
-ifdef::backend-docbook[]
+ifdef::basebackend-docbook[]
 [header]
 template::[header-declarations]
 <refentry>
@@ -70,7 +70,7 @@ template::[docinfo]
   <refname>{manname}</refname>
   <refpurpose>{manpurpose}</refpurpose>
 </refnamediv>
-endif::backend-docbook[]
+endif::basebackend-docbook[]
 endif::doctype-manpage[]
 
 ifdef::backend-xhtml11[]
diff --git a/t/t0600-doc-tools.sh b/t/t0600-doc-tools.sh
index e4388a54c6..2552b0d376 100755
--- a/t/t0600-doc-tools.sh
+++ b/t/t0600-doc-tools.sh
@@ -84,7 +84,7 @@ test_expect_success ASCIIDOC 'legacy asciidoc.py' '
 	check_manpage "git-foo"
 '
 
-test_expect_failure ASCIIDOC 'legacy asciidoc.py (docbook5)' '
+test_expect_success ASCIIDOC 'legacy asciidoc.py (docbook5)' '
 	build_asciidoc_py "git-foo" docbook5 &&
 	check_manpage "git-foo"
 '
-- 
2.40.0+fc1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [RFC PATCH 06/12] doc: add gen-stylesheet helper
  2023-04-13 11:57 [RFC PATCH 00/12] doc: add tests and reimplement xmlto Felipe Contreras
                   ` (4 preceding siblings ...)
  2023-04-13 11:57 ` [RFC PATCH 05/12] doc: fix support for multiple docbook backends Felipe Contreras
@ 2023-04-13 11:57 ` Felipe Contreras
  2023-04-13 11:57 ` [RFC PATCH 07/12] doc: get rid of xmlto dependency Felipe Contreras
                   ` (5 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: Felipe Contreras @ 2023-04-13 11:57 UTC (permalink / raw
  To: git
  Cc: Junio C Hamano, Chris Johnsen, Martin Ågren,
	brian m . carlson, Jeff King, Felipe Contreras

Move most of the logic of xmlto into a simple script that generates a
single stylesheet.

There should be no functional changes.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 Documentation/.gitignore     |  1 +
 Documentation/Makefile       | 12 +++++-------
 Documentation/gen-stylesheet | 17 +++++++++++++++++
 t/t0600-doc-tools.sh         |  4 +++-
 4 files changed, 26 insertions(+), 8 deletions(-)
 create mode 100755 Documentation/gen-stylesheet

diff --git a/Documentation/.gitignore b/Documentation/.gitignore
index a48448de32..afec7e7f19 100644
--- a/Documentation/.gitignore
+++ b/Documentation/.gitignore
@@ -15,3 +15,4 @@ tmp-doc-diff/
 GIT-ASCIIDOCFLAGS
 /.build/
 /GIT-EXCLUDED-PROGRAMS
+/manpage.xsl
diff --git a/Documentation/Makefile b/Documentation/Makefile
index 3fab7ce9cd..96d3f52c60 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -155,7 +155,6 @@ ASCIIDOC_COMMON = $(ASCIIDOC) $(ASCIIDOC_EXTRA) $(ASCIIDOC_CONF) \
 ASCIIDOC_DEPS = asciidoc.conf GIT-ASCIIDOCFLAGS
 TXT_TO_HTML = $(ASCIIDOC_COMMON) -b $(ASCIIDOC_HTML)
 TXT_TO_XML = $(ASCIIDOC_COMMON) -b $(ASCIIDOC_DOCBOOK)
-MANPAGE_XSL = manpage-normal.xsl
 XMLTO = xmlto
 XMLTO_EXTRA =
 INSTALL ?= install
@@ -176,10 +175,6 @@ endif
 -include ../config.mak.autogen
 -include ../config.mak
 
-ifndef NO_MAN_BOLD_LITERAL
-XMLTO_EXTRA += -m manpage-bold-literal.xsl
-endif
-
 # Newer DocBook stylesheet emits warning cruft in the output when
 # this is not set, and if set it shows an absolute link.  Older
 # stylesheets simply ignore this parameter.
@@ -338,8 +333,11 @@ $(MAN_HTML): %.html : %.txt $(ASCIIDOC_DEPS)
 $(OBSOLETE_HTML): %.html : %.txto $(ASCIIDOC_DEPS)
 	$(QUIET_ASCIIDOC)$(TXT_TO_HTML) -o $@ $<
 
-manpage-prereqs := $(wildcard manpage*.xsl)
-manpage-cmd = $(QUIET_XMLTO)$(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
+manpage-prereqs := manpage.xsl $(wildcard manpage*.xsl)
+manpage-cmd = $(QUIET_XMLTO)$(XMLTO) -x manpage.xsl $(XMLTO_EXTRA) man $<
+
+manpage.xsl: gen-stylesheet
+	./gen-stylesheet >"$@"
 
 %.1 : %.xml $(manpage-prereqs)
 	$(manpage-cmd)
diff --git a/Documentation/gen-stylesheet b/Documentation/gen-stylesheet
new file mode 100755
index 0000000000..c006a85c39
--- /dev/null
+++ b/Documentation/gen-stylesheet
@@ -0,0 +1,17 @@
+#!/bin/sh
+
+includes='manpage-normal.xsl'
+test -z "$NO_MAN_BOLD_LITERAL" && includes="$includes manpage-bold-literal.xsl"
+
+cat <<EOF
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+<xsl:import href="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl"/>
+EOF
+
+for x in $includes
+do
+	printf '<xsl:include href="%s"/>\n' "$x"
+done
+
+echo "</xsl:stylesheet>"
diff --git a/t/t0600-doc-tools.sh b/t/t0600-doc-tools.sh
index 2552b0d376..a003686c2f 100755
--- a/t/t0600-doc-tools.sh
+++ b/t/t0600-doc-tools.sh
@@ -54,10 +54,12 @@ description
 Part of the \fBgit\fR(1) suite
 EOF
 
+"$doc_dir"/gen-stylesheet >"$doc_dir"/manpage.xsl
+
 xmltoman() {
 	base="$1"
 	shift
-	xmlto --skip-validation -m "$doc_dir/manpage-normal.xsl" -m "$doc_dir/manpage-bold-literal.xsl" "$@" man "$base.xml"
+	xmlto --skip-validation -x "$doc_dir"/manpage.xsl man "$base.xml"
 }
 
 build_asciidoc_py() {
-- 
2.40.0+fc1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [RFC PATCH 07/12] doc: get rid of xmlto dependency
  2023-04-13 11:57 [RFC PATCH 00/12] doc: add tests and reimplement xmlto Felipe Contreras
                   ` (5 preceding siblings ...)
  2023-04-13 11:57 ` [RFC PATCH 06/12] doc: add gen-stylesheet helper Felipe Contreras
@ 2023-04-13 11:57 ` Felipe Contreras
  2023-04-13 11:57 ` [RFC PATCH 08/12] test: doc: use temporary stylesheet Felipe Contreras
                   ` (4 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: Felipe Contreras @ 2023-04-13 11:57 UTC (permalink / raw
  To: git
  Cc: Junio C Hamano, Chris Johnsen, Martin Ågren,
	brian m . carlson, Jeff King, Felipe Contreras

We don't use any of its functionality, so all it's doing for us is
generate a stylesheet, which we are doing by ourselves now.

Use `xsltproc` directly.

This gets rid of some annoying warnings because my system doesn't use
debian's libpaper:

  (null): unknown option '-n'
  (null): unknown option '-mh'
  (null): unknown option '-mw'

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 Documentation/Makefile | 6 ++----
 t/t0600-doc-tools.sh   | 4 +---
 2 files changed, 3 insertions(+), 7 deletions(-)

diff --git a/Documentation/Makefile b/Documentation/Makefile
index 96d3f52c60..3e2cbef306 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -155,7 +155,6 @@ ASCIIDOC_COMMON = $(ASCIIDOC) $(ASCIIDOC_EXTRA) $(ASCIIDOC_CONF) \
 ASCIIDOC_DEPS = asciidoc.conf GIT-ASCIIDOCFLAGS
 TXT_TO_HTML = $(ASCIIDOC_COMMON) -b $(ASCIIDOC_HTML)
 TXT_TO_XML = $(ASCIIDOC_COMMON) -b $(ASCIIDOC_DOCBOOK)
-XMLTO = xmlto
 XMLTO_EXTRA =
 INSTALL ?= install
 RM ?= rm -f
@@ -184,7 +183,7 @@ endif
 ifndef MAN_BASE_URL
 MAN_BASE_URL = file://$(htmldir)/
 endif
-XMLTO_EXTRA += --stringparam man.base.url.for.relative.links='$(MAN_BASE_URL)'
+XMLTO_EXTRA += --stringparam man.base.url.for.relative.links '$(MAN_BASE_URL)'
 
 ifdef USE_ASCIIDOCTOR
 ASCIIDOC = asciidoctor
@@ -196,7 +195,6 @@ ASCIIDOC_EXTRA += -I. -rasciidoctor-extensions
 ASCIIDOC_EXTRA += -alitdd='&\#x2d;&\#x2d;'
 ASCIIDOC_DEPS = asciidoctor-extensions.rb GIT-ASCIIDOCFLAGS
 DBLATEX_COMMON =
-XMLTO_EXTRA += --skip-validation
 endif
 
 SHELL_PATH ?= $(SHELL)
@@ -334,7 +332,7 @@ $(OBSOLETE_HTML): %.html : %.txto $(ASCIIDOC_DEPS)
 	$(QUIET_ASCIIDOC)$(TXT_TO_HTML) -o $@ $<
 
 manpage-prereqs := manpage.xsl $(wildcard manpage*.xsl)
-manpage-cmd = $(QUIET_XMLTO)$(XMLTO) -x manpage.xsl $(XMLTO_EXTRA) man $<
+manpage-cmd = $(QUIET_XMLTO)xsltproc --nonet $(XMLTO_EXTRA) -o $@ manpage.xsl $<
 
 manpage.xsl: gen-stylesheet
 	./gen-stylesheet >"$@"
diff --git a/t/t0600-doc-tools.sh b/t/t0600-doc-tools.sh
index a003686c2f..0af431941d 100755
--- a/t/t0600-doc-tools.sh
+++ b/t/t0600-doc-tools.sh
@@ -57,9 +57,7 @@ EOF
 "$doc_dir"/gen-stylesheet >"$doc_dir"/manpage.xsl
 
 xmltoman() {
-	base="$1"
-	shift
-	xmlto --skip-validation -x "$doc_dir"/manpage.xsl man "$base.xml"
+	xsltproc --nonet -o "$1.1" "$doc_dir/manpage.xsl" "$1.xml"
 }
 
 build_asciidoc_py() {
-- 
2.40.0+fc1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [RFC PATCH 08/12] test: doc: use temporary stylesheet
  2023-04-13 11:57 [RFC PATCH 00/12] doc: add tests and reimplement xmlto Felipe Contreras
                   ` (6 preceding siblings ...)
  2023-04-13 11:57 ` [RFC PATCH 07/12] doc: get rid of xmlto dependency Felipe Contreras
@ 2023-04-13 11:57 ` Felipe Contreras
  2023-04-13 11:57 ` [RFC PATCH 09/12] doc: remove references to xmlto Felipe Contreras
                   ` (3 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: Felipe Contreras @ 2023-04-13 11:57 UTC (permalink / raw
  To: git
  Cc: Junio C Hamano, Chris Johnsen, Martin Ågren,
	brian m . carlson, Jeff King, Felipe Contreras

xsltproc doesn't have a problem with a our trash directory.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 t/t0600-doc-tools.sh | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/t/t0600-doc-tools.sh b/t/t0600-doc-tools.sh
index 0af431941d..cd88027514 100755
--- a/t/t0600-doc-tools.sh
+++ b/t/t0600-doc-tools.sh
@@ -54,10 +54,10 @@ description
 Part of the \fBgit\fR(1) suite
 EOF
 
-"$doc_dir"/gen-stylesheet >"$doc_dir"/manpage.xsl
+"$doc_dir"/gen-stylesheet >manpage.xsl
 
 xmltoman() {
-	xsltproc --nonet -o "$1.1" "$doc_dir/manpage.xsl" "$1.xml"
+	xsltproc --nonet -o "$1.1" manpage.xsl "$1.xml"
 }
 
 build_asciidoc_py() {
-- 
2.40.0+fc1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [RFC PATCH 09/12] doc: remove references to xmlto
  2023-04-13 11:57 [RFC PATCH 00/12] doc: add tests and reimplement xmlto Felipe Contreras
                   ` (7 preceding siblings ...)
  2023-04-13 11:57 ` [RFC PATCH 08/12] test: doc: use temporary stylesheet Felipe Contreras
@ 2023-04-13 11:57 ` Felipe Contreras
  2023-04-13 11:57 ` [RFC PATCH 10/12] doc: stylesheet: move all the xslt templates Felipe Contreras
                   ` (2 subsequent siblings)
  11 siblings, 0 replies; 13+ messages in thread
From: Felipe Contreras @ 2023-04-13 11:57 UTC (permalink / raw
  To: git
  Cc: Junio C Hamano, Chris Johnsen, Martin Ågren,
	brian m . carlson, Jeff King, Felipe Contreras

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 Documentation/Makefile           | 6 +++---
 Documentation/manpage-normal.xsl | 2 +-
 INSTALL                          | 4 ++--
 ci/install-dependencies.sh       | 2 +-
 shared.mak                       | 3 +--
 5 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/Documentation/Makefile b/Documentation/Makefile
index 3e2cbef306..a85f60f766 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -155,7 +155,7 @@ ASCIIDOC_COMMON = $(ASCIIDOC) $(ASCIIDOC_EXTRA) $(ASCIIDOC_CONF) \
 ASCIIDOC_DEPS = asciidoc.conf GIT-ASCIIDOCFLAGS
 TXT_TO_HTML = $(ASCIIDOC_COMMON) -b $(ASCIIDOC_HTML)
 TXT_TO_XML = $(ASCIIDOC_COMMON) -b $(ASCIIDOC_DOCBOOK)
-XMLTO_EXTRA =
+XSLTPROC_EXTRA =
 INSTALL ?= install
 RM ?= rm -f
 MAN_REPO = ../../git-manpages
@@ -183,7 +183,7 @@ endif
 ifndef MAN_BASE_URL
 MAN_BASE_URL = file://$(htmldir)/
 endif
-XMLTO_EXTRA += --stringparam man.base.url.for.relative.links '$(MAN_BASE_URL)'
+XSLTPROC_EXTRA += --stringparam man.base.url.for.relative.links '$(MAN_BASE_URL)'
 
 ifdef USE_ASCIIDOCTOR
 ASCIIDOC = asciidoctor
@@ -332,7 +332,7 @@ $(OBSOLETE_HTML): %.html : %.txto $(ASCIIDOC_DEPS)
 	$(QUIET_ASCIIDOC)$(TXT_TO_HTML) -o $@ $<
 
 manpage-prereqs := manpage.xsl $(wildcard manpage*.xsl)
-manpage-cmd = $(QUIET_XMLTO)xsltproc --nonet $(XMLTO_EXTRA) -o $@ manpage.xsl $<
+manpage-cmd = $(QUIET_XSLTPROC)xsltproc --nonet $(XSLTPROC_EXTRA) -o $@ manpage.xsl $<
 
 manpage.xsl: gen-stylesheet
 	./gen-stylesheet >"$@"
diff --git a/Documentation/manpage-normal.xsl b/Documentation/manpage-normal.xsl
index a9c7ec69f4..3fb044a8a7 100644
--- a/Documentation/manpage-normal.xsl
+++ b/Documentation/manpage-normal.xsl
@@ -4,7 +4,7 @@
 		version="1.0">
 
 
-<!-- these params silence some output from xmlto -->
+<!-- these params silence some output from xsltproc -->
 <xsl:param name="man.output.quietly" select="1"/>
 <xsl:param name="refentry.meta.get.quietly" select="1"/>
 
diff --git a/INSTALL b/INSTALL
index 4b42288882..48c126b3be 100644
--- a/INSTALL
+++ b/INSTALL
@@ -176,13 +176,13 @@ Issues of note:
    the name is reserved for local settings.
 
  - To build and install documentation suite, you need to have
-   the asciidoc/xmlto toolchain.  Because not many people are
+   the asciidoc/xsltproc toolchain.  Because not many people are
    inclined to install the tools, the default build target
    ("make all") does _not_ build them.
 
    "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 asciidoc, but not xsltproc. "make man" (and thus make doc)
    requires both.
 
    "make install-doc" installs documentation in man format only; there
diff --git a/ci/install-dependencies.sh b/ci/install-dependencies.sh
index 4f407530d3..fe72525f1f 100755
--- a/ci/install-dependencies.sh
+++ b/ci/install-dependencies.sh
@@ -69,7 +69,7 @@ sparse)
 	;;
 Documentation)
 	sudo apt-get -q update
-	sudo apt-get -q -y install asciidoc xmlto docbook-xsl-ns make
+	sudo apt-get -q -y install asciidoc xsltproc docbook-xsl-ns make
 
 	test -n "$ALREADY_HAVE_ASCIIDOCTOR" ||
 	sudo gem install --version 1.5.8 asciidoctor
diff --git a/shared.mak b/shared.mak
index aeb80fc4d5..52fbc8ec6f 100644
--- a/shared.mak
+++ b/shared.mak
@@ -78,11 +78,10 @@ ifndef V
 
 ## Used in "Documentation/Makefile"
 	QUIET_ASCIIDOC	= @echo '   ' ASCIIDOC $@;
-	QUIET_XMLTO	= @echo '   ' XMLTO $@;
+	QUIET_XSLTPROC	= @echo '   ' XSLTPROC $@;
 	QUIET_DB2TEXI	= @echo '   ' DB2TEXI $@;
 	QUIET_MAKEINFO	= @echo '   ' MAKEINFO $@;
 	QUIET_DBLATEX	= @echo '   ' DBLATEX $@;
-	QUIET_XSLTPROC	= @echo '   ' XSLTPROC $@;
 	QUIET_GEN	= @echo '   ' GEN $@;
 	QUIET_STDERR	= 2> /dev/null
 
-- 
2.40.0+fc1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [RFC PATCH 10/12] doc: stylesheet: move all the xslt templates
  2023-04-13 11:57 [RFC PATCH 00/12] doc: add tests and reimplement xmlto Felipe Contreras
                   ` (8 preceding siblings ...)
  2023-04-13 11:57 ` [RFC PATCH 09/12] doc: remove references to xmlto Felipe Contreras
@ 2023-04-13 11:57 ` Felipe Contreras
  2023-04-13 11:57 ` [RFC PATCH 11/12] test: doc: add check for callouts Felipe Contreras
  2023-04-13 11:57 ` [RFC PATCH 12/12] doc: manpage: remove callout hack Felipe Contreras
  11 siblings, 0 replies; 13+ messages in thread
From: Felipe Contreras @ 2023-04-13 11:57 UTC (permalink / raw
  To: git
  Cc: Junio C Hamano, Chris Johnsen, Martin Ågren,
	brian m . carlson, Jeff King, Felipe Contreras

There's no need to have them scattered everywhere.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 Documentation/gen-stylesheet           | 42 +++++++++++++++++++++-----
 Documentation/manpage-bold-literal.xsl | 16 ----------
 Documentation/manpage-normal.xsl       | 26 ----------------
 3 files changed, 35 insertions(+), 49 deletions(-)
 delete mode 100644 Documentation/manpage-bold-literal.xsl
 delete mode 100644 Documentation/manpage-normal.xsl

diff --git a/Documentation/gen-stylesheet b/Documentation/gen-stylesheet
index c006a85c39..7d1839fcab 100755
--- a/Documentation/gen-stylesheet
+++ b/Documentation/gen-stylesheet
@@ -1,17 +1,45 @@
 #!/bin/sh
 
-includes='manpage-normal.xsl'
-test -z "$NO_MAN_BOLD_LITERAL" && includes="$includes manpage-bold-literal.xsl"
-
 cat <<EOF
 <?xml version="1.0"?>
 <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
 <xsl:import href="http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl"/>
 EOF
 
-for x in $includes
-do
-	printf '<xsl:include href="%s"/>\n' "$x"
-done
+# these params silence some output from xsltproc
+cat <<EOF
+<xsl:param name="man.output.quietly" select="1"/>
+<xsl:param name="refentry.meta.get.quietly" select="1"/>
+EOF
+
+# convert asciidoc callouts to man page format
+cat <<EOF
+<xsl:template match="co">
+	<xsl:value-of select="concat('\fB(',substring-after(@id,'-'),')\fR')"/>
+</xsl:template>
+<xsl:template match="calloutlist">
+	<xsl:text>.sp&#10;</xsl:text>
+	<xsl:apply-templates/>
+	<xsl:text>&#10;</xsl:text>
+</xsl:template>
+<xsl:template match="callout">
+	<xsl:value-of select="concat('\fB',substring-after(@arearefs,'-'),'. \fR')"/>
+	<xsl:apply-templates/>
+	<xsl:text>.br&#10;</xsl:text>
+</xsl:template>
+EOF
+
+if [[ -z "$NO_MAN_BOLD_LITERAL" ]]
+then
+	# render literal text as bold (instead of plain or monospace); this makes
+	# literal text easier to distinguish in manpages viewed on a tty
+	cat <<-EOF
+	<xsl:template match="literal">
+		<xsl:text>\fB</xsl:text>
+		<xsl:apply-templates/>
+		<xsl:text>\fR</xsl:text>
+	</xsl:template>
+	EOF
+fi
 
 echo "</xsl:stylesheet>"
diff --git a/Documentation/manpage-bold-literal.xsl b/Documentation/manpage-bold-literal.xsl
deleted file mode 100644
index e13db85693..0000000000
--- a/Documentation/manpage-bold-literal.xsl
+++ /dev/null
@@ -1,16 +0,0 @@
-<!-- manpage-bold-literal.xsl:
-     special formatting for manpages rendered from asciidoc+docbook -->
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-		xmlns:d="http://docbook.org/ns/docbook"
-		version="1.0">
-
-<!-- render literal text as bold (instead of plain or monospace);
-     this makes literal text easier to distinguish in manpages
-     viewed on a tty -->
-<xsl:template match="literal|d:literal">
-	<xsl:text>\fB</xsl:text>
-	<xsl:apply-templates/>
-	<xsl:text>\fR</xsl:text>
-</xsl:template>
-
-</xsl:stylesheet>
diff --git a/Documentation/manpage-normal.xsl b/Documentation/manpage-normal.xsl
deleted file mode 100644
index 3fb044a8a7..0000000000
--- a/Documentation/manpage-normal.xsl
+++ /dev/null
@@ -1,26 +0,0 @@
-<!-- manpage-normal.xsl:
-     special settings for manpages rendered from asciidoc+docbook -->
-<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-		version="1.0">
-
-
-<!-- these params silence some output from xsltproc -->
-<xsl:param name="man.output.quietly" select="1"/>
-<xsl:param name="refentry.meta.get.quietly" select="1"/>
-
-<!-- convert asciidoc callouts to man page format -->
-<xsl:template match="co">
-	<xsl:value-of select="concat('\fB(',substring-after(@id,'-'),')\fR')"/>
-</xsl:template>
-<xsl:template match="calloutlist">
-	<xsl:text>.sp&#10;</xsl:text>
-	<xsl:apply-templates/>
-	<xsl:text>&#10;</xsl:text>
-</xsl:template>
-<xsl:template match="callout">
-	<xsl:value-of select="concat('\fB',substring-after(@arearefs,'-'),'. \fR')"/>
-	<xsl:apply-templates/>
-	<xsl:text>.br&#10;</xsl:text>
-</xsl:template>
-
-</xsl:stylesheet>
-- 
2.40.0+fc1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [RFC PATCH 11/12] test: doc: add check for callouts
  2023-04-13 11:57 [RFC PATCH 00/12] doc: add tests and reimplement xmlto Felipe Contreras
                   ` (9 preceding siblings ...)
  2023-04-13 11:57 ` [RFC PATCH 10/12] doc: stylesheet: move all the xslt templates Felipe Contreras
@ 2023-04-13 11:57 ` Felipe Contreras
  2023-04-13 11:57 ` [RFC PATCH 12/12] doc: manpage: remove callout hack Felipe Contreras
  11 siblings, 0 replies; 13+ messages in thread
From: Felipe Contreras @ 2023-04-13 11:57 UTC (permalink / raw
  To: git
  Cc: Junio C Hamano, Chris Johnsen, Martin Ågren,
	brian m . carlson, Jeff King, Felipe Contreras

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 t/t0600-doc-tools.sh | 36 ++++++++++++++++++++++++++++++++++--
 1 file changed, 34 insertions(+), 2 deletions(-)

diff --git a/t/t0600-doc-tools.sh b/t/t0600-doc-tools.sh
index cd88027514..545fb0e199 100755
--- a/t/t0600-doc-tools.sh
+++ b/t/t0600-doc-tools.sh
@@ -26,6 +26,17 @@ DESCRIPTION
 -----------
 description
 
+CALLOUTS
+--------
+----
+$ git diff <1>
+$ git diff --cached <2>
+$ git diff @ <3>
+----
+<1> Callout 1
+<2> Callout 2
+<3> Callout 3
+
 GIT
 ---
 Part of the linkgit:git[1] suite
@@ -49,6 +60,27 @@ git-foo \- Test command
 .SH "DESCRIPTION"
 .sp
 description
+.SH "CALLOUTS"
+.sp
+.if n \{\\
+.RS 4
+.\}
+.nf
+$ git diff \fB(1)\fR
+$ git diff \-\-cached \fB(2)\fR
+$ git diff @ \fB(3)\fR
+.fi
+.if n \{\\
+.RE
+.\}
+.sp
+.sp
+\fB1. \fRCallout 1
+.br
+\fB2. \fRCallout 2
+.br
+\fB3. \fRCallout 3
+.br
 .SH "GIT"
 .sp
 Part of the \fBgit\fR(1) suite
@@ -84,12 +116,12 @@ test_expect_success ASCIIDOC 'legacy asciidoc.py' '
 	check_manpage "git-foo"
 '
 
-test_expect_success ASCIIDOC 'legacy asciidoc.py (docbook5)' '
+test_expect_failure ASCIIDOC 'legacy asciidoc.py (docbook5)' '
 	build_asciidoc_py "git-foo" docbook5 &&
 	check_manpage "git-foo"
 '
 
-test_expect_success ASCIIDOCTOR 'modern asciidoctor (docbook5)' '
+test_expect_failure ASCIIDOCTOR 'modern asciidoctor (docbook5)' '
 	build_asciidoctor "git-foo" &&
 	check_manpage "git-foo"
 '
-- 
2.40.0+fc1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [RFC PATCH 12/12] doc: manpage: remove callout hack
  2023-04-13 11:57 [RFC PATCH 00/12] doc: add tests and reimplement xmlto Felipe Contreras
                   ` (10 preceding siblings ...)
  2023-04-13 11:57 ` [RFC PATCH 11/12] test: doc: add check for callouts Felipe Contreras
@ 2023-04-13 11:57 ` Felipe Contreras
  11 siblings, 0 replies; 13+ messages in thread
From: Felipe Contreras @ 2023-04-13 11:57 UTC (permalink / raw
  To: git
  Cc: Junio C Hamano, Chris Johnsen, Martin Ågren,
	brian m . carlson, Jeff King, Felipe Contreras

DocBook Stylesheets already have much better support for callouts.

This:

     $ git diff            (1)
     $ git diff --cached   (2)
     $ git diff HEAD       (3)

  1. Changes in the working tree not yet staged for the next
     commit.
  2. Changes between the index and your last commit; what you
     would be committing if you run git commit without -a
     option.
  3. Changes in the working tree since your last commit; what
     you would be committing if you run git commit -a

Looks much better than this:

       $ git diff            (1)
       $ git diff --cached   (2)
       $ git diff HEAD       (3)

   1. Changes in the working tree not yet staged for the next commit.
   2. Changes between the index and your last commit; what you would
   be committing if you run git commit without -a option.
   3. Changes in the working tree since your last commit; what you
   would be committing if you run git commit -a

This implementation goes back to 2006: 776e994af5 (Properly render
asciidoc "callouts" in git man pages., 2006-04-28). It probably wasn't
needed since a long time ago.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 Documentation/gen-stylesheet | 17 -----------------
 t/t0600-doc-tools.sh         | 24 +++++++++++++++---------
 2 files changed, 15 insertions(+), 26 deletions(-)

diff --git a/Documentation/gen-stylesheet b/Documentation/gen-stylesheet
index 7d1839fcab..53c3dfca17 100755
--- a/Documentation/gen-stylesheet
+++ b/Documentation/gen-stylesheet
@@ -12,23 +12,6 @@ cat <<EOF
 <xsl:param name="refentry.meta.get.quietly" select="1"/>
 EOF
 
-# convert asciidoc callouts to man page format
-cat <<EOF
-<xsl:template match="co">
-	<xsl:value-of select="concat('\fB(',substring-after(@id,'-'),')\fR')"/>
-</xsl:template>
-<xsl:template match="calloutlist">
-	<xsl:text>.sp&#10;</xsl:text>
-	<xsl:apply-templates/>
-	<xsl:text>&#10;</xsl:text>
-</xsl:template>
-<xsl:template match="callout">
-	<xsl:value-of select="concat('\fB',substring-after(@arearefs,'-'),'. \fR')"/>
-	<xsl:apply-templates/>
-	<xsl:text>.br&#10;</xsl:text>
-</xsl:template>
-EOF
-
 if [[ -z "$NO_MAN_BOLD_LITERAL" ]]
 then
 	# render literal text as bold (instead of plain or monospace); this makes
diff --git a/t/t0600-doc-tools.sh b/t/t0600-doc-tools.sh
index 545fb0e199..10a472e1e6 100755
--- a/t/t0600-doc-tools.sh
+++ b/t/t0600-doc-tools.sh
@@ -74,13 +74,19 @@ $ git diff @ \fB(3)\fR
 .RE
 .\}
 .sp
-.sp
-\fB1. \fRCallout 1
-.br
-\fB2. \fRCallout 2
-.br
-\fB3. \fRCallout 3
-.br
+.TS
+tab(:);
+r lw(\n(.lu*75u/100u).
+\fB1.\fR\h'-2n':T{
+Callout 1
+T}
+\fB2.\fR\h'-2n':T{
+Callout 2
+T}
+\fB3.\fR\h'-2n':T{
+Callout 3
+T}
+.TE
 .SH "GIT"
 .sp
 Part of the \fBgit\fR(1) suite
@@ -116,12 +122,12 @@ test_expect_success ASCIIDOC 'legacy asciidoc.py' '
 	check_manpage "git-foo"
 '
 
-test_expect_failure ASCIIDOC 'legacy asciidoc.py (docbook5)' '
+test_expect_success ASCIIDOC 'legacy asciidoc.py (docbook5)' '
 	build_asciidoc_py "git-foo" docbook5 &&
 	check_manpage "git-foo"
 '
 
-test_expect_failure ASCIIDOCTOR 'modern asciidoctor (docbook5)' '
+test_expect_success ASCIIDOCTOR 'modern asciidoctor (docbook5)' '
 	build_asciidoctor "git-foo" &&
 	check_manpage "git-foo"
 '
-- 
2.40.0+fc1


^ permalink raw reply related	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2023-04-13 11:58 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-04-13 11:57 [RFC PATCH 00/12] doc: add tests and reimplement xmlto Felipe Contreras
2023-04-13 11:57 ` [RFC PATCH 01/12] doc: add test for doc tools output Felipe Contreras
2023-04-13 11:57 ` [RFC PATCH 02/12] doc: add missing manpage docinfo Felipe Contreras
2023-04-13 11:57 ` [RFC PATCH 03/12] doc: remove unnecessary hack for asciidoctor Felipe Contreras
2023-04-13 11:57 ` [RFC PATCH 04/12] test: doc: add test for docbook5 Felipe Contreras
2023-04-13 11:57 ` [RFC PATCH 05/12] doc: fix support for multiple docbook backends Felipe Contreras
2023-04-13 11:57 ` [RFC PATCH 06/12] doc: add gen-stylesheet helper Felipe Contreras
2023-04-13 11:57 ` [RFC PATCH 07/12] doc: get rid of xmlto dependency Felipe Contreras
2023-04-13 11:57 ` [RFC PATCH 08/12] test: doc: use temporary stylesheet Felipe Contreras
2023-04-13 11:57 ` [RFC PATCH 09/12] doc: remove references to xmlto Felipe Contreras
2023-04-13 11:57 ` [RFC PATCH 10/12] doc: stylesheet: move all the xslt templates Felipe Contreras
2023-04-13 11:57 ` [RFC PATCH 11/12] test: doc: add check for callouts Felipe Contreras
2023-04-13 11:57 ` [RFC PATCH 12/12] doc: manpage: remove callout hack Felipe Contreras

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).