35 lines
858 B
Ruby
35 lines
858 B
Ruby
# frozen_string_literal: true
|
|
|
|
require 'asciidoctor'
|
|
|
|
module Gitlab
|
|
module Asciidoc
|
|
class Html5Converter < (Asciidoctor::Converter.for 'html5')
|
|
register_for 'gitlab_html5'
|
|
|
|
def convert_stem(node)
|
|
return super unless node.style.to_sym == :latexmath
|
|
|
|
%(<pre#{id_attribute(node)} data-math-style="display"><code>#{node.content}</code></pre>)
|
|
end
|
|
|
|
def convert_inline_quoted(node)
|
|
return super unless node.type.to_sym == :latexmath
|
|
|
|
%(<code#{id_attribute(node)} data-math-style="inline">#{node.text}</code>)
|
|
end
|
|
|
|
def convert_inline_anchor(node)
|
|
node.id = "user-content-#{node.id}" if node.id && !node.id.start_with?('user-content-')
|
|
|
|
super(node)
|
|
end
|
|
|
|
private
|
|
|
|
def id_attribute(node)
|
|
node.id ? %( id="#{node.id}") : nil
|
|
end
|
|
end
|
|
end
|
|
end
|