On Thu, Jan 26, 2017 at 12:13:44AM +0000, brian m. carlson wrote:
> 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;'
Might be more readable to just leave the litdd part on its own line.
> 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
I think this looks reasonable. There's some boilerplate, but even as
somebody not familiar with asciidoctor, it's all quite obvious.
The multi-line string is kind of ugly because of the indentation.
Apparently Ruby has here-docs that will eat leading whitespace, but the
syntax was not introduce until Ruby 2.3, which is probably more recent
than we should count on.
I think you could write:
%(<citerefentry>
<refentrytitle>#{target}</refentrytitle><manvolnum>#{attrs[1]}</manvolnum>
</citerefentry>
).gsub(/^\s*/, "")
I don't know if that's too clever or not.
But either way, I like this better than introducing an extra dependency.
-Peff