首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展MaRuKu以生成原始html标记,md_html转义html

扩展MaRuKu以生成原始html标记,md_html转义html
EN

Stack Overflow用户
提问于 2010-08-09 09:39:55
回答 1查看 528关注 0票数 0

我正在使用Insitiki代码,并尝试扩展maruku语法以生成一些自定义的html标记。

示例:

代码语言:javascript
复制
|youtube 0FWPr6u8YF |

应打印html代码,如下所示:

代码语言:javascript
复制
<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的视频。

为了让它工作,我遵循了本教程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文档真的很薄(或者我真的不擅长搜索)……这家伙似乎也有类似的问题textile and maruku problem

任何帮助都是非常感谢的。

EN

回答 1

Stack Overflow用户

发布于 2011-02-11 00:25:20

我似乎不能在maruku版本0.6.0下重现这个bug。

代码语言:javascript
复制
context.push(doc.md_html("<p>raw html</p>"))

生成预期的结果,不进行html转义。也许问题已经解决了?

Maruku对你生成的超文本标记语言相当严格,所以它可能不喜欢你插入的实际代码,而不是<p>raw html</p>

为了将来参考,这就是我如何在maruku0.6.0下注册一个span扩展来用<span class='text_var' text_var='var_name'>&nbsp;</span>替换{{var_name}}

代码语言:javascript
复制
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)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3436860

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档