问题标签 [mason]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
614 浏览

javascript - 从 Perl 中的字符串中删除开始和结束标签

我有一个这样的字符串:

我的要求是从字符串中删除开始和结束脚本标签,如果字符串之间有其他标签,则不应删除这些标签。

我怎样才能在 Perl 中做到这一点?

0 投票
1 回答
58 浏览

html - HTML::Mason 在页面生成时显示进度

我被迫使用HTML::Mason动态生成的网页。不幸的是,该页面依赖于一些长时间运行的计算。我需要以某种方式向用户显示进度。是否可以让 Mason 不等到页面完全生成?

0 投票
2 回答
1417 浏览

html - perl : HTML::Mason - 以表格格式在 HTML 标记内打印 perl 哈希

我正在尝试发送有关哈希值的 html 电子邮件(报告)。但我无法以表格格式打印哈希值。我HTML::Mason用来执行我的 perl 命令(通过哈希循环)并在报告末尾打印它。但是我的 perl 代码没有被执行。

0 投票
1 回答
295 浏览

perl - 梅森方法范围 - 覆盖

使用Mason2。有 3 个组件。

/tmp/index.mc一个内容:

$.Some在 中定义的方法/Base.mc

/tmp/Base.mc仅包含

要求/tmp/index打印:

现在将Some方法添加到/tmp/Base.mc

再次请求/tmp/index,它打印:

它尊重Some包装中重新定义的方法/tmp/Base.mc

问题是:

如果 Mason 允许重新定义上述方法,那么 的目的是<%override method>什么?有<%override Some>什么不同吗?(当我测试时,它打印相同)。

编辑也许问题可以简化为以下 perl 代码。

在这两种情况下(例如“plain”重新定义和用“override”重新定义)打印:

