私は、ほとんどが機能するツリートップ グラマー ファイルを作成しました。[b]
そのフォーラム用に構成された BBCodes のハッシュを持つ関数にそれらを渡したいようなタグの場合。太字が許可されている場合は HTML が返され、それ以外の場合は BB コードが無視されます。
rule tag
tag:('[' [a-zA-Z]+ ']')
inner_tag:(
!('[/' [a-zA-Z]+ ']')
(tag <ForumBB::TagNode> / .)
)+
'[/' [a-zA-Z]+ ']'
end
これは、ネストされたタグでは機能しません。たとえば[b][i]Bold and italics[/i][/b]
、 の最初の終了タグと一致するため、正しく処理されません[/i]
。
タグが見つかったときに、否定的なルックヘッドで終了タグを探すようにするにはどうすればよいですか?
BBCode は、フォーラム管理者が特定のタグをオン/オフする動的システムであるため、BBCode の種類ごとにすべてのルールを書き出す必要はありません。