问题标签 [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.
javascript - 从 Perl 中的字符串中删除开始和结束标签
我有一个这样的字符串:
我的要求是从字符串中删除开始和结束脚本标签,如果字符串之间有其他标签,则不应删除这些标签。
我怎样才能在 Perl 中做到这一点?
html - HTML::Mason 在页面生成时显示进度
我被迫使用HTML::Mason
动态生成的网页。不幸的是,该页面依赖于一些长时间运行的计算。我需要以某种方式向用户显示进度。是否可以让 Mason 不等到页面完全生成?
html - perl : HTML::Mason - 以表格格式在 HTML 标记内打印 perl 哈希
我正在尝试发送有关哈希值的 html 电子邮件(报告)。但我无法以表格格式打印哈希值。我HTML::Mason
用来执行我的 perl 命令(通过哈希循环)并在报告末尾打印它。但是我的 perl 代码没有被执行。
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()
的可能性?抱歉,如果我错过了一些基本知识... ;(some
override
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 我可能会使用角色,所以在需要的包中我会使用类似的东西:
包Set1
和Set2
将包含所需方法的实现,或用于动态加载的地方将使用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
。 - 如何实现,编写一次过滤器并在许多其他组件中“使用”它以“重新定义”默认值。
apache - mhtml 在浏览器中显示为纯文本
我对 Perl 和 Mason 很陌生。如果您认为我的问题是微不足道的,请原谅我。
有一个使用 Mason 框架开发的网站。据我所知,它只使用 Apache、Perl (ModPerl)、Mason 和 MySQL。我有网站的代码,我正在尝试让网站在我的 Ubuntu localhost 上运行。
这些是我从头开始遵循的步骤:
- 安装 Apache、MySQL、Perl 和 ModPerl
- 使用 cpanm 安装 HTML-Mason: cpanm HTML::Mason
- 将以下行添加到
apache.conf
我正在这样测试
我创建了一个名为“Hello World”的简单文件test.mhtml
并将其放在目录中/var/www/
。当我尝试在浏览器中打开此文件时,它显示以下内容:
而不是只显示Hello World
我是否必须进行任何其他配置更改?
perl - 生成 Mason 输出,其中输出行应以 % 字符开头
使用Mason从模板(不是 Web)生成一些输出。
需要从 Mason 组件生成输出,其中输出行应以%
字符开头。
因为%<space>
Mason 组件中的行首是作为 perl 命令执行的,所以目前我正在使用:
并且 $perc 在该%init
部分中定义为my $perc = '%';
上述方法有效,但对于许多行来说,这是一个糟糕的解决方案。
问题:是否有可能在某些行的开头包含“%”字符的情况下生成 Mason 输出?
perl - 使用 Mason 组件作为角色
随着新的 Mason 2 引入 Moose 方法修饰符,如 around、augment、override 等,我希望能够开始编写充当 Moose 角色的组件。
据我所知,它不支持开箱即用,但有没有人尝试过扩展 Mason(也许通过插件)来提供这个功能?一般来说,这会带来什么?考虑到 Mason 渲染组件的方式,这是否可能?
编辑:我尝试使用“伪造”它$m->visit('other component')
,这似乎至少加载了另一个组件的方法,但方法修饰符似乎失败了:...not found in the inheritance hierarchy
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
方法的正确输出。
有人可以帮忙吗?
perl - Perl Mason 语法验证
有没有办法在命令行验证 perl mason 语法?我知道您可以只使用常规的 perl 模块perl -c
,但这会引发特定于 mason 的语法(如 docstrings 等)的错误......
例如:
是一个有效的 perl mason 文件,但运行perl -c
它会返回: