扩展MaRuKu以生成原始html标签,md_html转义为html

我正在使用Insitiki代码并尝试扩展maruku语法以生成一些自定义html标记。 例:
|youtube 0FWPr6u8YF |
应该打印html代码如下:
<object data='http://www.youtube.com/v/01hcB2zmMqM' style='width:425px; height:350px;' type='application/x-shockwave-flash'><param name='movie' value='http://www.youtube.com/v/01hcB2zmMqM'/></object>
因此给我一个youtube embbeded视频。 为了使它工作,我按照本教程http://maruku.rubyforge.org/extending/extensions.html查看了maruku文档。 问题是,使用maruku方法:
context.push(doc.md_html("<p>raw html</p>"))
生成的html代码是转义的,所以我得到的是逐字文本而不是我想要的原始html。 我尝试改变策略并使用类似的东西:
context.push(doc.md_el(:raw_html,[],:raw_html => "<p> raw raw raw </p>")
没用...我现在得到的是:
REXML could not parse this XML/HTML:
在这个问题上什么也没发现,maruku文件很薄(或者我的搜索真的很糟糕)......这家伙似乎有类似的问题纺织和maruku问题 任何帮助表示赞赏。     
已邀请:
我似乎无法在maruku版本0.6.0下重现此错误。
context.push(doc.md_html("<p>raw html</p>"))
生成预期结果,没有html转义。也许问题已得到解决? Maruku对你正在生成的HTML非常严格,所以也许它不喜欢你插入的实际代码而不是
<p>raw html</p>
为了将来的参考,这就是我设法在maruku 0.6.0下注册一个span扩展来替换
{{var_name}}
<span class='text_var' text_var='var_name'>&nbsp;</span>
TextVar = /({{)(.+)(}})/

MaRuKu::In::Markdown.register_span_extension(
  :chars => 123, #ASCII ordinal of {
  :regexp => TextVar,
  :handler => lambda do |doc, src, con|
    m = src.read_regexp3(TextVar)
    var_name = m.captures.compact[1]
    string = "<span class='text_var' text_var='#{var_name}'>&nbsp;</span>"
    con.push doc.md_html(string)
    #con.push doc.md_html("<p>raw html</p>")
    true
end)
    

要回复问题请先登录注册