Merge branch 'ma/asciidoctor-refmiscinfo'

Update support for Asciidoctor documentation toolchain.

* ma/asciidoctor-refmiscinfo:
  doc-diff: replace --cut-header-footer with --cut-footer
  asciidoctor-extensions: provide `<refmiscinfo/>`
  Doc/Makefile: give mansource/-version/-manual attributes
This commit is contained in:
Junio C Hamano 2019-10-06 12:25:15 +09:00
commit 70c1cbf515
4 changed files with 30 additions and 13 deletions

View File

@ -123,7 +123,8 @@ ASCIIDOC_HTML = xhtml11
ASCIIDOC_DOCBOOK = docbook ASCIIDOC_DOCBOOK = docbook
ASCIIDOC_CONF = -f asciidoc.conf ASCIIDOC_CONF = -f asciidoc.conf
ASCIIDOC_COMMON = $(ASCIIDOC) $(ASCIIDOC_EXTRA) $(ASCIIDOC_CONF) \ ASCIIDOC_COMMON = $(ASCIIDOC) $(ASCIIDOC_EXTRA) $(ASCIIDOC_CONF) \
-agit_version=$(GIT_VERSION) -amanversion=$(GIT_VERSION) \
-amanmanual='Git Manual' -amansource='Git'
TXT_TO_HTML = $(ASCIIDOC_COMMON) -b $(ASCIIDOC_HTML) TXT_TO_HTML = $(ASCIIDOC_COMMON) -b $(ASCIIDOC_HTML)
TXT_TO_XML = $(ASCIIDOC_COMMON) -b $(ASCIIDOC_DOCBOOK) TXT_TO_XML = $(ASCIIDOC_COMMON) -b $(ASCIIDOC_DOCBOOK)
MANPAGE_XSL = manpage-normal.xsl MANPAGE_XSL = manpage-normal.xsl

View File

@ -78,9 +78,9 @@ template::[header-declarations]
<refmeta> <refmeta>
<refentrytitle>{mantitle}</refentrytitle> <refentrytitle>{mantitle}</refentrytitle>
<manvolnum>{manvolnum}</manvolnum> <manvolnum>{manvolnum}</manvolnum>
<refmiscinfo class="source">Git</refmiscinfo> <refmiscinfo class="source">{mansource}</refmiscinfo>
<refmiscinfo class="version">{git_version}</refmiscinfo> <refmiscinfo class="version">{manversion}</refmiscinfo>
<refmiscinfo class="manual">Git Manual</refmiscinfo> <refmiscinfo class="manual">{manmanual}</refmiscinfo>
</refmeta> </refmeta>
<refnamediv> <refnamediv>
<refname>{manname}</refname> <refname>{manname}</refname>

View File

@ -20,9 +20,26 @@ module Git
end end
end end
end end
class DocumentPostProcessor < Asciidoctor::Extensions::Postprocessor
def process document, output
if document.basebackend? 'docbook'
mansource = document.attributes['mansource']
manversion = document.attributes['manversion']
manmanual = document.attributes['manmanual']
new_tags = "" \
"<refmiscinfo class=\"source\">#{mansource}</refmiscinfo>\n" \
"<refmiscinfo class=\"version\">#{manversion}</refmiscinfo>\n" \
"<refmiscinfo class=\"manual\">#{manmanual}</refmiscinfo>\n"
output = output.sub(/<\/refmeta>/, new_tags + "</refmeta>")
end
output
end
end
end end
end end
Asciidoctor::Extensions.register do Asciidoctor::Extensions.register do
inline_macro Git::Documentation::LinkGitProcessor, :linkgit inline_macro Git::Documentation::LinkGitProcessor, :linkgit
postprocessor Git::Documentation::DocumentPostProcessor
end end

View File

@ -21,7 +21,7 @@ asciidoc use asciidoc with both commits
to-asciidoc use asciidoc with the 'to'-commit to-asciidoc use asciidoc with the 'to'-commit
to-asciidoctor use asciidoctor with the 'to'-commit to-asciidoctor use asciidoctor with the 'to'-commit
asciidoctor use asciidoctor with both commits asciidoctor use asciidoctor with both commits
cut-header-footer cut away header and footer cut-footer cut away footer
" "
SUBDIRECTORY_OK=1 SUBDIRECTORY_OK=1
. "$(git --exec-path)/git-sh-setup" . "$(git --exec-path)/git-sh-setup"
@ -31,7 +31,7 @@ force=
clean= clean=
from_program= from_program=
to_program= to_program=
cut_header_footer= cut_footer=
while test $# -gt 0 while test $# -gt 0
do do
case "$1" in case "$1" in
@ -55,8 +55,8 @@ do
--asciidoc) --asciidoc)
from_program=-asciidoc from_program=-asciidoc
to_program=-asciidoc ;; to_program=-asciidoc ;;
--cut-header-footer) --cut-footer)
cut_header_footer=-cut-header-footer ;; cut_footer=-cut-footer ;;
--) --)
shift; break ;; shift; break ;;
*) *)
@ -118,8 +118,8 @@ construct_makemanflags () {
from_makemanflags=$(construct_makemanflags "$from_program") && from_makemanflags=$(construct_makemanflags "$from_program") &&
to_makemanflags=$(construct_makemanflags "$to_program") && to_makemanflags=$(construct_makemanflags "$to_program") &&
from_dir=$from_oid$from_program$cut_header_footer && from_dir=$from_oid$from_program$cut_footer &&
to_dir=$to_oid$to_program$cut_header_footer && to_dir=$to_oid$to_program$cut_footer &&
# generate_render_makefile <srcdir> <dstdir> # generate_render_makefile <srcdir> <dstdir>
generate_render_makefile () { generate_render_makefile () {
@ -169,12 +169,11 @@ render_tree () {
make -j$parallel -f - && make -j$parallel -f - &&
mv "$tmp/rendered/$dname+" "$tmp/rendered/$dname" mv "$tmp/rendered/$dname+" "$tmp/rendered/$dname"
if test "$cut_header_footer" = "-cut-header-footer" if test "$cut_footer" = "-cut-footer"
then then
for f in $(find "$tmp/rendered/$dname" -type f) for f in $(find "$tmp/rendered/$dname" -type f)
do do
tail -n +3 "$f" | head -n -2 | head -n -2 "$f" | sed -e '${/^$/d}' >"$f+" &&
sed -e '1{/^$/d}' -e '${/^$/d}' >"$f+" &&
mv "$f+" "$f" || mv "$f+" "$f" ||
return 1 return 1
done done