29 lines
		
	
	
		
			800 B
		
	
	
	
		
			Ruby
		
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			800 B
		
	
	
	
		
			Ruby
		
	
	
| 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
 |