tldr;это не было проблемой Svelte. Это была проблема с моим сериализатором для утилиты Sanity blocks-to-html
.
Привет @RichHarris! Собрав репо для репродукции, я обнаружил, что призма работает, как и ожидалось. Тогда я смог сузить свою проблему.
Я должен был упомянуть вначале, я использую Sapper и загружаю контент из Sanity. Я сделал модификацию сериализатора для утилиты Sanity block-content-to-html
, которая преобразует мой переносимый текст в разметку. Тег <pre>
получает data-language='HTML'
от Sanity, а CSS Prism ожидает class="language-HTML
. Я изменил свой сериализатор на:
code: ({node}) =>
h(
"pre",
{
"data-language": node.language, "class": "language-" + node.language
},
h("code", {}, node.code)
)
, который работал после обновления. Атрибут класса был добавлен, и CSS применен. Я просто пролистываю код, так как не знаю, как работает blocksToHtml
, но после изменения свойства объекта на className
все работает как положено:
code: ({node}) =>
h(
"pre",
{
"data-language": node.language, className: "language-" + node.language
},
h("code", {}, node.code)
)
Спасибоза взгляд, Рич! Я действительно наслаждаюсь Svelte!