вставка игнорируемого кода 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-кода, вы можете безопасно удалить их, если не используете их для других целей.

Другие вопросы по тегам