1require 'asciidoctor'
2require 'asciidoctor/extensions'
3
4module Perf
5  module Documentation
6    class LinkPerfProcessor < Asciidoctor::Extensions::InlineMacroProcessor
7      use_dsl
8
9      named :chrome
10
11      def process(parent, target, attrs)
12        if parent.document.basebackend? 'html'
13          %(<a href="#{target}.html">#{target}(#{attrs[1]})</a>\n)
14        elsif parent.document.basebackend? 'manpage'
15          "#{target}(#{attrs[1]})"
16        elsif parent.document.basebackend? 'docbook'
17          "<citerefentry>\n" \
18            "<refentrytitle>#{target}</refentrytitle>" \
19            "<manvolnum>#{attrs[1]}</manvolnum>\n" \
20          "</citerefentry>\n"
21        end
22      end
23    end
24  end
25end
26
27Asciidoctor::Extensions.register do
28  inline_macro Perf::Documentation::LinkPerfProcessor, :linkperf
29end
30