ARTICLE DETAIL

资讯详情

深耕编程入门与网站建设的一线实战洞察。

如何把 OneNote 笔记本完整导出为 Markdown?onenote-md-exporter 使用指南

如何把 OneNote 笔记本完整导出为 Markdown?onenote-md-exporter 使用指南 如何把 OneNote 笔记本完整导出为 Markdownonenote-md-exporter 使用指南【免费下载链接】onenote-md-exporterConsoleApp to export OneNote notebooks to Markdown formats项目地址: https://gitcode.com/gh_mirrors/on/onenote-md-exporter某个周日的晚上我花了三个小时试图把存了六年笔记的 OneNote 笔记本搬进 Obsidian。结果是表格全部散架、图片位置七零八落、页面之间互相引用的链接变成一串死链分区下面那几层子页面也被摊平成了一个平面。后来朋友推荐了 onenote-md-exporter——一个在 Windows 上运行的命令行工具专门把 OneNote 笔记本完整导出为 Markdown。它不连接任何云端服务所有转换都在本机完成导出的文件可以直接交给 Obsidian、Joplin 或其他 Markdown 编辑器。这篇文章是我完整走通一遍后的记录包括配置思路和踩过的坑。它是一条三步走的本地流水线先花三十秒理解它的工作方式后面配置时会少走很多弯路。onenote-md-exporter 的核心思路是借力打力它不自己去解析 OneNote 的私有格式而是通过 OneNote 和 Word 的官方 COM 接口把每个页面先导出成 DocX 文件接着调用 Pandoc——文档转换领域公认的成熟引擎——把 DocX 翻译成 Markdown最后用一套基于正则的后处理逻辑修复转换过程中产生的多余空行、误生成的引用块、图片引用写法等问题。整个过程对应三个层次数据提取从 OneNote 拿到页面原始内容这一步走官方接口数据完整度有保证格式转换Pandoc 把 DocX 转成指定语法的 Markdown后处理优化输出格式并把 OneNote 内部链接改写成目标平台认识的写法因为中间环节用的是微软自家接口和 Pandoc 这种成熟引擎表格、图片、附件这类最容易在迁移中丢失的东西都能被保留下来。整条流水线完全离线运行笔记内容不会经过任何第三方服务器。逐项拆解它能保住你的哪些东西1. 分区和页面层级原样还原OneNote 里分区 分区组 页面 子页面的嵌套结构导出后不会塌成一个平铺的文件夹。默认情况下页面层级会变成文件目录树父页面生成一个子文件夹子页面躺在里面。如果你更喜欢扁平的目录也可以把层级改成文件名前缀父页面_子页面.md或者干脆忽略层级让所有页面直接落在分区目录下。2. 页面内部链接四种处理策略任选OneNote 页面之间靠 onenote:// 协议互相跳转这种链接在别的软件里基本点不开。工具提供了四种处理方式保留原始格式方便日后回迁、转成标准 Markdown 链接、转成[[双链]]格式Obsidian 用户会喜欢这个、以及直接移除链接只留文字。默认是双链格式如果目标平台是 Joplin建议改成标准 Markdown 链接。3. 表格、颜色、标签能保的都保简单表格会转成标准 Markdown 表格结构复杂的表格、字体颜色、背景色这类依赖 HTML 渲染的内容会以 HTML 形式内嵌在 Markdown 里需要编辑器支持 HTMLObsidian 和 Joplin 都支持。待办、星标这类文本标签会被转换成对应的 emoji绘图内容会被扁平化为图片保留下来。已知的边界是手写笔迹无法还原加密分区的笔记如果不提前解锁也会丢——这两点需要在迁移前手动处理。4. 两种输出格式覆盖主流目标导出格式有两种标准 Markdown 文件夹适合 Obsidian、Typora、VS Code 等通用编辑器另一种是 Joplin Raw Directory专门给 Joplin 的导入功能使用能完整保留笔记本层级和页面顺序。顺带一提如果走 Evernote 的 ENEX 中转路线迁到 Joplin分区层级和页面顺序会丢而这条路线不会。十分钟上手第一次导出就这么做先确认环境满足三条Windows 10 及以上、OneNote 2013 及以上Windows 商店版不支持、Word 2013 及以上。工具是自包含的 .NET 控制台应用不需要额外安装运行时。git clone https://gitcode.com/gh_mirrors/on/onenote-md-exporter然后按下面的步骤走打开 OneNote确认要导出的笔记本已经完全同步、加载完成运行OneNoteMdExporter.exe程序会列出检测到的所有笔记本输入编号选择目标输入 0 表示全部导出选择导出格式1 是 Markdown2 是 Joplin程序会询问是否编辑高级设置输入 y 会用记事本打开 appSettings.json等待处理完成导出结束后资源管理器会自动打开输出文件夹如果习惯命令行操作工具也支持参数化调用方便写进脚本批量处理# 导出指定笔记本为 Markdown OneNoteMdExporter.exe --notebook 工作笔记 --format 1 # 一次性导出所有笔记本格式为 Joplin OneNoteMdExporter.exe --all-notebooks --format 2 # 只导出某个分区里的某一页 OneNoteMdExporter.exe --notebook 工作笔记 --section 项目A --page 需求文档 --format 1参数说明--notebook指定笔记本名--format指定格式--section和--page可以进一步缩小范围--all-notebooks导出全部--no-input表示不需要交互输入适合自动化场景--ignore-errors遇到错误也继续导出。配置文件里值得动手改的七个开关appSettings.json 是全部行为的中枢下面几个是使用频率最高的配置项可选值作用ProcessingOfPageHierarchyHierarchyAsFolderTree / HierarchyAsPageTitlePrefix / IgnoreHierarchy页面层级以什么形式落地ResourceFolderLocationRootFolder / PageParentFolder图片附件集中放一个目录还是跟 md 文件放一起OneNoteLinksHandlingKeepOriginal / ConvertToMarkdown / ConvertToWikilink / Remove内部链接如何处理PanDocMarkdownFormatgfm / commonmark 等输出的 Markdown 语法方言AddFrontMatterHeadertrue / false每页开头加 YAML 头标题、创建与更新时间UseHtmlStylingtrue / false编辑器不支持 HTML 时关掉颜色样式会降级IndentingStyleLeaveAsIs / ConvertToEmSpaces / ConvertToBulletsOneNote 的缩进内容以什么方式表达一个典型的 Obsidian 配置大概是层级用文件夹树、资源放页面旁、链接用双链、开启 YAML 头。而 Joplin 用户更适合把链接改成标准 Markdown、资源集中存放、格式固定用 gfm。另外PageTitleMaxLength和MdMaxFileLength这两个值建议别调太大文件路径超长会触发 Windows 的路径长度限制。三个高频问题的排查思路启动就报 COMException 错误现象程序启动后抛出System.Runtime.InteropServices.COMException。 原因通常是本机 Office 安装有问题或 OneNote 没有正常登录。 解法先确认 OneNote 能正常打开并已登录账号仍不行就修复或重装 Office最省事的办法是把笔记本导出成 .onepkg 包换一台机器导入后再跑导出。导出后图片打不开现象md 文件里图片引用失效资源目录缺失。 原因OneNote 本地没有完整缓存图片接口拿不到对应文件。 解法在 OneNote 的 文件 选项 同步 里开启下载所有文件和图像强制同步一次再重新导出。大笔记本跑得慢现象几百上千页的笔记本要跑很久。 原因每个页面都要走一遍 Word 导出和 Pandoc 转换。 解法按分区分批导出用--section参数缩小范围把导出目录放到 SSD 上导出时关掉其他占用 CPU 的程序。谁在用它三种典型的迁移场景从 OneNote 迁到 Obsidian 的个人用户。多年积累的知识库想在双链笔记里重新组织用双链链接策略配合文件夹树结构导出的目录可以直接当 Obsidian 的库来用页面之间的引用关系依然存在。迁到 Joplin 的跨平台用户。Joplin 在手机、平板、桌面端同步方便用 Raw Directory 格式导出后在 Joplin 里选择 文件 导入 RAW - Joplin 导出目录 就能完整还原笔记本结构比走 ENEX 中转丢层级强得多。需要长期归档的团队或组织。把散落在各个成员 OneNote 里的项目文档沉淀为开放的 Markdown 文件方便后续全文检索、版本管理以及未来随时迁移到任何平台。整个导出过程完全离线敏感内容不会经过第三方服务器。写在最后OneNote 是很好用的笔记本但它私有、封闭、离不开微软生态。onenote-md-exporter 的价值在于它给了你一条随时可以离开的通道——笔记内容以开放的 Markdown 形式留在你硬盘上什么时候想搬去新平台都有现成的路可走。工具本身免费开源导出前记得先备份原始笔记本。如果你也攒了好几年的 OneNote 笔记挑一个周末的下午装好工具、同步好笔记本然后跑一次完整导出。你会发现离开一个平台的成本其实可以很低。【免费下载链接】onenote-md-exporterConsoleApp to export OneNote notebooks to Markdown formats项目地址: https://gitcode.com/gh_mirrors/on/onenote-md-exporter创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表