爱意满满的作品展示区。
tenglvjun

做了一个开源 Zotero 插件 Mktero:把论文 PDF 读成能跳回原文的 Markdown

  •  2
     
  •   tenglvjun ·
    tenglvjun · 8h 18m ago · 293 views

    大家好,我是 Mktero 的作者。这是一个 Zotero 7–10 的扩展,MIT 开源。

    为什么做

    自己读论文时有几个一直很烦的地方:双栏 PDF 读完左栏要回到顶部找右栏;公式表格在小窗口里看不清,复制出来是乱码;想核对一个数字,又得回 PDF 里一页页翻。

    现有的 PDF 转 Markdown 工具能解决一部分,但转出来的 Markdown 和 PDF 是两份文件,笔记和高亮对不上,引用前也没法确认原文。

    它做什么

    右键 PDF →「使用 Mktero 阅读 Markdown 」,论文会在 Zotero 标签页里变成一栏连续正文:

    • 双栏按阅读顺序重排,公式( KaTeX )、表格、图片、引用、脚注都保留;刊头、页眉页脚和页码隐藏
    • 段落、公式、表格、图片都保留页码和区域映射,「在 PDF 中查看」直接跳回原页原位置
    • 在 Markdown 里做的高亮就是 Zotero 的 PDF 注释,PDF 里已有的高亮也会显示在 Markdown 里
    • 校对 OCR 错字(段落、标题、表格单元格),改动单独保存,不改缓存的转换结果
    • 行间公式复制成 LaTeX ,表格复制成 Markdown 或 CSV
    • 可选 AI 翻译:原文 / 译文 / 双语切换
    • 批量转换:多选条目或右键分类,后台排队
    • 导出到本地文件夹或 Obsidian 库

    实现上的几点

    • OCR 和版面分析交给 MinerU 或 Mistral OCR 。拿到结果后,插件在本地读取 PDF 自带的文字层:把在换页、换栏处断开的段落接回去;对排版生成的 PDF ,还会把 OCR 模型擅自"改正"的词(人名、作者原本的拼写)换回印刷原文
    • 图组只在版面证据、页面坐标和 Markdown 范围三者一致时才从本地 PDF 恢复,放在后台 Worker 里跑,不阻塞阅读
    • 缓存按内容寻址:key 由 PDF 内容和解析配置决定,同一篇论文再次打开不重新转换
    • 阅读器基于 CodeMirror 6 ,渲染为只读(校对编辑器除外)。PDF 处理用 pdf.js ,翻译走 Vercel AI SDK
    • 运行时是普通 JavaScript ,打包成兼容 Firefox 115 的 restartless 扩展,所以能覆盖 Zotero 7 到 10

    数据去哪了

    这点写在前面,因为未发表的论文比较敏感:

    • 默认转换:缓存里还没有的 PDF 会整份发到我运营的转换服务,需要登录 Mktero 账号,不需要 OCR 密钥
    • 不想上传:可以改用自己的 MinerU 云端 key 、自部署的 MinerU 4.0 ,或 Mistral OCR 。PDF 改发到那里,不需要 Mktero 账号。自部署 MinerU 的话,PDF 不出你的机器或内网
    • 翻译:只用你自己配置的 AI 厂商( OpenAI 、Anthropic 、Google 、DeepSeek 、阿里云百炼、Moonshot 、MiniMax ,或任意 OpenAI 兼容接口),不经过我的服务器
    • 缓存、校对、凭据都以明文存放在当前的 Zotero 配置文件夹里,Mktero 不同步它们

    完整的数据去向表: https://github.com/tenglvjun/mktero/blob/main/docs/privacy.zh-CN.md

    已知限制

    • 还是 Beta
    • 扫描件、三栏及以上、海报这类排版,阅读顺序可能出错,所以每一块都留了跳回 PDF 的入口
    • 默认转换和 MinerU 云端单个 PDF 最多 200 页(上传前在本地数页数)
    • 界面只支持英文和简体中文

    安装

    1. 在 GitHub Releases 下载最新的 .xpi: https://github.com/tenglvjun/mktero/releases/latest
    2. Zotero →「工具 → 插件」→ 齿轮菜单 → Install Add-on From File...
    3. 在「设置 → Mktero 」登录,或改选 MinerU / Mistral

    欢迎拍砖,特别想知道哪类论文的阅读顺序会出问题。Issue 、Discussions 都可以,有问题也可以直接在帖子里回复。

    No Comments Yet
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1348 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 21:22 · PVG 05:22 · LAX 14:22 · JFK 17:22
    ♥ Do have faith in what you're doing.