我的mkdocs.yml
文件的nav
标题缩短了,只适合左侧导航中的每一行,并且我希望.md
降价页 title是未缩写的完整标题。
例如,我的mkdocs.yml
文件包含:
nav:
- BD, ML, DS: Big_Data,_Machine_Learning,_Data_Science.md
- AI, VI: Artificial_Intelligence,_Video_Intelligence.md
我希望.md
页面标题为:
Big Data, Machine Learning, and Data Science
...代替复制/使用mkdocs.yml
导航标题:
BD, ML, DS
当我将降价页面标题添加到# Big Data...
文件的第一行(.md
)时,我既得到了我想要的页面标题,又得到了继承的{{ 1}} mkdocs.yml
标题:
nav
似乎答案是在BD, ML, DS
7 min (1,939 words)
Big Data, Machine Learning, and Data Science
文件中指定了不同/秒的“页面显示”名称,但是许多Google搜索都没有结果。
您尝试或听说过其他哪些方法?谢谢!
答案 0 :(得分:0)
这只能通过自定义主题来实现,该主题专门添加了对此功能的支持。但是,我不知道有任何提供这种功能的主题。
页面只能有一个标题。但是,页面标题可以通过以下四种方式之一定义为documented:
MkDocs将尝试确定文档标题, 按以下方式操作:
- 在nav配置设置中为文档定义的标题。
- 在文档的
title
元数据关键字中定义的标题。- 文档正文第一行上的1级Markdown标头。
- 文档的文件名。
在找到页面标题后,MkDoc不会继续检查任何内容 上面列表中的其他来源。
最后一句话是完成这项工作的关键。当MkDocs在title
配置文件的nav
配置中找到一个mkdocs.yml
时,它永远不会检查在其他任何地方(包括元数据中)定义的title
。它仅使用页面的nav
标题作为所有页面的标题(在page.title
属性中)。
但是,页面的元数据仍保存在page.meta
属性下。因此,您可以在自定义主题的page.title
部分使用nav
,并在主题的其他任何地方使用page.meta.title
。
要为页面定义元数据,请将YAML部分添加到Markdown文件的开头:
---
title: Big Data, Machine Learning, and Data Science
---
The first line of your Markdown.
当然,请像以前一样在配置文件中定义标题:
nav:
- 'BD, ML, DS': 'Big_Data,_Machine_Learning,_Data_Science.md'
然后在您的主题中,可以使用page.title
出现BD, ML, DS
的位置,并使用page.meta.title
出现Big Data, Machine Learning, and Data Science
的位置。
如果您不想从头开始创建一个全新的主题,则可以combine,custom_dir和template blocks仅覆盖主题的特定部分选择。
答案 1 :(得分:0)
我也会使用元数据,但采用的方法与 Waylan 建议的方法略有不同。
Waylan 建议使用:
nav
条目 - 'Short Title': file.md
;title: Long Title
在 Markdown 文件的顶部。我建议只依赖元数据:
short_title: Short Title
;title: Long Title
。我认为这个方案有两个优点。
XXX.title
的内置语义:它仍然表示完整的标题。因此,与其修补主题中每次使用它(并破坏您错过/忘记的部分),您只修补要使用短标题的部分(大概只有导航菜单),以替换任何出现的 { {1}} 由 XXX.title
(例如在生成导航菜单的模板中,XXX.meta.short_title
将变为 nav_item.title
¹)。¹ 或者更确切地说是 nav_item.meta.short_title
。
编辑:好吧,我写了这个答案,然后我被一些错误消息弄糊涂了,错误地认为它不起作用。事实上,确实如此。抱歉来来回回。