Чтобы указывать что за кусок кода я размещаю на странице я на скорую руку набросал плагин для Jekyll. Он добавляет микроразметку к блоку кода.
Вместо ``` lang используем конструкцию {% mds lang %}. Например:
{% mds ruby %}
module Jekyll …
{% endmds %}
К фрагменту кода будет добалена microdata разметка:
<div itemscope="" itemtype="http://schema.org/SoftwareSourceCode">
<meta itemprop="codeSampleType" content="code snippet" />
<meta itemprop="programmingLanguage" content="ruby" />
Просто помещаем файлик в каталог _plugins
.
module Jekyll
class MicrodataHighlightBlock < Liquid::Block
def initialize(tag_name, params, tokens)
@lang = params.strip
super
end
def render(context)
contents = "\n``` " + @lang + "\n" + super + "\n```\n"
site = context.registers[:site]
# pipe param through liquid to make additional replacements possible
content = Liquid::Template.parse(contents).render context
converter = site.find_converter_instance(Jekyll::Converters::Markdown)
content = converter.convert(content)
output = '<div itemscope itemscope itemtype="http://schema.org/SoftwareSourceCode"><meta itemprop="codeSampleType" content="code snippet" /><meta itemprop="programmingLanguage" content="' + @lang + '" />'
output += content
output += '</div>'
output
end
end
end
Liquid::Template.register_tag("mds", Jekyll::MicrodataHighlightBlock)