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