| 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>\n" \ |
| "<refentrytitle>#{target}</refentrytitle>" \ |
| "<manvolnum>#{attrs[1]}</manvolnum>\n" \ |
| "</citerefentry>\n" |
| end |
| end |
| end |
| end |
| end |
| |
| Asciidoctor::Extensions.register do |
| inline_macro Git::Documentation::LinkGitProcessor, :linkgit |
| end |