MkDocs默认主题导航栏添加Logo图片问题求助
解决MkDocs默认主题导航栏不显示Logo的问题
默认的mkdocs原生主题不支持通过logo配置项直接在导航栏显示Logo,你可以通过以下两种方法解决:
方法一:自定义导航栏模板
- 在项目根目录的
docs文件夹下创建templates子目录 - 在
templates中新建nav.html文件,写入以下代码(替换默认导航栏结构,加入Logo):
<nav class="navbar navbar-expand-md navbar-dark bg-primary"> <div class="container"> <!-- 此处添加Logo --> <a class="navbar-brand" href="{{ nav.homepage.url }}"> <img src="{{ base_url }}/img/logo.png" alt="站点Logo" height="30" /> </a> <!-- 原有导航菜单逻辑 --> <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation"> <span class="navbar-toggler-icon"></span> </button> <div class="collapse navbar-collapse" id="navbarNav"> <ul class="navbar-nav"> {% for nav_item in nav %} {% if nav_item.children %} <li class="nav-item dropdown"> <a class="nav-link dropdown-toggle" href="#" id="navbarDropdown{{ loop.index }}" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> {{ nav_item.title }} </a> <div class="dropdown-menu" aria-labelledby="navbarDropdown{{ loop.index }}"> {% for child in nav_item.children %} <a class="dropdown-item" href="{{ child.url }}">{{ child.title }}</a> {% endfor %} </div> </li> {% else %} <li class="nav-item"> <a class="nav-link" href="{{ nav_item.url }}">{{ nav_item.title }}</a> </li> {% endif %} {% endfor %} </ul> </div> </div> </nav>
- 在
mkdocs.yml中配置自定义模板路径:
theme: name: mkdocs custom_dir: docs/templates
方法二:切换到支持Logo的官方主题
如果你不想自定义模板,可以直接切换到readthedocs主题(MkDocs官方维护),它原生支持logo配置:
theme: name: readthedocs logo: img/logo.png
配置完成后,Logo会自动显示在导航栏左侧。
注意事项
确保img/logo.png文件位于docs/img/目录下,MkDocs会自动将该目录的静态文件复制到生成的站点中。
内容的提问来源于stack exchange,提问作者Leonardo Sforza
相关产品推荐
相关产品推荐

