* Add support for Mermaid diagrams in markdown content
This commit introduces native Mermaid diagram rendering to the theme.
Following Hugo’s official documentation, a new custom code block renderer
(`render-codeblock-mermaid.html`) was added under `layouts/_default/` to
detect Mermaid code blocks and inject the necessary script flag into the
page context.
Additionally, the `baseof.html` template now conditionally includes the
Mermaid JS module from the CDN when a page contains a Mermaid diagram:
{{ if .Store.Get "hasMermaid" }}
<script type="module">
import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.esm.min.mjs';
mermaid.initialize({ startOnLoad: true, theme: 'neutral' });
</script>
{{ end }}
This enables rendering of fenced code blocks using the `mermaid` language
in markdown files without requiring any external preprocessing.
* Create article/components/mermaid and fix script version
---------
Co-authored-by: Jimmy <jimmy@cai.im>
Currently, the new table of contents is disabled by default. I will change that after several versions.
-------------
* feat: Table of Content (WIP)
* fix: set scratch inside define block
* fix(toc): darkmode text color
* feat: unify page layout, and add config to disable toc
* feat: add scroll-behavior: smooth to html
* fix: use <ol> for TOC. And Disable TOC by default for now
* refactor: use css flexbox for article page with toc
enable toc for example site
* feat(i18n): add i18n entry for "Back" and "Table of Contents"
* style: remove unused `keep-sidebar` class
* doc: add table of contents as feature
* refactor(WIP): add new SCSS mixin `respond`
Theme's stylesheet mixes the use of max-width and min-width for responsive design, and it's horrible.
* refactor: update variable.scss to use @mixin respond
* refactor(grid): adjust sidebar max-width
* refactor(partials/article.scss): use `@include respond`
* refactor(layout/article.scss): delete unused SCSS and migrate to `@include respond`
* Adjust left sidebar max-width on xl screen
* fix: right sidebar not sticky
* refactor(breakpoint): simplify `@mixin respond`
* refactor(breakpoints): improve warning message
* fix(breakpoint): return only the requested breakpoint
* fix: add missing padding to .article-details