所以,唯一的区别是调用withsuper()的可能性?抱歉,如果我错过了一些基本知识... ;(someoverride

0 投票
1 回答
143 浏览

perl - Mason2 中的多个方法覆盖

使用Mason2构建网站。每个页面应该调用 3 个过滤器(方法,按内容调用):

我对这些过滤器(方法)有 3 种不同的实现。这 3 个过滤器的默认设置是在顶级/Base.mc组件中定义的。

现在,对于网站的不同部分 - (不同的路线),比如说

需要使用上面的默认过滤器/方法集,但对于其他路由,

需要使用另一组filter1, filter2,filter3

想用第三套。

这些方法可以很容易地在较低级别的组件中重新定义,但是按照(this question)中的方式进行操作并不符合 DRY 原则,例如在每个

需要重复相同的 3

问题是:

  • 如何只编写一次方法的 3 种不同实现,以及如何一次使用它们?

我尝试制作一个组件,例如:/set2.mi,,/set3.mi我尝试覆盖那些过滤器方法,并在需要时调用/{c,d,e}/Base.mc

但这不起作用。

如何编写 3 种不同的方法实现并在所需的 deeprr 中一次调用它们Base.mc?可能吗?

在标准 perl 我可能会使用角色,所以在需要的包中我会使用类似的东西:

Set1Set2将包含所需方法的实现,或用于动态加载的地方将使用require .... 在 Mason2 中是否有可能,或者我必须重复%ovverride

希望这是有道理的......如果没有,请添加评论,我会尝试更新问题。

编辑

例如,为了缩短代码,只使用一个过滤器而不是 3。

/Base.mc

当在/a/index.mc使用它作为

将输出如下:

现在,再来一个MyHead

如果我将上面的代码添加到我的/b/Base.mc它将工作,并MyHead/b/index.mc

将调用重新定义的过滤器,并将输出我想要的

问题是,

  • 我不想在其他N个Base.mc组件中重复上面的过滤代码,比如in/c/Base.mc/d/Base.mc
  • 如何实现,编写一次过滤器并在许多其他组件中“使用”它以“重新定义”默认值。
0 投票
0 回答
707 浏览

apache - mhtml 在浏览器中显示为纯文本

我对 Perl 和 Mason 很陌生。如果您认为我的问题是微不足道的,请原谅我。

有一个使用 Mason 框架开发的网站。据我所知,它只使用 Apache、Perl (ModPerl)、Mason 和 MySQL。我有网站的代码,我正在尝试让网站在我的 Ubuntu localhost 上运行。

这些是我从头开始遵循的步骤:

  1. 安装 Apache、MySQL、Perl 和 ModPerl
  2. 使用 cpanm 安装 HTML-Mason: cpanm HTML::Mason
  3. 将以下行添加到apache.conf

我正在这样测试

我创建了一个名为“Hello World”的简单文件test.mhtml并将其放在目录中/var/www/。当我尝试在浏览器中打开此文件时,它显示以下内容:

而不是只显示Hello World

我是否必须进行任何其他配置更改?

0 投票
1 回答
47 浏览

perl - 生成 Mason 输出,其中输出行应以 % 字符开头

使用Mason从模板(不是 Web)生成一些输出。

需要从 Mason 组件生成输出,其中输出行应以%字符开头。

因为%<space>Mason 组件中的行首是作为 perl 命令执行的,所以目前我正在使用:

并且 $perc 在该%init部分中定义为my $perc = '%';

上述方法有效,但对于许多行来说,这是一个糟糕的解决方案。

问题:是否有可能在某些行的开头包含“%”字符的情况下生成 Mason 输出?

0 投票
0 回答
84 浏览

perl - 使用 Mason 组件作为角色

随着新的 Mason 2 引入 Moose 方法修饰符,如 around、augment、override 等,我希望能够开始编写充当 Moose 角色的组件。

据我所知,它不支持开箱即用,但有没有人尝试过扩展 Mason(也许通过插件)来提供这个功能?一般来说,这会带来什么?考虑到 Mason 渲染组件的方式,这是否可能?

编辑:我尝试使用“伪造”它$m->visit('other component'),这似乎至少加载了另一个组件的方法,但方法修饰符似乎失败了:...not found in the inheritance hierarchy

0 投票
1 回答
123 浏览

perl - Mason2 使用“go”方法错误的 utf8 编码

有点长的问题,因为 AFAIK Poet/Mason2 不是经常使用的框架 - 所以我试图详细说明。

两年前我问了一个问题如何让 Mason2 utf8 干净。据我所知,梅森/诗人在这个领域并不是什么新鲜事——不幸的是,今天我遇到了另一个问题。简单的测试用例:

重写一些方法,允许在组件中使用 utf8:

添加./lib/My/Mason/Compilation.pm

以上为每个编译的 Mason 组件添加了use utf8....

还需要对 Mason 的输出进行编码(Plack 需要字节),因此:./lib/My/Mason/Request.pm

现在,可以创建一个组件page.mc,例如具有以下内容:

运行诗人应用程序后,bin/run.pl您可以转到:http://0:5000/page并将获得正确的内容。

一只快速的棕色狐狸跳过懒惰的狗。ΔΙΑΦΥΛΆΞΤΕ ΓΕΝΙΚΆ ΤΗ ZΩΉ ΣΑΣ ΑΠΌ ΒΑΘΕΙΆ ΨΥΧΙΚΆ ΤΡΑΎΜΑΤΑ。ÁRVÍZTŰRŐ TÜKÖRFÚRÓGÉP。DOŚĆ GRÓŹB FUZJĄ,KLNĘ,PYCH 我 MAŁŻEŃSTW!ЭХ, ЧУЖАК, ОБЩИЙ СЪЁМ ЦЕН ШЛЯП (ЮФТЬ) – ВДРЫЗГ!KŔDEĽ ŠŤASTNÝCH ĎATĽOV UČÍ PRI ÚSTÍ VÁHU MĹKVEHO KOŇA OBHRÝZAŤ KÔRU A ŽRAŤ ČERSTVÉ MÄSO。ZWÖLF BOXKÄMPFER JAGEN VIKTOR QUER ÜBER DEN GROSSEN SYLTER DEICH。

但是当创建另一个组件时,说go.mc一个内容

内部重定向(go方法)有些混乱的内容,并会产生:

一只快速的棕色狐狸跳过懒惰的狗。ÎÎÎΦΥÎÎÎΤΠÎÎÎÎÎÎΠΤΠÎΩΠΣÎΣ ÎÎ Î ÎÎÎÎÎÎΠΨΥΧÎÎΠΤΡ ÃRVÃZTÅ°RÅ TÃKÃRFÃRÃGÃP。DOÅÄ GRÃŹB FUZJÄ, KLNÄ, PYCH I MAÅÅ»EÅSTW!ÐÐ¥, ЧУÐÐÐ, ÐЩÐРС¡¡ KÅDEĽ ŠŤASTNÃCH ÄATĽOV UÄà PRI ÃSTà VÃHU MĹKVEHO KOÅA OBHRÃZAŤ KÃRU A ŽRAŤ ÄERSTVà MÃSO。ZWÃLF BOXKÃMPFER JAGEN VIKTOR QUER ÃBER DEN GROSSEN SYLTER DEICH。

奇怪,$m->visit()工作正常。所以,在 Poet/Mason 的某个地方需要做一些事情来获得该go方法的正确输出。

有人可以帮忙吗?

0 投票
1 回答
805 浏览

perl - Perl Mason 语法验证

有没有办法在命令行验证 perl mason 语法?我知道您可以只使用常规的 perl 模块perl -c,但这会引发特定于 mason 的语法(如 docstrings 等)的错误......

例如:

是一个有效的 perl mason 文件,但运行perl -c它会返回: