在 Maizzle 组件中插入被忽略的 php 代码
inserting ignored php code within Maizzle components
我正在使用 Maizzle html-email framework 开发一个项目,该项目需要在最终生产构建文件中嵌入(但忽略)一些 php 代码,以便稍后在运行时执行。本质上,我只是希望 Maizzle 在构建过程中忽略 php 代码块。
要从包含在带有 <component src="compname.html"></component>
标记的主模板文件中的组件文件中忽略的简化代码。
...
<p>News for the Week of <rawcode class="rawcode"><?php echo $start_date ?> to <?php echo $end_date ?> from the following categories: <?php echo $cat01, $cat02, $cat03, $cat04 ?></rawcode></p>
...
来自 config.production.js 文件的代码
posthtml: {
plugins: [require('posthtml-custom-elements')()],
options: {
directives: [{ name: '?php', start: '<', end: '>' }],
},
expressions: {
ignoredTag: 'rawcode'
},
},
只要 php 代码直接在主模板文件中,我就可以通过使用 Raw 标记跳过表达式解析以及添加 posthtml-custom 来实现它-elements 指令到我的配置文件,使用 Maizzle 文档中显示的示例跳过忽略 php 代码。
问题: 但是,如果 php 代码位于我包含在模板文件中的组件文件中,我将无法使它工作。 php 组件文件中的任何代码在 运行“maizzle 生产构建”之后被完全删除。
我希望有人可以提供解决方案,或者这是否只是 Maizzle 工作方式的限制。
更新
这已在 Maizzle v3.1.6 中修复。
马克,我认为这可能是我们在 Maizzle 中用于组件功能的 posthtml-modules 插件的问题。
具体来说,它的 processWithPostHtml 方法不会将任何选项传递给 PostHTML 呈现,因此您在 Maizzle 的 config.js
中的 posthtml
配置没有 inherited/passed 关闭。这就解释了为什么它在组件之外工作。
我需要与 PostHTML 团队确认这一点;希望它是 posthtml-modules
中的一个简单修复,我们可以自动将用户的 PostHTML 选项从 Maizzle 配置传递给它。
我已经 created an issue in Maizzle 解决了,一旦找到解决方案,我会在这两个地方更新我的回复
P.S.: 你不需要 <raw>
标签或 posthtml-custom-elements
插件来呈现 PHP 代码,如果不需要,你可以安全地删除它们将它们用于其他目的。
我正在使用 Maizzle html-email framework 开发一个项目,该项目需要在最终生产构建文件中嵌入(但忽略)一些 php 代码,以便稍后在运行时执行。本质上,我只是希望 Maizzle 在构建过程中忽略 php 代码块。
要从包含在带有 <component src="compname.html"></component>
标记的主模板文件中的组件文件中忽略的简化代码。
...
<p>News for the Week of <rawcode class="rawcode"><?php echo $start_date ?> to <?php echo $end_date ?> from the following categories: <?php echo $cat01, $cat02, $cat03, $cat04 ?></rawcode></p>
...
来自 config.production.js 文件的代码
posthtml: {
plugins: [require('posthtml-custom-elements')()],
options: {
directives: [{ name: '?php', start: '<', end: '>' }],
},
expressions: {
ignoredTag: 'rawcode'
},
},
只要 php 代码直接在主模板文件中,我就可以通过使用 Raw 标记跳过表达式解析以及添加 posthtml-custom 来实现它-elements 指令到我的配置文件,使用 Maizzle 文档中显示的示例跳过忽略 php 代码。
问题: 但是,如果 php 代码位于我包含在模板文件中的组件文件中,我将无法使它工作。 php 组件文件中的任何代码在 运行“maizzle 生产构建”之后被完全删除。
我希望有人可以提供解决方案,或者这是否只是 Maizzle 工作方式的限制。
更新
这已在 Maizzle v3.1.6 中修复。
马克,我认为这可能是我们在 Maizzle 中用于组件功能的 posthtml-modules 插件的问题。
具体来说,它的 processWithPostHtml 方法不会将任何选项传递给 PostHTML 呈现,因此您在 Maizzle 的 config.js
中的 posthtml
配置没有 inherited/passed 关闭。这就解释了为什么它在组件之外工作。
我需要与 PostHTML 团队确认这一点;希望它是 posthtml-modules
中的一个简单修复,我们可以自动将用户的 PostHTML 选项从 Maizzle 配置传递给它。
我已经 created an issue in Maizzle 解决了,一旦找到解决方案,我会在这两个地方更新我的回复
P.S.: 你不需要 <raw>
标签或 posthtml-custom-elements
插件来呈现 PHP 代码,如果不需要,你可以安全地删除它们将它们用于其他目的。