运营公众号还是做网站,邢台网约车新政策,有没有做a的电影网站,厦门专业网站从 MkDocs 迁移到 Zensical 完整的迁移指南#xff0c;让你轻松从 MkDocs 过渡到 Zensical 为什么要迁移#xff1f;
MkDocs 的现状
⚠️ 已停止更新 - MkDocs 和 Material for MkDocs 不再积极开发⚠️ 功能受限 - 缺少现代化功能#xff08;即时导航、博客系统等#x…从 MkDocs 迁移到 Zensical完整的迁移指南让你轻松从 MkDocs 过渡到 Zensical为什么要迁移MkDocs 的现状⚠️已停止更新- MkDocs 和 Material for MkDocs 不再积极开发⚠️功能受限- 缺少现代化功能即时导航、博客系统等⚠️性能一般- 加载速度和渲染性能有待提升Zensical 的优势✅积极维护- 由 Material for MkDocs 原团队开发✅现代化- 即时导航、博客系统、Modern 主题✅高性能- 优化的渲染引擎更快的加载速度✅向后兼容- 支持读取mkdocs.yml配置文件✅平滑过渡- 提供自动迁移工具迁移前准备1. 备份项目# 创建项目备份cp-r my-mkdocs-site my-mkdocs-site-backup# 或使用 Gitgitcheckout -b backup-before-zensicalgitcommit -amBackup before migrating to Zensical2. 检查当前配置记录你的 MkDocs 项目中使用的主题配置插件列表自定义 CSS/JSHooks 脚本模板覆盖3. 安装 Zensical# 安装 Zensicalpipinstallzensical# 验证安装zensical --version迁移步骤第一步创建 zensical.tomlZensical 推荐使用zensical.toml配置文件虽然也支持mkdocs.yml。自动转换推荐# Zensical 可以自动读取 mkdocs.yml# 先测试是否能正常工作zensical serve# 如果正常可以继续使用 mkdocs.yml# 或手动创建 zensical.toml手动创建原 mkdocs.ymlsite_name:My Sitesite_url:https://example.comtheme:name:materiallanguage:zh新 zensical.toml[project] site_name My Site site_url https://example.com [project.theme] variant modern # 或 classic language zh第二步配置文件对照表MkDocs (YAML)Zensical (TOML)说明site_name: My Sitesite_name My Site网站名称site_url: https://example.comsite_url https://example.com网站 URLtheme: name: material[project.theme]主题配置plugins: - search[project.plugins.search]插件配置nav:nav [...]导航配置extra_css:extra_css [...]额外 CSSextra_javascript:extra_javascript [...]额外 JS第三步迁移主题配置主题变体Zensical 提供两种主题变体[project.theme] # Modern 主题推荐- 全新设计 variant modern # Classic 主题 - 与 Material for MkDocs 完全一致 variant classic建议如果想要全新体验选择modern如果想保持原样选择classic主题特性MkDocs:theme:features:-navigation.tabs-navigation.sections-search.suggestZensical:[project.theme] features [ navigation.tabs, navigation.sections, search.suggest, ]调色板MkDocs:theme:palette:-scheme:defaultprimary:indigoaccent:indigoZensical:[[project.theme.palette]] scheme default primary indigo accent indigo第四步迁移插件配置搜索插件MkDocs:plugins:-search:separator:[\s\-]Zensical:[project.plugins.search] separator [\s\u200b\-]博客插件MkDocs (需要 mkdocs-material-blog 插件):plugins:-blog:blog_dir:blogZensical (内置):[project.plugins.blog] post_date_format full draft true post_readtime true post_readtime_words_per_minute 265标签插件MkDocs:plugins:-tagsZensical:[project.plugins.tags]第五步处理 Hooks⚠️重要Zensical 不支持 MkDocs hooksZensical 正在开发模块系统来替代 hooks。目前的解决方案1. 评论系统原 MkDocs Hook:# hooks/comments.pydefon_page_markdown(markdown,page,**kwargs):# 添加评论代码passZensical 替代方案:在overrides/partials/comments.html中配置{% if page.meta.comments %}dividcomments!-- 你的评论系统代码 --/div{% endif %}2. 阅读时间原 MkDocs Hook:defcalculate_reading_time(markdown):# 计算阅读时间passZensical 替代方案:使用博客插件的内置功能[project.plugins.blog] post_readtime true post_readtime_words_per_minute 2653. 相关文章原 MkDocs Hook:defget_related_posts(page):# 获取相关文章passZensical 替代方案:等待模块系统发布或使用 JavaScript 实现。第六步迁移自定义样式CSS 文件MkDocs:extra_css:-stylesheets/extra.cssZensical:extra_css [ stylesheets/extra.css, ]CSS 文件内容通常不需要修改但注意Modern 主题可能需要调整一些样式Classic 主题完全兼容原有样式JavaScript 文件MkDocs:extra_javascript:-javascripts/extra.jsZensical:extra_javascript [ javascripts/extra.js, ]即时导航兼容性如果使用即时导航需要监听document$事件// 原 MkDocsdocument.addEventListener(DOMContentLoaded,function(){// 初始化代码});// Zensical 即时导航document$.subscribe(function(){// 初始化代码});第七步迁移导航配置简单导航MkDocs:nav:-Home:index.md-About:about.mdZensical:nav [ { Home index.md }, { About about.md }, ]嵌套导航MkDocs:nav:-Home:index.md-Blog:-blog/index.md-Posts:-blog/post1.md-blog/post2.mdZensical:nav [ { Home index.md }, { Blog [ blog/index.md, { Posts [ blog/post1.md, blog/post2.md, ]}, ]}, ]第八步迁移 Markdown 扩展基础扩展MkDocs:markdown_extensions:-abbr-attr_list-admonitionZensical:[project.markdown_extensions] abbr {} attr_list {} admonition {}PyMdown 扩展MkDocs:markdown_extensions:-pymdownx.superfences:custom_fences:-name:mermaidclass:mermaidformat:!!python/name:pymdownx.superfences.fence_code_formatZensical:[project.markdown_extensions.pymdownx.superfences] custom_fences [ { name mermaid, class mermaid, format !!python/name:pymdownx.superfences.fence_code_format } ]第九步测试和验证1. 本地测试# 启动开发服务器zensical serve# 检查以下内容# - 页面是否正常显示# - 导航是否正确# - 样式是否正常# - 搜索是否工作# - 博客是否正常2. 构建测试# 清理并构建zensical build --clean# 检查 site/ 目录ls-la site/# 检查是否有错误或警告3. 功能检查清单所有页面都能正常访问导航菜单正确显示搜索功能正常博客文章正确显示自定义样式生效JavaScript 功能正常图片和资源正确加载移动端显示正常第十步部署GitHub Pages 部署推荐# .github/workflows/deploy.ymlname:Deploy to GitHub Pageson:push:branches:[main]permissions:contents:readpages:writeid-token:writejobs:deploy:environment:name:github-pagesurl:${{steps.deployment.outputs.page_url}}runs-on:ubuntu-lateststeps:-uses:actions/configure-pagesv5-uses:actions/checkoutv5-uses:actions/setup-pythonv5with:python-version:3.x-run:pip install zensical-run:zensical build--clean-uses:actions/upload-pages-artifactv4with:path:site-uses:actions/deploy-pagesv4id:deployment详细步骤请参考 GitHub Pages 部署指南。Netlify 部署# netlify.toml [build] command zensical build publish site [build.environment] PYTHON_VERSION 3.11GitHub Pages 部署# .github/workflows/deploy.ymlname:Deploy to GitHub Pageson:push:branches:[main]jobs:deploy:runs-on:ubuntu-lateststeps:-uses:actions/checkoutv3-uses:actions/setup-pythonv4with:python-version:3.11-run:pip install zensical-run:zensical build-uses:peaceiris/actions-gh-pagesv3with:github_token:${{secrets.GITHUB_TOKEN}}publish_dir:./site常见问题Q: 必须使用 zensical.toml 吗A: 不是必须的。Zensical 完全支持mkdocs.yml但推荐使用zensical.toml以获得更好的体验。Q: 我的自定义 CSS 还能用吗A: 大部分情况下可以。如果使用 Classic 主题完全兼容。如果使用 Modern 主题可能需要微调。Q: Hooks 怎么办A: Zensical 不支持 hooks。大部分功能可以通过模板覆盖JavaScript内置插件等待模块系统Q: 迁移需要多长时间A: 取决于项目复杂度简单项目10-30 分钟中等项目1-2 小时复杂项目半天到一天Q: 可以同时保留 MkDocs 吗A: 可以。你可以在不同分支维护两个版本或使用不同的配置文件。完整示例迁移前MkDocs# mkdocs.ymlsite_name:My Blogsite_url:https://example.comtheme:name:materiallanguage:zhfeatures:-navigation.tabs-search.suggestpalette:-scheme:defaultprimary:indigoplugins:-search-tagsmarkdown_extensions:-abbr-attr_list-pymdownx.superfencesnav:-Home:index.md-Blog:blog/index.md迁移后Zensical# zensical.toml [project] site_name My Blog site_url https://example.com [project.theme] variant modern language zh features [ navigation.tabs, search.suggest, ] [[project.theme.palette]] scheme default primary indigo [project.plugins.search] [project.plugins.tags] [project.plugins.blog] [project.markdown_extensions] abbr {} attr_list {} [project.markdown_extensions.pymdownx.superfences] nav [ { Home index.md }, { Blog blog/index.md }, ]总结迁移到 Zensical 的步骤✅ 备份项目✅ 安装 Zensical✅ 创建 zensical.toml✅ 迁移配置✅ 处理 Hooks✅ 迁移样式和脚本✅ 测试验证✅ 部署上线恭喜你已经成功迁移到 Zensical不想迁移如果不想迁移请看这个项目mkdocs-materialxmaterial for mkdocs虽然不更了但是博主的朋友jaywhj在延续mkdocs的灵魂materialX将作为独立项目延续mkdocs风格需要帮助查看 常见问题访问 Zensical 官方文档加入 Zensical-Wcowin 社区