Как вставить комментарии SSI в приложение Gatsby? - PullRequest
0 голосов
/ 06 ноября 2019

Я создаю приложение Gatsby, и мне нужно вставить несколько строк SSI (в стиле HTML-комментариев). Пример

<!--#set var="section" value="#{section}"-->
<!--#include virtual="/virtual/3.0/script-app.inc"-->

Я не могу найти, как это сделать.

Мне нужно поместить эти (и другие сценарии) перед тегом head, внутри тега head, в конце тега body и непосредственно после него.

Я пробовал много способов, но ни один из них не работает. Я попытался изменить html.js, но он просто удаляет комментарии из выведенного кода. Я также пытался работать с gatsby-ssr и gatsby-browser, но продолжаю думать, что точно не знаю, что делать с этими документами.

Что я ожидаю, что будет вывод (с приведенными примерами кодов):

<!DOCTYPE html>
    <!--#set var="section" value="#{section}"-->
    <html>
        <head>
             <!--#include virtual="/virtual/3.0/script-app.inc"-->
             [rest of head code]
        </head>
    <body>
</html>

Что происходит: моя выходная страница не имеет комментариев вообще, ИЛИ имеет ее в виде строки (как в &lt;!--#include virtual="/virtual/3.0/script-app.inc"--&gt;

1 Ответ

0 голосов
/ 07 ноября 2019

Я решил это, используя gatsby-node.js и onPostBuild(). Копирование html/js с последующим добавлением пользовательских компонентов (например, <ssi-code /> и последующей их заменой с использованием replace-in-file :

  replace.sync({
    files: ['./public/**/*.html', './public/*.html'],
    from: /<SSI-before-html>(.*?)<\/SSI-before-html>/g,
    to: '<!--#include virtual="/virtual/example.inc"-->',
  });
...