博客特性介绍
这个博客基于 hugo-xmin 主题,采用了极简主义设计理念,同时添加了一些实用功能。本文介绍这些特性的使用方法。
Dark Mode / Bright Mode
博客默认启用暗黑模式(Dark Mode),点击右上角的按钮可以切换到亮色模式(Bright Mode)。
- 暗黑模式:深色背景 (#1a1a1a),适合夜间阅读
- 亮色模式:浅色背景,适合日间阅读
- 主题选择会保存到 localStorage,下次访问时自动应用
两种模式下的样式保持一致,包括链接颜色、菜单样式、代码块高亮、表格样式、自定义滚动条等。
特殊 Markdown 语法
博客扩展了标准 Markdown 语法,支持一些便捷的链接格式。
Wikipedia 链接
快速链接到 Wikipedia(支持多语言):
[wiki Python](./wiki-python.html)
[wiki.zh 维基百科](./wikizh-维基百科.html)
[Langage de programmation](./wikifr-python.html)
效果示例:wiki Python、wiki.zh 维基百科
Google 搜索
快速创建 Google 搜索链接:
[google 如何学习编程](./google-如何学习编程.html)
[Hugo 静态站点生成器](./google-hugo.html)
效果:google Hugo
GitHub 链接
快速链接到 GitHub 仓库:
[github yihui/hugo-xmin](./github-yihuihugo-xmin.html)
[我的博客源码](./github-gongshangzhenggsai.html)
arXiv 论文链接
快速链接到 arXiv 论文:
[arxiv 1706.03762](./arxiv-170603762.html)
[PDF 版本](./arxiv-170603762-pdf.html)
[论文标题](./arxiv-170603762-abs.html)
内部链接
链接到博客内的其他文章或章节:
[博客特性介绍](./博客特性介绍.html)
[博客特性介绍#shortcodes-功能](./博客特性介绍shortcodes-功能.html)
[查看图片部分](./博客特性介绍图片使用.html)
图片使用
基本图片语法
使用 图片路径 语法插入图片,图片会自动居中显示:
[img/photo.jpg](./imgphotojpg.html)
[图片说明](./imgscreenshotpng.html)
高级图片功能
使用 figure shortcode 可以获得更多功能(WebP 自动转换、响应式等)。由于篇幅原因,详细用法请参考 docs/SHORTCODES.md。
高亮文本
使用 文本 语法高亮重要内容:
这是==重要内容==需要特别注意。
效果:这是重要内容需要特别注意。
MathJax 数学公式
博客支持 MathJax 数学公式渲染。在文章的 frontmatter 中添加 mathjax: true 即可启用:
---
title: "文章标题"
mathjax: true
---
行内公式
支持两种语法:
美元符号语法:
爱因斯坦质能方程:$E = mc^2$
圆括号语法:
二次公式:\\(x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}\\)
效果示例:
- 爱因斯坦质能方程:$E = mc^2$
- 二次公式:$x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$
块级公式
双美元符号语法:
$
\int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi}
$
方括号语法:
\[
\sum_{i=1}^{n} i = \frac{n(n+1)}{2}
\]
效果示例:
[ \sum_{i=1}^{n} i = \frac{n(n+1)}{2} ]
复杂公式示例
麦克斯韦方程组:
矩阵:
注意:代码块内的数学公式不会被渲染,会保持原样显示。
代码块保护
博客的 replace.html 脚本会智能识别代码块,确保代码块内的特殊语法不会被处理。
保护范围
以下内容会被保护,不会被转换:
- 代码块内的特殊链接语法:
# 这些不会被转换为链接
wiki_link = "[wiki Python](./wiki-python.html)"
arxiv_link = "[[arxiv 1706.03762]"
github_link = "[[github user/repo]"
- 行内代码:
`[wiki Python](./wiki-python.html)` - 保持原样
- 代码块内的高亮语法:
highlighted = "==important==" // 不会被高亮
测试示例
代码块内(不会被处理):
[wiki Python](./wiki-python.html)
[arxiv 1706.03762](./arxiv-170603762.html)
==高亮文本==
代码块外(正常处理):
- wiki Python - 转换为 Wikipedia 链接
- arxiv 1706.03762 - 转换为 arXiv 链接
- 这是高亮文本 - 被高亮显示
这个保护机制确保了代码示例的准确性和可读性。
Shortcodes 功能
博客提供了多种 Hugo shortcodes,增强内容呈现能力。
可折叠内容
使用 details shortcode 创建可折叠的内容块:
{/{< details summary="点击查看示例" >}}
这里是隐藏的内容,可以包含任何 Markdown 格式。
比如:
- 列表项
- **粗体文本**
- `代码`
{/{< /details >}}
效果示例:
这里是隐藏的内容,可以包含任何 Markdown 格式。 比如:
- 列表项
- 粗体文本
代码
提示框
使用 admonition shortcode 添加提示框:
{/{< admonition type="note" title="注意" >}}
这是一条提示信息,使用 note 类型。
{/{< /admonition >}}
{/{< admonition type="warning" title="警告" >}}
这是一条警告信息,使用 warning 类型。
{/{< /admonition >}}
{/{< admonition type="tip" title="技巧" >}}
这是一条技巧,使用 tip 类型。
{/{< /admonition >}}
效果示例:
这是一条提示信息,使用 note 类型。
这是一条警告信息,使用 warning 类型。
这是一条技巧,使用 tip 类型。
支持的类型:note、tip、important、warning、caution
视频嵌入
YouTube
使用轻量级的 lite-youtube(性能优化):
{/{< youtube 视频ID "视频标题" >}}
示例(使用 Hugo 官方介绍视频):
B站
{/{< bilibili BV码 >}}
代码高亮
Hugo 内置语法高亮支持:
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
其他功能
标题锚点
所有标题自动添加锚点链接,鼠标悬停时显示链接图标。
页面引用
使用 ref 和 relref shortcode 引用其他页面(详见文档)。
二维码生成
使用 qr shortcode 生成二维码图片(详见文档)。
设计理念
极简主义
- 基于 hugo-xmin 主题,保持简洁
- 无多余的装饰元素
- 专注内容呈现
- 快速加载
响应式设计
- 自适应移动端和桌面端
- 图片自动优化
- 合理的字体大小和行距
性能优化
- 使用 lite-youtube 减少 YouTube 嵌入的带宽
- 图片 WebP 格式自动转换
- 懒加载图片
- 最小化 CSS 和 JavaScript
技术栈
- Hugo: 静态站点生成器
- hugo-xmin: 基础主题
- 自定义 CSS: Dark mode、响应式设计
- 自定义 JavaScript: 主题切换、图片缩放
- 自定义模板: 特殊 Markdown 语法支持(replace.html)
完整文档
所有 shortcodes 的完整使用说明请参见:
总结
这个博客旨在提供一个简洁、高效的写作和阅读体验。主要特性包括:
- ✅ Dark/Bright 双模式支持
- ✅ 极简设计,专注内容
- ✅ 丰富的特殊 Markdown 语法(Wiki、arXiv、GitHub、Google 链接)
- ✅ 实用的 Shortcodes(提示框、可折叠内容、视频嵌入等)
- ✅ 响应式布局
- ✅ 性能优化
如果你喜欢这个设计,欢迎查看 GitHub 源码。