28 lines
800 B
28 lines
800 B
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
|
|
|