2

私はDancerperlでアプリケーションを構築しています。

私のアプリは POST イベントをリッスンし、それらをデータベースに保存し、いくつかの計算を行ってから、別の http エンドポイント (イベントを text/html にレンダリングする) に POST する可能性があります。更新に使用するモジュールでは、次のような HTML 形式を使用します。

$helper->post_update({
    text => 'some text that is escaped',
    main_text => 'unescaped text, <i>with html</i>',
    ...
});

マークダウンのような拡張可能なサポートを可能にする perl モジュールはありますか?

例えば:

交換

$newtext = "<b>this is bold</b> <i>this is italic</i> <span class="something">@evalutated_with_a_custom_rule</span> ... etc";

$newtext = Markdown::Module->run_rules("*this is bold* _this is italic_ @evalutated_with_a_custom_rule ... etc");

... モデルとビューをさらに切り離すために。

前もって感謝します。

4

2 に答える 2

1

これを行うには、次のような方法がたくさんあると思います。

  1. Template :: Toolkitを使用して、テキストをマークダウンテンプレートファイルから供給されるmain_textに置き換えます。

  2. Text :: Markdownを使用して、結果のマークダウンをHTMLに変換し、クライアントに提供できるようにします。

于 2012-11-27T06:57:45.183 に答える
0

WikiTextモジュールとそのサブモジュールを見てください。例えば

use WikiText::Socialtext;
my $wikitext = '*this is bold* _this is italic_ @evalutated_with_a_custom_rule ... etc';
my $html = WikiText::Socialtext->new($wikitext)->to_html;

…生成されます:

<p><strong>this is bold</strong> <em>this is italic</em> @evalutated_with_a_custom_rule</p>

ところで、前がマークアップであることを意図している場合は@evaluated_with_a_custom_role前に円記号を付けてエスケープするか、一重引用符を使用する必要があります。二重引用符で囲まれた文字列では、perlは配列の内容を補間し@evalutated_with_a_custom_ruleます。

于 2012-11-27T06:57:57.733 に答える