mdbook使用记录
使得mdbook在发布后支持数学公式
1. 根目录的book.toml中注释或者删除math相关的所有
2. 项目根目录与src平级的目录处, 新建theme目录,theme目录新建文件head.hbs,这个文件会被mdbook自动加载。
mdbook内容如下:
<script>
window.MathJax = {
tex: {inlineMath: [['$', '$'], ['\\(', '\\)']]}
};
</script>
<script src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
<script>
function renderMath() {
if (window.MathJax) {
MathJax.typesetPromise();
}
}
// 页面初次加载
document.addEventListener("DOMContentLoaded", renderMath);
// mdBook 切换章节时
document.addEventListener("DOMContentLoaded", () => {
const observer = new MutationObserver(renderMath);
observer.observe(document.querySelector("#content"), { childList: true, subtree: true });
});
</script>
mdbook 结合github action发布太慢优化
观察发现,github每次打包都要重新便宜mdbook,导致花费时间太长,所以优化mdbook.yml直接用已经打包的二进制包 样例:
name: Deploy mdBook site to Pages
on:
push:
branches: ["master"]
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
# 直接下载你打好的 Linux 版 mdBook
- name: Install mdBook (Chinese search fork)
run: |
curl -L -o mdbook https://github.com/zhangyinyuan/mdBook/releases/download/auto-build/mdbook-linux
chmod +x mdbook
sudo mv mdbook /usr/local/bin/
- name: Setup Pages
id: pages
uses: actions/configure-pages@v5
- name: Build with mdBook
run: mdbook build
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: ./book # 注意自己大号包之后的文件夹的名称, 由book.toml文件中的build-dir属性决定
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
needs: build
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4