Skip to content

Hugo網頁實作 - sidebar

由於美觀與數學內容的需求,想要加入html功能與latex的數學式寫法

html

一般markdown是有支援html的,但hugo要設定才能使用

解法: 到config.toml(或其他設定檔,那可能要找其他設定格式)
加入

[markup.goldmark]  
    [markup.goldmark.renderer]  
      unsafe = true  

即可完成設定

latex數學式

設定較為複雜,大概流程是使用MathJax 3 套件,並進行引入、美化設定

step 1 創建html引入MathJax 3

於layouts/partials/ 創建 mathjax_support.html
(有使用主題的話在theme/layouts/pratials,以下路徑也是一樣)
寫入以下內容

<script>
  MathJax = {
    tex: {
      inlineMath: [['$', '$'], ['\\(', '\\)']],
      displayMath: [['$$','$$'], ['\\[', '\\]']],
      processEscapes: true,
      processEnvironments: true
    },
    options: {
      skipHtmlTags: ['script', 'noscript', 'style', 'textarea', 'pre']
    }
  };

  window.addEventListener('load', (event) => {
      document.querySelectorAll("mjx-container").forEach(function(x){
        x.parentElement.classList += 'has-jax'})
    });

</script>
<script src="https://polyfill.io/v3/polyfill.min.js?features=es6"></script>
<script type="text/javascript" id="MathJax-script" async
  src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>

step 2 於主頁header引入剛剛的設定

在 layouts/partials/header.html 的 head tag中
寫下 {{ partial “mathjax_support.html” . }}

step 3 美化

於CSS檔加入以下設定

code.has-jax {
    -webkit-font-smoothing: antialiased;
    background: inherit !important;
    border: none !important;
    font-size: 100%;
}

完成

效果展示

這是div html tag 並設定這一區塊文字顏色為紅色

這是latex效果呈現
$\sum_{n=1}^5 n^2$

參考資料