我有这样的字符串:#_ 大家好 _# 我需要创建这样的输出:
<strong>Hi All</strong>
我一直在用谷歌搜索 Ruby 中的解析器,但我找不到一些小而简单的东西来学习如何做这种事情。
任何人都可以帮助我提供文档或想法来做到这一点?
谢谢
小而简单:
text = "#_ Hi all _#"
html = text.gsub(/#_ /,'<strong>').gsub(/ _#/,'</strong>')
稍微高级一点:
tags = {
'#_ ' => '<strong>', ' _#' => '</strong>',
'#q ' => '<blockquote>', ' q#' => '</blockquote>'
}
html = text.gsub(/(#_ | _#|#q | q#)/){ tags[$1] }
如果您愿意,一些关于更高级功能的想法:
启用标签转义,例如\#_
表示“按原样显示此标签”
确保开始标签有相应的停止标签,例如“#_ ... _#”
启用嵌套,例如“#_ ... #_ ... _# ... _#
从标签哈希动态生成 gsub 正则表达式。
等等
你见过 Maruku Ruby Markdown 解析器吗?我喜欢它的代码库,它有很多评论可以指导你:https ://github.com/bhollis/maruku