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