Hugo 블로그
- Github 블로그를 지원하는 플랫폼은 다양하게 존재합니다 .(jekyll, Hexo, Gatsby, Hugo)
- 기존에는 Hexo를 사용하고 있었는데, 언어의 불편함(중국어가 많습니다.)과 느린 업데이트의 문제로 Hugo로 이사를 했습니다.
- 진정 새로운 무언가를 창조하려 한다면.. 처음부터 다시 시작해야 한다는 말을 듣고 이전에 작성한 글은 옮기지 않고 있습니다.
- Hugo는 많은 테마를 지원하고 있었고, 그 중 PaperMod를 사용하고 있습니다. 테마를 만들어주시는 모든 분께 깊은 감사를 드립니다.
Hugo KaTeX
- Hexo를 사용할 때에도 MathJax를 사용하는 데 많은 어려움을 겪었습니다.
- 그나마 익숙한 MathJax 대신 Hugo는 KaTeX를 사용한다고 하니 적용해보도록 합니다.
- PaperMod 테마 블로그에 Math Typesetting를 참고하면… 수식 입력 활성화 방법을 쉽게 설명하고 있는데, 웹 관련 지식이 전혀 없는지라 조금 어려웠습니다.
- 다음에 비슷한 문제를 겪었을 때를 대비하여, 블로그를 하는 목적이 크므로 적용한 방법을 작성합니다.
Hugo KaTeX 활성화
theme/hugo-PaperMod/layouts/partials/math.html
파일을 생성합니다.
|
|
math.html
파일에 아래와 같은 내용을 입력합니다.- KaTeX의 Auto-render Extension 링크에 있는 내용입니다. 버전이 변경되면 HTML을 직접 수정해야 하니 주기적으로 확인합니다.
|
|
- PaperMod 테마는 사용자가 HTML 태그를 추가한 경우
head
와footer
에 쉽게 추가하도록extend_head.html
과extend_footer.html
을 제공하고 있습니다. - 다른 테마를 확인해보니
extend_head.html
과 같은 파일이 없는 경우가 있습니다. 이런 경우에는 직접 추가하면 됩니다. extend_head.html
에math.html
파일 내용을 추가하도록 합니다.
|
|
extend_head.html
파일은head.html
파일에 연결되어 있습니다.- 만약
extend_head.html
을 사용하지 않는다면head.html
파일 어딘가에 적절히 추가하도록 합니다.
|
|
Hugo KaTeX 사용법
- HTML을 몰라도
{{ if or .Params.math .Site.Params.math }}
을 보면math
또는Site.math
변수가true
인 경우math.html
이 적용되는 것으로 이해할 수 있습니다. - Hugo의
config.yml
파일에math: true
를 입력해도 좋지만, 모든 페이지가 KaTeX Rendering을 하게 되므로 불필요한 경우가 발생합니다. - Markdown의 Front Matter에
math
변수를 입력하기 위해archetypes/default.md
를 수정합니다.
|
|
- 이제 새로운 Markdown 파일을 만들면 자동으로
math
옵션이 있습니다. 필요한 경우에만 이를 활성화합니다.
Hugo KaTeX 예제
- KaTeX는 MathJax와 다르게 인라인 수식의 사용법이 다릅니다.
$ ... $
가 아닌\\( ... \\)
을 사용합니다.- 간단한 수식을 입력해봅니다.
|
|
- 결과
$$ y = ax^2 + bx + c $$
- 인라인 수식 예제 \(y = ax^2 + bx + c\)도 잘 입력됩니다.
- 다양한 특수 수식은 Suppoerted Functions과 Suppoert Table을 참고합니다.