require 'asciidoctor/extensions' Asciidoctor::Extensions.register :git do doc = document inline_macro :linkgit do if doc.doctype == 'book' format = '%1$s(%2$s)' elsif doc.basebackend? 'html' prefix = doc.attr('git-relative-html-prefix') format = %(%1$s(%2$s)) elsif doc.basebackend? 'manpage' format = "\e\\fB%s\e\\fP(%s)" elsif doc.basebackend? 'docbook' format = <<~EOF.chomp %s%s EOF else return end process do |_, target, attrs| format % [target, attrs[1]] end end end