Подсветка кода предотвращает отображение значения-заполнителя в блоке кода

Я несколько дней боролся с этой проблемой, прежде чем понял, в чём дело. Об этом сообщалось здесь: Placeholder Forms - #48 by jericson.

Похоже, что проблема больше не возникает (или?) на примере из связанного поста, поэтому я воспроизведу её сам:

[wrap=placeholder key=TABLE description="table name" default="users"][/wrap]

```
SELECT * FROM =TABLE=;
```

Вывод:

SELECT * FROM =TABLE=;

Переменная не распознаётся из-за подсветки синтаксиса в блоке кода, которая автоматически устанавливается как SQL.

Полученный HTML:

<code class="hljs language-sql" data-highlighted="yes">
  <span class="hljs-keyword">SELECT</span>
  <span class="hljs-operator">*</span>
  <span class="hljs-keyword">FROM</span>
  <span class="hljs-operator">=</span>
  <span class="hljs-keyword">TABLE</span>
  <span class="hljs-operator">=</span>
  ;
</code>

Если указать txt в блоке кода, то значение отображается корректно:

SELECT * FROM =TABLE=;

Ожидаемое поведение — отображение значения независимо от подсветки синтаксиса кода.

Не знаю, почему блок кода автоматически не устанавливается в SQL, как это было вчера. Это делает мой пример неработоспособным, но на try.discourse.org всё работает, поэтому вот скриншот:

Независимо от автоматического определения языка, факт остаётся фактом: некоторые подсветки синтаксиса ломают строку =VALUE=, и значение не отображается, что нежелательно.

Исправление этой проблемы будет довольно сложным: если маркеры-заполнители парсятся как секции с подсветкой синтаксиса, то при переходе к этапу замены мы их не найдём.

Правильный подход к решению — переработать конвейер и выполнять подсветку только после замены.

На данный момент я считаю это запросом на новую функцию. Я не против добавить пометку «приветствуем PR», если кто-то сможет предложить простой и эффективный способ решения этой задачи.

1 лайк