Hugo and Math

Прикручиваем к сайту на hugo поддержку отображения математических формул

Автор: Ivan Osipov
Дата публикации: 2018-04-25
В категориях: Blog, Hobby
Тэги: hugo, math, datascience, latex, mathjax

Сейчас я в нахожусь в процессе прохождения курсов по Data Science и, как следствие, некоторые вещи мне хочется законспектировать в виде блога. Основная проблема в том, что для конспектирования материала хотелось бы иметь возможность писать математические формулы в LaTeX синтаксисе или около того. Если хорошенько поискать, то в документации hugo можно наткнуться на вот этот раздел. Заметка будет полезна тем, кто организовывает свой блог через статик-генератор gohugo и хочет подключить поддержку формул.

Библиотека MathJax - js библиотека, которая позволяет отображать математические выражения описанные в LaTeX синтаксисе. Для того, чтобы подключить поддержку этой библиотеки к вашему блогу, во-первых создадим пока пустой файл mathjax_support.html и положим его в папку исходников блога layouts/partials сразу же подключим и проинициализируем его в файле header.md перед закрывающим тегом </head> следующим образом:

{{ partial "mathjax_support.html" . }}

Наполним файл следующим образом: укажем где найти библиотеку и как её проинициализировать.

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>

<script type="text/x-mathjax-config">
MathJax.Hub.Config({
  tex2jax: {
    inlineMath: [['$','$'], ['\\(','\\)']],
    displayMath: [['$$','$$'], ['\[','\]']],
    processEscapes: true,
    processEnvironments: true,
    skipTags: ['script', 'noscript', 'style', 'textarea', 'pre'],
    TeX: { equationNumbers: { autoNumber: "AMS" },
         extensions: ["AMSmath.js", "AMSsymbols.js"] }
  }
});
</script>

Готово. На страничке hugo документации можно найти решения основных проблем при подключении библиотеки. Лично у меня заработало из коробки.

В результате, следующий код:

$$
c^{2} = a^{2} + b^{2}
$$

Превращается в формулу:

$$ c^{2} = a^{2} + b^{2} $$

comments powered by Disqus