опубликовано:
Поддержка формул на сайте
За отображение формул отвечает отдельная библиотека — Катек (\(\KaTeX \)). Она основана на Теке (\(\TeX\)) Дональда Кнута. Катек рендерит быстрее аналогов и прост в использовании.
Чтобы Катек отрендерил формулы, страница с формулами должна содержать ссылку на библиотеку в заголовке. Благодаря шаблонам Хьюго можно создать отдельный файл, содержащий эту ссылку, и указать файл в шаблоне страниц с формулами (формулы могут находится внутри поста или выводится на главную).
Создадим файл math.html
в папке /layouts/partials/
и вставим в него следующий код:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.15.3/dist/katex.min.css" integrity="sha384-KiWOvVjnN8qwAZbuQyWDIbfCLFhLXNETzBQjA/92pIowpC0d2O3nppDGQVgwd2nB" crossorigin="anonymous">
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.15.3/dist/katex.min.js" integrity="sha384-0fdwu/T/EQMsQlrHCCHoH10pkPLlKA1jL5dFyUOvB3lfeT2540/2g6YgSi2BL14p" crossorigin="anonymous"></script>
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.15.3/dist/contrib/auto-render.min.js" integrity="sha384-+XBljXPPiv+OzfbB3cVmLHf4hdUFHlWNZN5spNQ7rmHTXpd7WvJum6fIACpNNfIR" crossorigin="anonymous"
onload="renderMathInElement(document.body);"></script>
В шаблоне поста (/layouts/_default/single.html
) укажем, нужно ли добавлять Катек (завист от параметра math
, указываемого нами посте):
{{ if or .Params.math .Site.Params.math }}
{{ partial "math.html" . }}
{{ end }}
Добавив в фронт меттер поста math: true
, получим отрендеренные формулы:
$$E=mc^2$$
Кстати, \(\KaTeX\) и \(\TeX\) тоже написаны с помощь Катека.