class Qiita::Markdown::Filters::CodeBlock
-
Detects language written in <pre> element.
-
Adds lang attribute (but this attribute is consumed by syntax highlighter).
-
Adds detected code data into ‘result`.
You can pass language aliases table via context.
Public Instance Methods
call()
click to toggle source
# File lib/qiita/markdown/filters/code_block.rb, line 16 def call result[:codes] ||= [] doc.search("pre").each do |pre| next unless (code = pre.at("code")) metadata = Metadata.new(code["data-metadata"]) filename = metadata.filename language = metadata.language language = language_aliases[language] || language pre["filename"] = filename if filename pre["lang"] = language if language result[:codes] << { code: pre.text, filename: filename, language: language, } end doc end
Private Instance Methods
language_aliases()
click to toggle source
# File lib/qiita/markdown/filters/code_block.rb, line 38 def language_aliases context[:language_aliases] || DEFAULT_LANGUAGE_ALIASES end