惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Security Affairs
S
Schneier on Security
T
Tenable Blog
G
GRAHAM CLULEY
Latest news
Latest news
D
Darknet – Hacking Tools, Hacker News & Cyber Security
A
Arctic Wolf
I
Intezer
Cyberwarzone
Cyberwarzone
T
The Exploit Database - CXSecurity.com
T
Tailwind CSS Blog
K
Kaspersky official blog
Blog — PlanetScale
Blog — PlanetScale
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Threat Research - Cisco Blogs
爱范儿
爱范儿
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
博客园 - 叶小钗
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Recent Commits to openclaw:main
Recent Commits to openclaw:main
P
Palo Alto Networks Blog
WordPress大学
WordPress大学
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 司徒正美
The Cloudflare Blog
Help Net Security
Help Net Security
罗磊的独立博客
博客园 - 聂微东
Jina AI
Jina AI
Project Zero
Project Zero
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
L
LINUX DO - 最新话题
V
V2EX
人人都是产品经理
人人都是产品经理
美团技术团队
博客园 - 【当耐特】
Spread Privacy
Spread Privacy
J
Java Code Geeks
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Security Latest
Security Latest
The Last Watchdog
The Last Watchdog
Stack Overflow Blog
Stack Overflow Blog
雷峰网
雷峰网
S
Securelist
Forbes - Security
Forbes - Security
博客园 - 三生石上(FineUI控件)
Microsoft Azure Blog
Microsoft Azure Blog
P
Privacy International News Feed
宝玉的分享
宝玉的分享
C
CERT Recently Published Vulnerability Notes

博客园_首页

