вставка игнорируемого кода php в компоненты Maizzle
Я работаю над проектом, использующим фреймворк Maizzle html-email, который должен иметь встроенный (но проигнорированный) 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.
1 ответ
Обновлять
Это было исправлено в Maizzle v3.1.6.
Марк, я думаю, что это может быть проблема с плагином posthtml-modules , который мы используем для функциональности компонентов в Maizzle.
В частности, его метод processWithPostHtml не передает никаких параметров для рендеринга PostHTML, поэтому ваш
posthtml
конфиг в Maizzle
config.js
не передается по наследству. Это объясняет, почему он работает вне компонентов.
Мне нужно будет подтвердить это с командой PostHTML; надеюсь, это легко исправить в
posthtml-modules
и мы можем автоматически передать ему пользовательские параметры PostHTML из конфигурации Maizzle.
Я создал для этого проблему в Maizzle и обновлю свой ответ в обоих местах, как только мы найдем решение.
PS: вам не нужно
<raw>
тег или
posthtml-custom-elements
плагин для рендеринга PHP-кода, вы можете безопасно удалить их, если не используете их для других целей.