使用MkDocs构建站点时,Notebook间链接跳转失败求助
问题
我用MkDocs构建静态网站,项目目录结构如下:
docs/ ├── index.md ├── numerical_methods │ └── ode │ ├── explicit_euler.ipynb │ └── implicit_euler.ipynb └── numerical_methods.md
我尝试在explicit_euler.ipynb中添加跳转到implicit_euler.ipynb的链接,使用代码[向后欧拉方法](./numerical_methods/ode/implicit_euler.ipynb),但无法实现跳转。以下是我的mkdocs.yml配置:
site_name: Learning Site site_dir: public nav: - Home: index.md - Numerical Methods: numerical_methods.md theme: name: material icon: logo: material/book language: en features: - navigation.tabs - content.code.annotate palette: # Palette toggle for light mode - scheme: default toggle: icon: material/brightness-7 name: Switch to dark mode # Palette toggle for dark mode - scheme: slate toggle: icon: material/brightness-4 name: Switch to light mode plugins: - typeset markdown_extensions: - pymdownx.arithmatex: generic: true extra_javascript: - javascripts/mathjax.js - https://polyfill.io/v3/polyfill.min.js?features=es6 - https://unpkg.com/mathjax@3/es5/tex-mml-chtml.js plugins: - search - mkdocs-jupyter: include_source: True
解决方案
核心问题拆解
- 相对路径错误:两个Notebook文件处于同一目录
docs/numerical_methods/ode/,无需完整层级路径,用同级相对路径即可。 - 导航未注册文件:当前
nav配置仅包含md文件,未将两个Notebook纳入导航,MkDocs不会自动生成未注册文件的静态页面。 - 插件路径映射:mkdocs-jupyter会将
.ipynb转换为.html,需确保链接与转换后的页面路径匹配。
具体修复步骤
- 修正链接路径:将链接改为
[向后欧拉方法](./implicit_euler.ipynb),直接引用同目录下的文件即可。 - 更新导航配置:在
mkdocs.yml的nav中添加两个Notebook的入口,确保MkDocs生成对应页面:nav: - Home: index.md - Numerical Methods: - 数值方法概述: numerical_methods.md - 常微分方程求解: - 显式欧拉法: numerical_methods/ode/explicit_euler.ipynb - 隐式欧拉法: numerical_methods/ode/implicit_euler.ipynb - 验证生成路径:运行
mkdocs build后,查看public目录下的文件结构,确认implicit_euler.html的位置。若插件生成的路径为numerical_methods/ode/implicit_euler.html,链接也可直接使用./implicit_euler.html(插件通常会自动处理.ipynb到.html的映射,用原文件名也能正常跳转)。 - 检查插件状态:确认
mkdocs-jupyter插件已正确启用,include_source: True仅控制是否显示源码,不影响页面生成逻辑。
内容的提问来源于stack exchange,提问作者L Maxime
相关产品推荐
相关产品推荐