Plist 二进制格式 Milvus 和 PGVector,哪个更好? OpenClaw 已过时?在 VS Code 中运行 Hermes Agent! 第30篇文章:一个大三计科生的自白 Manim如何在数学公式中完美显示中文? Docker 部署 RocketMQ 5 并发编程核心概念辨析 C#事务处理最佳实践:别再让“主表存了、明细丢了”的破事发生 CLI 是什么?为什么大厂突然集体卷命令行? 【从0到1构建一个ClaudeAgent】协作-自主Agent UIImageView 设置图片不生效的原因排查 最小二乘问题详解20:无先验约束下的增量式SFM自由网平差 痞子衡嵌入式:大话双核i.MXRT1180之XIP应用里借助MU实现可靠Flash IAP的方法 AI Chat 封装, SemanticKerne.AiProvider.Unified 已发布 Windows下右键编辑js文件无法打开记事本——在注册表中使用环境变量 在后台服务中使用 Scoped 服务,为什么总是报错? H200 安装驱动并使用sglang启动模型 wireshark 抓包Trap上报告警内容 我用 AI 辅助开发了一系列小工具(2):图片压缩工具 [A Primer On MC and CC] 2.1 Memory Consistency 1 - 指令重排序和 SC 模型 Oracle数据库SCN推进技术详解与实践指南 玩转控件:封装个带图片的Label控件 Claude Code 4.7 真正该升级的不是模型,而是你的工作流 前端小白一句话,AI 帮我做了个颜值拉满的桌面媒体播放器。当代码不再是门槛,一句话编程就是现实。 5. WorkBuddy: 小龙虾的灵魂三件套,让你的小龙虾不只是工具 SQLite 分片方案实战:三种分片策略的深度对比 告别简陋 UI!一款基于 Fluent Design 和基于 WinUI 的开源免费、现代化的 Avalonia UI 控件库 关于二进制排列组合枚举的总结 AI开发-python-LangGraph框架(3-27-LangGraph从零实现大模型智能决策工作流) ElasticSearch主分片和副本分片概念详解 【002】HTTPS 粗解:证书、TLS 握手与对后端配置的影响 Hermes Agent 一周暴涨五万 Star,但我劝你别急着追 明明连接的是Redis的DB0,为什么能查到DB3的数据? 【从0到1构建一个ClaudeAgent】协作-Agent团队 熟悉电子元器件之后,电子小白下一步该怎么走? MAF快速入门(23)通过C#类定义Skills .NET 高级开发 | 手写一个对象映射框架 FastAPI数据库ORM怎么选?我肝了三个Demo后,终于不再纠结了 mysqldump 参数拾遗:在遗忘与铭记之间 C# .NET 周刊|2026年3月5期 Claude code入门 - 陈彦斌 一文学习入门 ThingsBoard 开源物联网平台 GitHub 热门项目 | 2026年04月16日 如何为GIT设置全局勾子,为每次提交追加信息 Number.isFinite和isFinite与isNaN()和Number.isNaN的区别 PortSwigger SQL注入LAB2 推荐一个测试人必备的Skills,从功能到性能全搞定(附详细实操和安装下载方式) 筑基期:掌握Odoo基础核心知识点02(Odoo XML 开发方式详解) GLM模型这么火,咱们用vllm也咧一个呗! 深入理解 AbortController:从底层原理到跨语言设计哲学 字符串学习笔记 多租户系统框架的基础模块设计和分析设计 Apache SeaTunnel Zeta 为什么能做到“又快又稳”? AI开发-python-LangGraph框架(3-26-LangGraph基本概念及第一个简单样例) Vue 3 组件通信,别只会用 Props 和 Emits 了,这几个狠活儿你得看看 ElasticSearch7.X版本配置密码 用Manim实现动态交点计算--从一个动点问题说起 团结引擎+Addressable+Instant Game打包抖音小游戏 function call 实战:让 LLM 自动判断 pod 异常、调用日志工具并完成故障分析 bubseek —— 让 Agent 的足迹,变成团队的洞察 通过 C# 读取并导出 PDF 书签 如何用 GitHub Actions 实现 Steam 自动化发布 【从0到1构建一个ClaudeAgent】并发-后台任务 .NET 高级开发 | 定制 ASP.NET Core 框架 电子小白:什么是运算放大器(运放) zero2Agent:面向大厂面试的 Agent 工程教程,从概念到生产的完整学习路线 堆上的ORW HC32F460 USB CDC通信异常:非对齐访问异常排查 20260413-Hyperbridge 攻击事件:发生在默克尔山上的验证绕过 那些喊着AI 要淘汰你的人,正在靠你的焦虑赚大钱! 深度学习进阶(八)Swin Transformer 最小二乘问题详解19:带先验约束的增量式SFM优化与实现 SnapTranslate 3.0 正式发布:全局划词翻译 + 完整英语学习闭环,一站式搞定查词、记词、复习 工作的意义、工作的困难认知再思考 .NET + AI 进阶实战:基于类的技能开发 - 打造可治理的 Agent 能力模块 【从0到1构建一个ClaudeAgent】规划与协调-技能 上周热点回顾(4.6-4.12) 电子小白的工具三件套:面包板、杜邦线、万能板 单表五亿数据的查询优化 | Mysql、StarRocks 2. WorkBuddy:从“我是谁”到“帮我干活” C# 如何减少代码运行时间:7 个实战技巧 基于HelixToolkit.SharpDX 渲染3D模型 - 笺上知微 从零开始的双臂具身VLA起源及现阶段发展综述 - SkyXZ 记对 xonsh shell 的使用, 脚本编写, 迁移及调优 - pluvium27 受够了Vibe Coding的失控?换个起点,让AI事半功倍 从开始配置漏洞环境到漏洞复现流程 - 難しい 关于10年工作经验的程序员对OpenClaw的实战经验分享以及看法 - 虚无境 Any metadata 的内存布局 C# .NET 周刊|2026年3月2期 - InCerry 我帮你测过了,测试圈排名第二的 Skill 依然很牛逼 Skill Discovery | 无监督技能发现的经典工作总结 - MoonOut 上下文工程是什么?过时了么?一文讲明白! - 一枫说码 开了 TUN 模式还是直连?90% 的人都踩过这个坑 AScript扩展多种脚本语言 - rockey627 AI 学习笔记:Agent 的记忆机制 你能被装进一个文件里吗?——7 万人把同事"蒸馏"成了 AI - 我没有三颗心脏 Claude Code 通关手册(七):给 AI 装上技能包——Skills 完全指南 - 暮色之狐 在浏览器中快速编辑代码:VSCode Web 集成实践 - Newbe36524 蒸馏自己 skill?基于 Deepseek 的蒸馏器,丐版蒸馏方式,简单便捷 - To_Carpe_Diem Spring AI Aliababa和AgentScope,哪个更好? - 苏三说技术
牛逼!119K star,软微开源神器,一款功能超强大的markdown 文档转换工具!
狂师 · 2026-05-11 · via 博客园_首页

微软开源markdown,多格式文件一键转换

不知道大家跟豆包、DeepSeek、ChatGPT这些AI对话的时候,有没有注意到——

AI返回给你的内容,复制到Word、PPT里,前面经常有一堆 #*- 这样的符号?

很多新手小白看到这些"乱码"就懵了,以为是复制出了问题。

其实不是,这其实就是 Markdown 格式。

现在,几乎所有主流的AI,都默认用 Markdown 格式返回结果。包括国外的 ChatGPT、Gemini,Claude也包括国内的豆包、DeepSeek 等等。

换句话说:Markdown,已经成为人和AI沟通的"共同语言"。

Markdown 到底是啥?

简单理解:Markdown 是一种「用纯文本写作、自动生成排版」的标记语言。

用大白话翻译一下:

  • 常规写作:先写内容,写完再一个个调格式
  • Markdown 写作:边写边标记,格式自动生成

