class Asciidoctor::DocBook45::InlineAnchorTemplate

def anchor(target, text, type)

def anchor(target, text, type)
  case type
  when :ref
    %(<anchor id="#{target}" xreflabel="#{text}"/>)
  when :xref
    text.nil? ? %(<xref linkend="#{target}"/>) : %(<link linkend="#{target}">#{text}</link>)
  when :link
    %(<ulink url="#{target}">#{text}</ulink>)
  when :bibref
    %(<anchor id="#{target}" xreflabel="[#{target}]"/>[#{target}])
  end
end

def template

def template
  # hot piece of code, optimized for speed
  @template ||= @eruby.new <<-EOS
#encoding:UTF-8%><%= template.anchor(@target, @text, @type) %>
  EOS
end