教程说明
📖 阅读信息
阅读时间:1 分钟 | 中文字符:350 | 有效代码行数:53
🌟为MkDocs文档添加阅读时间统计功能!
支持自定义统计格式和排除特定页面,可计算中文字符数、代码行数并估算阅读时间,适用于长文档网站,提升用户体验。配置包含排除规则设置和本地预览测试方法,便于灵活部署。

🌐 在线演示: https://wcowin.work/mkdocs-reading-time/
1. 基础配置
步骤1
下载reading_time.py
步骤2
把reading_time.py放到docs/overrides/hooks目录下,然后在mkdocs.yml中添加:
| # 在 mkdocs.yml 中添加
hooks:
- docs/overrides/hooks/reading_time.py # 阅读时间统计
|
步骤3
配置MkDocs主题以及覆写路径custom_dir
| # 在 mkdocs.yml 中添加
theme:
name: material
custom_dir: docs/overrides # 必需配置!!!
features:
- content.code.copy
- content.code.select
|
到这里检查下目录树状图:
| $ tree -a
文件名
├── .github
│ ├── .DS_Store
│ └── workflows
│ └── ci.yml
├── docs
│ └── index.md
| └── overrides
│ └── hooks
│ └── reading_time.py
│ └── ...
└── mkdocs.yml
|
步骤4
2. 效果展示

3.高级配置
3.1 排除特定页面
如果有一些页面不想统计阅读时间,可以在页面的元数据中添加 hide_reading_time: true
。例如:
| ---
title: 不统计阅读时间的页面
hide_reading_time: true
---
|
或者直接在reading_time.py中添加:
| # 你想排除的页面路径
EXCLUDE_PATTERNS = [
re.compile(r'^index\.md$'),
re.compile(r'^trip/index\.md$'),
re.compile(r'^relax/index\.md$'),
re.compile(r'^blog/indexblog\.md$'),
re.compile(r'^blog/posts\.md$'),
re.compile(r'^develop/index\.md$'),
re.compile(r'waline\.md$'),
re.compile(r'link\.md$'),
re.compile(r'404\.md$'),
]
|
3.2 自定义统计信息
如果需要自定义统计信息的格式,可以修改reading_time.py中的calculate_reading_stats函数。例如:
| def calculate_reading_stats(markdown):
# 计算统计信息
reading_time, chinese_chars, code_lines = calculate_reading_stats(markdown)
# 自定义统计信息格式
if code_lines > 0:
reading_info = f"""!!! info "📖 阅读信息"
阅读时间:**{reading_time}** 分钟 | 中文字符:**{chinese_chars}** | 有效代码行数:**{code_lines}**
"""
else:
reading_info = f"""!!! info "📖 阅读信息"
阅读时间:**{reading_time}** 分钟 | 中文字符:**{chinese_chars}**
"""
return reading_info + markdown
|
🐛 问题反馈
遇到问题?请在 Issues 中反馈。
反馈时请包含:
- MkDocs版本
- Python版本
- 完整错误信息
- 复现步骤
- 配置文件(去除敏感信息)
📄 许可证
本项目采用 MIT License 开源协议。
🙏 致谢
感谢以下项目和服务:
🔗 联系作者
Telegram
微信交流
⭐Star History

☕ 支持项目
如果这个项目对您有帮助,请给它一个 ⭐ Star!
📝 让MkDocs文档更加系统化
⬆ 回到顶部