MkDocs 更改网页标题为 Markdown 文档的第一个一级标题
约 120 个字 23 行代码 1 张图片 预计阅读时间 1 分钟
情境
使用 MkDocs 构建网站,使用主题为 Material。
网页标题、nav 里面的标题与 Markdown 文件的标题
网页标题根据 MkDocs 的规则,优先选择 nav 里面定的标题(见图中标记 1):
mkdocs.yml |
---|
| nav:
- Python:
- Flask:
- 入门:
- 路由管理: python/flask/func/blueprint.md
|
但是 nav 里面定义的标题会有简略,为了 SEO,我希望能够取 Markdown 文档的第一个一级标题(见图中标记 2):
python/flask/func/blueprint.md |
---|
| # Flask 使用 Blueprint 整合路由
|
解决方法
mkdocs.yml |
---|
| theme:
name: material
custom_dir: overrides
|
创建 overrides/main.html
:
overrides/main.html |
---|
| {% extends "base.html" %}
{% block htmltitle %}
{% if page._title_from_render %}
<title>{{ page._title_from_render }} - {{ config.site_name }}</title>
{% elif page.meta and page.meta.title %}
<title>{{ page.meta.title }} - {{ config.site_name }}</title>
{% elif page.title and not page.is_homepage %}
<title>{{ page.title | striptags }} - {{ config.site_name }}</title>
{% else %}
<title>{{ config.site_name }}</title>
{% endif %}
{% endblock %}
|
参考