1

私はこのような文字列を持っています: #_ Hi all _# そして、私はこのような出力を作成する必要があります:

<strong>Hi All</strong>

私はRubyのパーサーについてグーグルで調べてきましたが、この種のことを行う方法を学ぶための小さくて簡単なものを見つけることができません.

これを行うためのドキュメントやアイデアを手伝ってくれる人はいますか?

ありがとう

4

1 に答える 1

1

小型でシンプル:

text = "#_ Hi all _#"

html = text.gsub(/#_ /,'<strong>').gsub(/ _#/,'</strong>')

少し高度:

tags = {
  '#_ ' => '<strong>', ' _#' => '</strong>',
  '#q ' => '<blockquote>', ' q#' => '</blockquote>'
}

html = text.gsub(/(#_ | _#|#q | q#)/){ tags[$1] }

必要に応じて、より高度な機能のいくつかのアイデア:

  • \#_「このタグをそのまま表示する」など、タグのエスケープを有効にする

  • 開始タグには、「#_ ... _#」などの対応する終了タグがあることを確認してください

  • "#_ ... #_ ... _# ... _# などのネスティングを有効にする

  • タグのハッシュから gsub regexp を動的に生成します。

Maruku Ruby Markdown パーサーを見たことがありますか? 私はそのコードベースが好きで、ガイドとなるコメントがたくさんあります: https://github.com/bhollis/maruku

于 2013-02-26T01:33:09.803 に答える