如何在Jekyll Markdown处理器中提取YAML前端?
我正在编写一个自定义降价处理器,可以将纯文本歌词转换为HTML以进行reveal.js
演示。不同的歌曲有不同的结构。假设我有一首我想要显示的歌曲
1st line of 1st verse
2nd line of 1st verse
3rd line of 1st verse
1st line of chorus
2nd line of chorus
3rd line of chorus
1st line of 2nd verse
2nd line of 2nd verse
3rd line of 2nd verse
1st line of chorus
2nd line of chorus
3rd line of chorus
1st line of 3rd verse
2nd line of 3rd verse
3rd line of 3rd verse
1st line of chorus
2nd line of chorus
3rd line of chorus
我想将输入文件保存到Jekyll DRY中(不要重复自己),所以我希望保留markdown文件类似于此:
1st line of 1st verse
2nd line of 1st verse
3rd line of 1st verse
>1st line of chorus
2nd line of chorus
3rd line of chorus
1st line of 2nd verse
2nd line of 2nd verse
3rd line of 2nd verse
1st line of 3rd verse
2nd line of 3rd verse
3rd line of 3rd verse
并使用>
符号告诉markdown这是合唱。我可以轻松地编写一个Ruby扩展来为简单的歌曲做这个,这些歌曲有一个合唱 - 合唱 - 合唱 - 合唱 - 合唱结构(vcvcvc
),但是有一些歌曲有桥梁和预先chrouses同样,我也喜欢让Markdown从某种Jekyll YAML前线(vvpcvvpcbc
等)获取这个结构。有没有人知道这样做的方式? 如何在Jekyll Markdown处理器中提取YAML前端?
这是我到目前为止的Ruby代码,位于我的_plugins
目录中:
class Jekyll::Converters::Markdown::Songify
def initialize(config)
rescue LoadError
end
def convert(content)
content = content.gsub(/\n/, "<br/>")
content = content.gsub(/(<br\/>){2,}/,"</section><section>")
# Populate an array with paragraphs
# Detect chorus
# Interleave chorus between all following verses
# Join paragraphs with <section>
# Return the HTML verse
return content
end
end