All of lore.kernel.org
 help / color / mirror / Atom feed
From: "brian m. carlson" <sandals@crustytoothpaste.net>
To: git@vger.kernel.org
Cc: "Jeff King" <peff@peff.net>,
	"Johannes Schindelin" <Johannes.Schindelin@gmx.de>,
	"Øyvind A. Holm" <sunny@sunbase.org>
Subject: [PATCH] Documentation: implement linkgit macro for Asciidoctor
Date: Thu, 26 Jan 2017 00:13:44 +0000	[thread overview]
Message-ID: <20170126001344.445534-1-sandals@crustytoothpaste.net> (raw)
In-Reply-To: <20170125234101.n2pzrp77df4zycv7@genre.crustytoothpaste.net>

AsciiDoc uses a configuration file to implement macros like linkgit,
while Asciidoctor uses Ruby extensions.  Implement a Ruby extension that
implements the linkgit macro for Asciidoctor in the same way that
asciidoc.conf does for AsciiDoc.  Adjust the Makefile to use it by
default.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
---
 Documentation/Makefile                  |  5 +----
 Documentation/asciidoctor-extensions.rb | 28 ++++++++++++++++++++++++++++
 2 files changed, 29 insertions(+), 4 deletions(-)
 create mode 100644 Documentation/asciidoctor-extensions.rb

diff --git a/Documentation/Makefile b/Documentation/Makefile
index 19c42eb60..d1b7a6865 100644
--- a/Documentation/Makefile
+++ b/Documentation/Makefile
@@ -179,10 +179,7 @@ ASCIIDOC = asciidoctor
 ASCIIDOC_CONF =
 ASCIIDOC_HTML = xhtml5
 ASCIIDOC_DOCBOOK = docbook45
-ifdef ASCIIDOCTOR_EXTENSIONS_LAB
-ASCIIDOC_EXTRA = -I$(ASCIIDOCTOR_EXTENSIONS_LAB) -rasciidoctor/extensions -rman-inline-macro
-endif
-ASCIIDOC_EXTRA += -alitdd='&\#x2d;&\#x2d;'
+ASCIIDOC_EXTRA += -I. -rasciidoctor-extensions -alitdd='&\#x2d;&\#x2d;'
 DBLATEX_COMMON =
 endif
 
diff --git a/Documentation/asciidoctor-extensions.rb b/Documentation/asciidoctor-extensions.rb
new file mode 100644
index 000000000..09f7088ee
--- /dev/null
+++ b/Documentation/asciidoctor-extensions.rb
@@ -0,0 +1,28 @@
+require 'asciidoctor'
+require 'asciidoctor/extensions'
+
+module Git
+  module Documentation
+    class LinkGitProcessor < Asciidoctor::Extensions::InlineMacroProcessor
+      use_dsl
+
+      named :chrome
+
+      def process(parent, target, attrs)
+        if parent.document.basebackend? 'html'
+          prefix = parent.document.attr('git-relative-html-prefix')
+          %(<a href="#{prefix}#{target}.html">#{target}(#{attrs[1]})</a>\n)
+        elsif parent.document.basebackend? 'docbook'
+          %(<citerefentry>
+<refentrytitle>#{target}</refentrytitle><manvolnum>#{attrs[1]}</manvolnum>
+</citerefentry>
+)
+        end
+      end
+    end
+  end
+end
+
+Asciidoctor::Extensions.register do
+  inline_macro Git::Documentation::LinkGitProcessor, :linkgit
+end
-- 
2.11.0


  reply	other threads:[~2017-01-26  0:13 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-01-22  2:41 [PATCH v2 0/7] Macros for Asciidoctor support brian m. carlson
2017-01-22  2:41 ` [PATCH v2 1/7] Documentation: fix warning in cat-texi.perl brian m. carlson
2017-01-22  2:41 ` [PATCH v2 2/7] Documentation: modernize cat-texi.perl brian m. carlson
2017-01-22  2:41 ` [PATCH v2 3/7] Documentation: remove unneeded argument in cat-texi.perl brian m. carlson
2017-01-22  2:41 ` [PATCH v2 4/7] Documentation: sort sources for gitman.texi brian m. carlson
2017-01-22  2:41 ` [PATCH v2 5/7] Documentation: add XSLT to fix DocBook for Texinfo brian m. carlson
2017-01-22  2:41 ` [PATCH v2 6/7] Documentation: move dblatex arguments into variable brian m. carlson
2017-01-22  2:41 ` [PATCH v2 7/7] Makefile: add a knob to enable the use of Asciidoctor brian m. carlson
2017-01-23  2:57   ` Øyvind A. Holm
2017-01-23  4:09     ` brian m. carlson
2017-01-25  2:26       ` Øyvind A. Holm
2017-01-23 18:59 ` [PATCH v2 0/7] Macros for Asciidoctor support Junio C Hamano
2017-01-25 13:28 ` Johannes Schindelin
2017-01-25 21:35   ` Jeff King
2017-01-25 23:19     ` brian m. carlson
2017-01-25 23:30       ` Jeff King
2017-01-25 23:41         ` brian m. carlson
2017-01-26  0:13           ` brian m. carlson [this message]
2017-01-26  3:46             ` [PATCH] Documentation: implement linkgit macro for Asciidoctor Jeff King
2017-01-26  7:43               ` Eric Wong
     [not found]                 ` <xmqq1svp7lcs.fsf@gitster.mtv.corp.google.com>
2017-01-26 19:18                   ` Eric Wong
2017-01-27  0:40                     ` brian m. carlson
2017-01-31 20:20                       ` Junio C Hamano
2017-01-26 11:43             ` Johannes Schindelin

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=20170126001344.445534-1-sandals@crustytoothpaste.net \
    --to=sandals@crustytoothpaste.net \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=peff@peff.net \
    --cc=sunny@sunbase.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.