简单来说,Markdown 就是一套"符号语法"。

比如这样:

# 一级标题
## 二级标题
### 三级标题

**这是加粗文字**
*这是斜体文字*

- 无序列表项1
- 无序列表项2

1. 有序列表一
2. 有序列表二

[链接文字](https://xxx.com)

![图片描述](图片地址)

`行内代码`

markdown现如今已成为程序员和学习AI必备的标记语言,它的核心优势主要体现在几个方面:

1、语法极简

就记几个符号 #``*``-``[](),零基础 几分钟也能学会。比如:

我想做的事 怎么写
写一个标题 # 标题内容
强调某个词 **重要词汇**
写一个列表 - 第一条
写一个步骤 1. 第一步
引用别人的话 > 引用内容
展示代码或提示词 用反引号包起来
做一个对比表格 `

就这几个,基本也能覆盖90% 的日常笔记需求。

2、纯文本编写

用记事本、VSCode、Typora、公众号、GitHub、笔记软件都能写。

3、一次编写,到处渲染

写一份 Markdown,可转:网页、博客、文档、笔记、公众号、PDF、电子书,格式永远不乱

4、专注内容,不用管排版

不用像 Word 那样调字体、调行距,只管写内容,符号搞定排版。

现实中的痛点

学会 Markdown 只是第一步,但日常工作中大量的 PDF、Word、PPT、图片、办公文档,没法直接变成规范的 Markdown,想要搭建知识库、RAG 应用、整理本地文档,

最大的难题是:各类异构文档无法批量转为标准 Markdown 格式,手动复制排版费时又费力。

今天,给大家分享一款软微开源神器:MarkItDown ,这款工具正是为解决这一问题而生的神器。

MarkItDown介绍

MarkItDown 是微软 AutoGen 团队开源的轻量级 Python 工具(MIT 协议),核心目标是将PDF、Word、PPT、Excel、图片、音频、HTML 等 20+ 异构格式,一键转换为结构完整、LLM 友好的 Markdown,解决 RAG / 知识库项目中 “文档预处理耗时、格式错乱、结构丢失” 的痛点。

功能特性

1. 多格式全覆盖,兼容主流与小众

支持办公文档、图片、音频、网页、电子书、压缩包六大类 20+ 格式,无需额外工具,一站式转换:

  • 办公:PDF、DOCX、PPTX、XLSX/CSV
  • 图片:JPG/PNG/GIF(OCR 文字提取)
  • 音频:MP3/WAV(语音转文字)
  • 网页:HTML、YouTube(字幕提取)
  • 其他:JSON/XML、ZIP(解压遍历)、EPUB

2. 高级强增功能

  • Azure Document Intelligence 集成:可调用微软 Azure 文档智能服务进行高精度转换
  • LLM 图像描述:支持接入 OpenAI 等 LLM,为图片/PPT 中的图像生成文字描述
  • OCR 插件:通过 markitdown-ocr 插件,利用 LLM Vision 提取 PDF/Word/PPT 中嵌入图片的文字
  • 流式处理:支持管道(pipe)输入输出,方便集成到自动化流程
  • 音频转写:语音转文字,支持会议录音、播客
  • YouTube 字幕:提取视频字幕,生成 Markdown 文本
  • ZIP 解压遍历:自动解压 ZIP,转换内部所有文件

3. 灵活的集成方式

  • 命令行(CLI):适合快速转换、脚本自动化

  • Python API:适合嵌入 Python 项目、自定义处理逻辑

  • MCP 服务器:支持 Claude Desktop 等 LLM 应用远程调用

适用场景

  • RAG 系统构建:将企业知识库文档转为 Markdown 供向量数据库存储
  • AI 对话助手:让用户上传 PDF/Word 后,提取内容供 LLM 分析回答
  • 内容迁移:将旧格式文档批量转为 Markdown 用于静态网站生成(如 Hugo、MkDocs)
  • 数据分析:提取 Excel/CSV 中的表格为 Markdown 表格,方便在 Notebook 中展示
  • 音视频处理:提取 YouTube 视频字幕或会议录音文字,生成会议纪要

安装方式

环境要求

  • Python 3.10 或更高版本
  • 建议使用虚拟环境

1. 创建虚拟环境(推荐)

# 标准 venv
python -m venv .venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate

# 或使用 uv(更快)
uv venv --python=3.12 .venv
source .venv/bin/activate

2. 安装 MarkItDown

# 仅支持 PDF、DOCX、HTML 等基础格式
pip install markitdown

# 安装全部功能(推荐初次使用),包含 OCR、语音转写、Office 全格式等所有依赖:
pip install 'markitdown[all]'

# 或按需安装特定格式(更轻量)
pip install 'markitdown[pdf,docx,pptx]'      # 仅 PDF/Word/PPT
pip install 'markitdown[xlsx]'               # 仅 Excel
pip install 'markitdown[audio-transcription]' # 仅音频转录
pip install 'markitdown[youtube-transcription]' # 仅 YouTube

3. 从源码安装(开发者)

git clone https://github.com/microsoft/markitdown.git
cd markitdown
pip install -e "packages/markitdown[all]"

4. Docker 方式

docker build -t markitdown:latest .
docker run --rm -i markitdown:latest < ~/your-file.pdf > output.md

使用方式

安装好 MarkItDown 后,打开命令行窗口输入命令即可对文件进行转换,支持多种操作方式,

命令行(CLI)

# 基础转换
markitdown path-to-file.pdf > document.md

# 指定输出文件
markitdown path-to-file.pdf -o document.md

# 管道输入
cat path-to-file.pdf | markitdown

# 启用插件
markitdown --use-plugins path-to-file.pdf

# 使用 Azure Document Intelligence
markitdown path-to-file.pdf -o doc.md -d -e "<endpoint>"

# 查看已安装插件
markitdown --list-plugins

Python API

from markitdown import MarkItDown

# 基础用法
md = MarkItDown()
result = md.convert("test.xlsx")
print(result.text_content)

# 启用插件
md = MarkItDown(enable_plugins=True)
result = md.convert("document.pdf")

# 使用 Azure 文档智能
md = MarkItDown(docintel_endpoint="<your-endpoint>")
result = md.convert("test.pdf")

# 使用 LLM 进行图像描述(需要 OpenAI 等客户端)
from openai import OpenAI

client = OpenAI()
md = MarkItDown(
    llm_client=client,
    llm_model="gpt-4o",
    llm_prompt="optional custom prompt"
)
result = md.convert("example.jpg")
print(result.text_content)

以下为常用案例:

案例1:转换 Excel 文件

比如,将 Excel 文件 test.xlsx 转换为 Markdown 文件,两种常用命令:

# 方式1:输出到指定 Markdown 文件
markitdown test.xlsx > test.md
# 方式2:使用 -o 参数指定输出文件(更规范,推荐)
markitdown test.xlsx -o test.md

案例2:管道输入方式转换

适用于批量处理或结合其他命令使用,例如转换 PDF 文件并直接查看结果:

cat 目标文件.pdf | markitdown

案例3:支持批量转换

通过命令行实现 CI/CD 集成,批量处理文件夹内所有 PDF 文件,可直接复制使用的实操命令:

# 批量转换 ./docs 目录下所有 PDF 文件,输出为 原文件名.pdf.md
find ./docs -name '*.pdf'; | xargs -I{} markitdown {} -o {}.md
# 批量转换 ./docs 目录下所有 Word 文件,输出到指定文件夹
find ./docs -name '*.docx'; -exec markitdown {} -o ./output/{}.md

# 批量转换(Shell 示例)
for file in *.pdf; do markitdown "$file" -o "${file%.pdf}.md"; done

案例4:支持OCR、音频、字幕等转换

# 图片 OCR 提取文字
markitdown screenshot.png --enable-ocr -o ocr_notes.md

# 音频转文字
markitdown meeting.mp3 -o transcript.md

# 提取 YouTube 字幕
markitdown https://www.youtube.com/watch?v=xxx -o subtitles.md

案例5:转换 PDF 文件(含 OCR 识别)

若 PDF 包含嵌入式图片或扫描内容,可启用 markitdown-ocr 插件进行 OCR 识别,步骤如下:

# 先安装插件及 LLM 客户端
pip install markitdown-ocr
pip install openai


# 使用 Python API 转换(支持 OCR 识别)
from markitdown import MarkItDown
from openai import OpenAI
md = MarkItDown(
enable_plugins=True,
llm_client=OpenAI(),
llm_model="gpt-4o",  # 需使用支持视觉能力的 LLM 模型
)
result = md.convert("包含图片的文档.pdf")
# 保存转换结果
with open("输出文档.md", "w", encoding="utf-8") as f:
f.write(result.text_content)

写在最后

在 LLM 应用爆发式增长的今天,将非结构化文档转为 AI 可理解的结构化文本是刚需。MarkItDown 正是为此场景而生,从办公文档到音视频,从网页到压缩包,一个工具覆盖几乎所有常见格式,无需在多个工具间切换。相比传统工具,它更懂 AI 的需求。

作为微软开源项目,代码质量、维护活跃度和社区支持都有保障。如果你正在构建基于 LLM 的应用,或需要将大量文档转为 AI 友好的格式,MarkItDown 是目前最值得尝试的开源工具之一。

项目地址https://github.com/microsoft/markitdown