2

我正在Dancer用 perl 构建一个应用程序。

我的应用程序侦听 POST 事件,将它们存储在数据库中,进行一些计算,然后可能 POST 到另一个 http 端点(它在 text/html 中呈现事件);在我用来进行更新的模块中,我使用 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将您的文本替换为从 markdown 模板文件提供的 main_text。

  2. 使用Text::Markdown将生成的 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 回答