Ran*_*Lai 3 ruby markdown jekyll kramdown
我正在尝试编写一个jekyll插件,它首先在markdown文件上执行某些操作并将内容传递回默认转换器
例如,
module Jekyll
class RMarkdownConverter < Converter
safe :false
priority :high
def matches(ext)
ext =~ /^\.(md|markdown)$/i
end
def output_ext(ext)
".html"
end
def convert(content)
# do something with content
# then pass it back to default converter
end
end
end
Run Code Online (Sandbox Code Playgroud)
现在,我能得到它的最接近的东西
converter = Jekyll::Converters::Markdown::KramdownParser.new(@config)
converter.convert(content)
Run Code Online (Sandbox Code Playgroud)
但所有突出显示的代码都在失去颜色......我怀疑还有其他问题......
我的问题是:调用默认转换器的正确方法是什么?
这是怎么做的:
module Jekyll
class MyConverter < Converter
safe :false
priority :high
def matches(ext)
ext =~ /^\.(md|markdown)$/i
end
def output_ext(ext)
".html"
end
def convert(content)
# do your own thing with the content
content = my_own_thing(content)
# Now call the standard Markdown converter
site = Jekyll::Site.new(@config)
mkconverter = site.getConverterImpl(Jekyll::Converters::Markdown)
mkconverter.convert(content)
end
end
end
Run Code Online (Sandbox Code Playgroud)
基本上,您正确使用Jekyll::Converters::Markdown,但您无需指定KramdownParser,因为您选择的解析器将Jekyll::Site在您传入@config构造函数时自动选择.