Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Marginalia

Marginalia

让中文母语者读英文学术文献时,拥有一本活的词典和一群先读过这本书的同伴。

快速开始 · 功能 · 架构 · 贡献 · 许可证

License: MITPythonReact


Marginalia is an AI-powered academic reading tool for Chinese-speaking scholars. Upload an English PDF, click any word for dictionary definitions with AI-powered contextual explanations, and summon a panel of six reader personas who annotate paragraphs from different analytical angles — like having a study group that already read the book.


Features / 功能

📖 智能词义查询

点击任意英文单词,即时弹出词义卡片。上半部分由 ECDICT 词典提供权威释义(零延迟),下半部分由 AI 判断当前语境下应取哪个含义并解释原因。词典保证准确性,AI 提供智能性。

词义查询

💬 六角色评论区

读完一段后,点击评论按钮,2-3 位 AI 读者从不同视角为你解读:

  • 领读学长 — 梳理论证结构和行文逻辑
  • 术语侦探 — 用大白话拆解专业术语
  • 批判者 — 指出隐含假设和论证漏洞
  • 联想家 — 连接其他学科和现实案例
  • 文化翻译官 — 解释西方学术写作的文化预设
  • 历史档案员 — 补充历史背景,像译者注一样克制准确

多角色评论

📚 章节回顾

读完一章后,领读学长为你做一次章节复盘:论证主线、关键收获、与前章衔接、下章预告。

📝 生词本

查过的每个词自动收入生词本,记录原句、语境释义、学科标注,按文档分组,支持多种排序。

阅读界面


Design Principles / 设计原则

AI 辅助阅读,而非替代阅读。 Marginalia 不提供"一键总结全文"功能。所有功能的目的是降低语言摩擦、增进理解深度,而不是帮你跳过阅读本身。

主权在读者。 查词是你主动点击的,评论是你主动召唤的。工具不打断你的阅读流。

节奏感。 高强度输入之后需要缓冲。多角色评论区用不同的声音帮你在密集的学术文本中找到喘息的空间。


Quick Start / 快速开始

系统要求

  • Python 3.10+
  • 约 1GB 磁盘空间(含词典数据库)
  • AI 服务的 API Key(推荐 DeepSeek,国内用户获取方便、成本低)

安装

git clone https://github.com/BaymaxStudio/Marginalia.git
cd marginalia
python3 setup.py

安装脚本会自动创建虚拟环境、安装依赖、下载词典数据库(约 800MB)。

启动

python3 run.py

浏览器会自动打开。首次使用请在设置页面配置你的 AI 服务 API Key。


Architecture / 技术架构

Marginalia 本地优先阅读工具运行架构
  • 词义查询:ECDICT 权威词典(毫秒级)+ AI 语境解释(异步),双层架构确保准确性
  • 评论生成:六个角色的人设和触发规则定义在 Prompt 模板中,AI 根据段落内容自动选择 2-3 位发言
  • 文档解析:PDF → Markdown → 结构化 JSON,三级结构识别(Markdown 标记 → 正则模式 → AI 兜底)
  • AI 适配器:可插拔架构,支持 Claude / DeepSeek / OpenAI 兼容服务,用户自选

Contributing / 参与贡献

欢迎贡献!以下是一些当前已知的改进方向:

  • EPUB / DOCX 格式支持
  • 深色模式
  • 生词复习功能(间隔重复)
  • 更多 AI 供应商适配(Qwen, Moonshot, Zhipu)
  • 扫描版 PDF 的 OCR 支持

如果你有想法或发现了 bug,欢迎提 Issue。如果你想贡献代码,请 Fork 本仓库并提交 Pull Request。


Acknowledgments / 致谢

  • ECDICT — 开源英汉词典数据库
  • PyMuPDF — PDF 解析引擎
  • pymupdf4llm — LLM 友好的 PDF 文本提取
  • FastAPI — Python Web 框架
  • React — 前端 UI 框架
  • NLTK — 自然语言处理工具包

License / 许可证

MIT License © 2026 Baymax

About

AI-powered academic reading companion for Chinese-speaking scholars

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Marginalia

Marginalia

让中文母语者读英文学术文献时,拥有一本活的词典和一群先读过这本书的同伴。

快速开始 · 功能 · 架构 · 贡献 · 许可证

License: MITPythonReact


Marginalia is an AI-powered academic reading tool for Chinese-speaking scholars. Upload an English PDF, click any word for dictionary definitions with AI-powered contextual explanations, and summon a panel of six reader personas who annotate paragraphs from different analytical angles — like having a study group that already read the book.


Features / 功能

📖 智能词义查询

点击任意英文单词,即时弹出词义卡片。上半部分由 ECDICT 词典提供权威释义(零延迟),下半部分由 AI 判断当前语境下应取哪个含义并解释原因。词典保证准确性,AI 提供智能性。

词义查询

💬 六角色评论区

读完一段后,点击评论按钮,2-3 位 AI 读者从不同视角为你解读:

  • 领读学长 — 梳理论证结构和行文逻辑
  • 术语侦探 — 用大白话拆解专业术语
  • 批判者 — 指出隐含假设和论证漏洞
  • 联想家 — 连接其他学科和现实案例
  • 文化翻译官 — 解释西方学术写作的文化预设
  • 历史档案员 — 补充历史背景,像译者注一样克制准确

多角色评论

📚 章节回顾

读完一章后,领读学长为你做一次章节复盘:论证主线、关键收获、与前章衔接、下章预告。

📝 生词本

查过的每个词自动收入生词本,记录原句、语境释义、学科标注,按文档分组,支持多种排序。

阅读界面


Design Principles / 设计原则

AI 辅助阅读,而非替代阅读。 Marginalia 不提供"一键总结全文"功能。所有功能的目的是降低语言摩擦、增进理解深度,而不是帮你跳过阅读本身。

主权在读者。 查词是你主动点击的,评论是你主动召唤的。工具不打断你的阅读流。

节奏感。 高强度输入之后需要缓冲。多角色评论区用不同的声音帮你在密集的学术文本中找到喘息的空间。


Quick Start / 快速开始

系统要求

  • Python 3.10+
  • 约 1GB 磁盘空间(含词典数据库)
  • AI 服务的 API Key(推荐 DeepSeek,国内用户获取方便、成本低)

安装

git clone https://github.com/BaymaxStudio/Marginalia.git
cd marginalia
python3 setup.py

安装脚本会自动创建虚拟环境、安装依赖、下载词典数据库(约 800MB)。

启动

python3 run.py

浏览器会自动打开。首次使用请在设置页面配置你的 AI 服务 API Key。


Architecture / 技术架构

Marginalia 本地优先阅读工具运行架构
  • 词义查询:ECDICT 权威词典(毫秒级)+ AI 语境解释(异步),双层架构确保准确性
  • 评论生成:六个角色的人设和触发规则定义在 Prompt 模板中,AI 根据段落内容自动选择 2-3 位发言
  • 文档解析:PDF → Markdown → 结构化 JSON,三级结构识别(Markdown 标记 → 正则模式 → AI 兜底)
  • AI 适配器:可插拔架构,支持 Claude / DeepSeek / OpenAI 兼容服务,用户自选

Contributing / 参与贡献

欢迎贡献!以下是一些当前已知的改进方向:

  • EPUB / DOCX 格式支持
  • 深色模式
  • 生词复习功能(间隔重复)
  • 更多 AI 供应商适配(Qwen, Moonshot, Zhipu)
  • 扫描版 PDF 的 OCR 支持

如果你有想法或发现了 bug,欢迎提 Issue。如果你想贡献代码,请 Fork 本仓库并提交 Pull Request。


Acknowledgments / 致谢

  • ECDICT — 开源英汉词典数据库
  • PyMuPDF — PDF 解析引擎
  • pymupdf4llm — LLM 友好的 PDF 文本提取
  • FastAPI — Python Web 框架
  • React — 前端 UI 框架
  • NLTK — 自然语言处理工具包

License / 许可证

MIT License © 2026 Baymax

About

AI-powered academic reading companion for Chinese-speaking scholars

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Marginalia

Marginalia

让中文母语者读英文学术文献时,拥有一本活的词典和一群先读过这本书的同伴。

快速开始 · 功能 · 架构 · 贡献 · 许可证

License: MITPythonReact


Marginalia is an AI-powered academic reading tool for Chinese-speaking scholars. Upload an English PDF, click any word for dictionary definitions with AI-powered contextual explanations, and summon a panel of six reader personas who annotate paragraphs from different analytical angles — like having a study group that already read the book.


Features / 功能

📖 智能词义查询

点击任意英文单词,即时弹出词义卡片。上半部分由 ECDICT 词典提供权威释义(零延迟),下半部分由 AI 判断当前语境下应取哪个含义并解释原因。词典保证准确性,AI 提供智能性。

词义查询

💬 六角色评论区

读完一段后,点击评论按钮,2-3 位 AI 读者从不同视角为你解读:

  • 领读学长 — 梳理论证结构和行文逻辑
  • 术语侦探 — 用大白话拆解专业术语
  • 批判者 — 指出隐含假设和论证漏洞
  • 联想家 — 连接其他学科和现实案例
  • 文化翻译官 — 解释西方学术写作的文化预设
  • 历史档案员 — 补充历史背景,像译者注一样克制准确

多角色评论

📚 章节回顾

读完一章后,领读学长为你做一次章节复盘:论证主线、关键收获、与前章衔接、下章预告。

📝 生词本

查过的每个词自动收入生词本,记录原句、语境释义、学科标注,按文档分组,支持多种排序。

阅读界面


Design Principles / 设计原则

AI 辅助阅读,而非替代阅读。 Marginalia 不提供"一键总结全文"功能。所有功能的目的是降低语言摩擦、增进理解深度,而不是帮你跳过阅读本身。

主权在读者。 查词是你主动点击的,评论是你主动召唤的。工具不打断你的阅读流。

节奏感。 高强度输入之后需要缓冲。多角色评论区用不同的声音帮你在密集的学术文本中找到喘息的空间。


Quick Start / 快速开始

系统要求

  • Python 3.10+
  • 约 1GB 磁盘空间(含词典数据库)
  • AI 服务的 API Key(推荐 DeepSeek,国内用户获取方便、成本低)

安装

git clone https://github.com/BaymaxStudio/Marginalia.git
cd marginalia
python3 setup.py

安装脚本会自动创建虚拟环境、安装依赖、下载词典数据库(约 800MB)。

启动

python3 run.py

浏览器会自动打开。首次使用请在设置页面配置你的 AI 服务 API Key。


Architecture / 技术架构

Marginalia 本地优先阅读工具运行架构
  • 词义查询:ECDICT 权威词典(毫秒级)+ AI 语境解释(异步),双层架构确保准确性
  • 评论生成:六个角色的人设和触发规则定义在 Prompt 模板中,AI 根据段落内容自动选择 2-3 位发言
  • 文档解析:PDF → Markdown → 结构化 JSON,三级结构识别(Markdown 标记 → 正则模式 → AI 兜底)
  • AI 适配器:可插拔架构,支持 Claude / DeepSeek / OpenAI 兼容服务,用户自选

Contributing / 参与贡献

欢迎贡献!以下是一些当前已知的改进方向:

  • EPUB / DOCX 格式支持
  • 深色模式
  • 生词复习功能(间隔重复)
  • 更多 AI 供应商适配(Qwen, Moonshot, Zhipu)
  • 扫描版 PDF 的 OCR 支持

如果你有想法或发现了 bug,欢迎提 Issue。如果你想贡献代码,请 Fork 本仓库并提交 Pull Request。


Acknowledgments / 致谢

  • ECDICT — 开源英汉词典数据库
  • PyMuPDF — PDF 解析引擎
  • pymupdf4llm — LLM 友好的 PDF 文本提取
  • FastAPI — Python Web 框架
  • React — 前端 UI 框架
  • NLTK — 自然语言处理工具包

License / 许可证

MIT License © 2026 Baymax

About

AI-powered academic reading companion for Chinese-speaking scholars

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Marginalia

Marginalia

让中文母语者读英文学术文献时,拥有一本活的词典和一群先读过这本书的同伴。

快速开始 · 功能 · 架构 · 贡献 · 许可证

License: MITPythonReact


Marginalia is an AI-powered academic reading tool for Chinese-speaking scholars. Upload an English PDF, click any word for dictionary definitions with AI-powered contextual explanations, and summon a panel of six reader personas who annotate paragraphs from different analytical angles — like having a study group that already read the book.


Features / 功能

📖 智能词义查询

点击任意英文单词,即时弹出词义卡片。上半部分由 ECDICT 词典提供权威释义(零延迟),下半部分由 AI 判断当前语境下应取哪个含义并解释原因。词典保证准确性,AI 提供智能性。

词义查询

💬 六角色评论区

读完一段后,点击评论按钮,2-3 位 AI 读者从不同视角为你解读:

  • 领读学长 — 梳理论证结构和行文逻辑
  • 术语侦探 — 用大白话拆解专业术语
  • 批判者 — 指出隐含假设和论证漏洞
  • 联想家 — 连接其他学科和现实案例
  • 文化翻译官 — 解释西方学术写作的文化预设
  • 历史档案员 — 补充历史背景,像译者注一样克制准确

多角色评论

📚 章节回顾

读完一章后,领读学长为你做一次章节复盘:论证主线、关键收获、与前章衔接、下章预告。

📝 生词本

查过的每个词自动收入生词本,记录原句、语境释义、学科标注,按文档分组,支持多种排序。

阅读界面


Design Principles / 设计原则

AI 辅助阅读,而非替代阅读。 Marginalia 不提供"一键总结全文"功能。所有功能的目的是降低语言摩擦、增进理解深度,而不是帮你跳过阅读本身。

主权在读者。 查词是你主动点击的,评论是你主动召唤的。工具不打断你的阅读流。

节奏感。 高强度输入之后需要缓冲。多角色评论区用不同的声音帮你在密集的学术文本中找到喘息的空间。


Quick Start / 快速开始

系统要求

  • Python 3.10+
  • 约 1GB 磁盘空间(含词典数据库)
  • AI 服务的 API Key(推荐 DeepSeek,国内用户获取方便、成本低)

安装

git clone https://github.com/BaymaxStudio/Marginalia.git
cd marginalia
python3 setup.py

安装脚本会自动创建虚拟环境、安装依赖、下载词典数据库(约 800MB)。

启动

python3 run.py

浏览器会自动打开。首次使用请在设置页面配置你的 AI 服务 API Key。


Architecture / 技术架构

Marginalia 本地优先阅读工具运行架构
  • 词义查询:ECDICT 权威词典(毫秒级)+ AI 语境解释(异步),双层架构确保准确性
  • 评论生成:六个角色的人设和触发规则定义在 Prompt 模板中,AI 根据段落内容自动选择 2-3 位发言
  • 文档解析:PDF → Markdown → 结构化 JSON,三级结构识别(Markdown 标记 → 正则模式 → AI 兜底)
  • AI 适配器:可插拔架构,支持 Claude / DeepSeek / OpenAI 兼容服务,用户自选

Contributing / 参与贡献

欢迎贡献!以下是一些当前已知的改进方向:

  • EPUB / DOCX 格式支持
  • 深色模式
  • 生词复习功能(间隔重复)
  • 更多 AI 供应商适配(Qwen, Moonshot, Zhipu)
  • 扫描版 PDF 的 OCR 支持

如果你有想法或发现了 bug,欢迎提 Issue。如果你想贡献代码,请 Fork 本仓库并提交 Pull Request。


Acknowledgments / 致谢

  • ECDICT — 开源英汉词典数据库
  • PyMuPDF — PDF 解析引擎
  • pymupdf4llm — LLM 友好的 PDF 文本提取
  • FastAPI — Python Web 框架
  • React — 前端 UI 框架
  • NLTK — 自然语言处理工具包

License / 许可证

MIT License © 2026 Baymax

About

AI-powered academic reading companion for Chinese-speaking scholars

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Marginalia

Marginalia

让中文母语者读英文学术文献时,拥有一本活的词典和一群先读过这本书的同伴。

快速开始 · 功能 · 架构 · 贡献 · 许可证

License: MITPythonReact


Marginalia is an AI-powered academic reading tool for Chinese-speaking scholars. Upload an English PDF, click any word for dictionary definitions with AI-powered contextual explanations, and summon a panel of six reader personas who annotate paragraphs from different analytical angles — like having a study group that already read the book.


Features / 功能

📖 智能词义查询

点击任意英文单词,即时弹出词义卡片。上半部分由 ECDICT 词典提供权威释义(零延迟),下半部分由 AI 判断当前语境下应取哪个含义并解释原因。词典保证准确性,AI 提供智能性。

词义查询

💬 六角色评论区

读完一段后,点击评论按钮,2-3 位 AI 读者从不同视角为你解读:

  • 领读学长 — 梳理论证结构和行文逻辑
  • 术语侦探 — 用大白话拆解专业术语
  • 批判者 — 指出隐含假设和论证漏洞
  • 联想家 — 连接其他学科和现实案例
  • 文化翻译官 — 解释西方学术写作的文化预设
  • 历史档案员 — 补充历史背景,像译者注一样克制准确

多角色评论

📚 章节回顾

读完一章后,领读学长为你做一次章节复盘:论证主线、关键收获、与前章衔接、下章预告。

📝 生词本

查过的每个词自动收入生词本,记录原句、语境释义、学科标注,按文档分组,支持多种排序。

阅读界面


Design Principles / 设计原则

AI 辅助阅读,而非替代阅读。 Marginalia 不提供"一键总结全文"功能。所有功能的目的是降低语言摩擦、增进理解深度,而不是帮你跳过阅读本身。

主权在读者。 查词是你主动点击的,评论是你主动召唤的。工具不打断你的阅读流。

节奏感。 高强度输入之后需要缓冲。多角色评论区用不同的声音帮你在密集的学术文本中找到喘息的空间。


Quick Start / 快速开始

系统要求

  • Python 3.10+
  • 约 1GB 磁盘空间(含词典数据库)
  • AI 服务的 API Key(推荐 DeepSeek,国内用户获取方便、成本低)

安装

git clone https://github.com/BaymaxStudio/Marginalia.git
cd marginalia
python3 setup.py

安装脚本会自动创建虚拟环境、安装依赖、下载词典数据库(约 800MB)。

启动

python3 run.py

浏览器会自动打开。首次使用请在设置页面配置你的 AI 服务 API Key。


Architecture / 技术架构

Marginalia 本地优先阅读工具运行架构
  • 词义查询:ECDICT 权威词典(毫秒级)+ AI 语境解释(异步),双层架构确保准确性
  • 评论生成:六个角色的人设和触发规则定义在 Prompt 模板中,AI 根据段落内容自动选择 2-3 位发言
  • 文档解析:PDF → Markdown → 结构化 JSON,三级结构识别(Markdown 标记 → 正则模式 → AI 兜底)
  • AI 适配器:可插拔架构,支持 Claude / DeepSeek / OpenAI 兼容服务,用户自选

Contributing / 参与贡献

欢迎贡献!以下是一些当前已知的改进方向:

  • EPUB / DOCX 格式支持
  • 深色模式
  • 生词复习功能(间隔重复)
  • 更多 AI 供应商适配(Qwen, Moonshot, Zhipu)
  • 扫描版 PDF 的 OCR 支持

如果你有想法或发现了 bug,欢迎提 Issue。如果你想贡献代码,请 Fork 本仓库并提交 Pull Request。


Acknowledgments / 致谢

  • ECDICT — 开源英汉词典数据库
  • PyMuPDF — PDF 解析引擎
  • pymupdf4llm — LLM 友好的 PDF 文本提取
  • FastAPI — Python Web 框架
  • React — 前端 UI 框架
  • NLTK — 自然语言处理工具包

License / 许可证

MIT License © 2026 Baymax

About

AI-powered academic reading companion for Chinese-speaking scholars

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Marginalia

Marginalia

让中文母语者读英文学术文献时,拥有一本活的词典和一群先读过这本书的同伴。

快速开始 · 功能 · 架构 · 贡献 · 许可证

License: MITPythonReact


Marginalia is an AI-powered academic reading tool for Chinese-speaking scholars. Upload an English PDF, click any word for dictionary definitions with AI-powered contextual explanations, and summon a panel of six reader personas who annotate paragraphs from different analytical angles — like having a study group that already read the book.


Features / 功能

📖 智能词义查询

点击任意英文单词,即时弹出词义卡片。上半部分由 ECDICT 词典提供权威释义(零延迟),下半部分由 AI 判断当前语境下应取哪个含义并解释原因。词典保证准确性,AI 提供智能性。

词义查询

💬 六角色评论区

读完一段后,点击评论按钮,2-3 位 AI 读者从不同视角为你解读:

  • 领读学长 — 梳理论证结构和行文逻辑
  • 术语侦探 — 用大白话拆解专业术语
  • 批判者 — 指出隐含假设和论证漏洞
  • 联想家 — 连接其他学科和现实案例
  • 文化翻译官 — 解释西方学术写作的文化预设
  • 历史档案员 — 补充历史背景,像译者注一样克制准确

多角色评论

📚 章节回顾

读完一章后,领读学长为你做一次章节复盘:论证主线、关键收获、与前章衔接、下章预告。

📝 生词本

查过的每个词自动收入生词本,记录原句、语境释义、学科标注,按文档分组,支持多种排序。

阅读界面


Design Principles / 设计原则

AI 辅助阅读,而非替代阅读。 Marginalia 不提供"一键总结全文"功能。所有功能的目的是降低语言摩擦、增进理解深度,而不是帮你跳过阅读本身。

主权在读者。 查词是你主动点击的,评论是你主动召唤的。工具不打断你的阅读流。

节奏感。 高强度输入之后需要缓冲。多角色评论区用不同的声音帮你在密集的学术文本中找到喘息的空间。


Quick Start / 快速开始

系统要求

  • Python 3.10+
  • 约 1GB 磁盘空间(含词典数据库)
  • AI 服务的 API Key(推荐 DeepSeek,国内用户获取方便、成本低)

安装

git clone https://github.com/BaymaxStudio/Marginalia.git
cd marginalia
python3 setup.py

安装脚本会自动创建虚拟环境、安装依赖、下载词典数据库(约 800MB)。

启动

python3 run.py

浏览器会自动打开。首次使用请在设置页面配置你的 AI 服务 API Key。


Architecture / 技术架构

Marginalia 本地优先阅读工具运行架构
  • 词义查询:ECDICT 权威词典(毫秒级)+ AI 语境解释(异步),双层架构确保准确性
  • 评论生成:六个角色的人设和触发规则定义在 Prompt 模板中,AI 根据段落内容自动选择 2-3 位发言
  • 文档解析:PDF → Markdown → 结构化 JSON,三级结构识别(Markdown 标记 → 正则模式 → AI 兜底)
  • AI 适配器:可插拔架构,支持 Claude / DeepSeek / OpenAI 兼容服务,用户自选

Contributing / 参与贡献

欢迎贡献!以下是一些当前已知的改进方向:

  • EPUB / DOCX 格式支持
  • 深色模式
  • 生词复习功能(间隔重复)
  • 更多 AI 供应商适配(Qwen, Moonshot, Zhipu)
  • 扫描版 PDF 的 OCR 支持

如果你有想法或发现了 bug,欢迎提 Issue。如果你想贡献代码,请 Fork 本仓库并提交 Pull Request。


Acknowledgments / 致谢

  • ECDICT — 开源英汉词典数据库
  • PyMuPDF — PDF 解析引擎
  • pymupdf4llm — LLM 友好的 PDF 文本提取
  • FastAPI — Python Web 框架
  • React — 前端 UI 框架
  • NLTK — 自然语言处理工具包

License / 许可证

MIT License © 2026 Baymax

About

AI-powered academic reading companion for Chinese-speaking scholars

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Marginalia

Marginalia

让中文母语者读英文学术文献时,拥有一本活的词典和一群先读过这本书的同伴。

快速开始 · 功能 · 架构 · 贡献 · 许可证

License: MITPythonReact


Marginalia is an AI-powered academic reading tool for Chinese-speaking scholars. Upload an English PDF, click any word for dictionary definitions with AI-powered contextual explanations, and summon a panel of six reader personas who annotate paragraphs from different analytical angles — like having a study group that already read the book.


Features / 功能

📖 智能词义查询

点击任意英文单词,即时弹出词义卡片。上半部分由 ECDICT 词典提供权威释义(零延迟),下半部分由 AI 判断当前语境下应取哪个含义并解释原因。词典保证准确性,AI 提供智能性。

词义查询

💬 六角色评论区

读完一段后,点击评论按钮,2-3 位 AI 读者从不同视角为你解读:

  • 领读学长 — 梳理论证结构和行文逻辑
  • 术语侦探 — 用大白话拆解专业术语
  • 批判者 — 指出隐含假设和论证漏洞
  • 联想家 — 连接其他学科和现实案例
  • 文化翻译官 — 解释西方学术写作的文化预设
  • 历史档案员 — 补充历史背景,像译者注一样克制准确

多角色评论

📚 章节回顾

读完一章后,领读学长为你做一次章节复盘:论证主线、关键收获、与前章衔接、下章预告。

📝 生词本

查过的每个词自动收入生词本,记录原句、语境释义、学科标注,按文档分组,支持多种排序。

阅读界面


Design Principles / 设计原则

AI 辅助阅读,而非替代阅读。 Marginalia 不提供"一键总结全文"功能。所有功能的目的是降低语言摩擦、增进理解深度,而不是帮你跳过阅读本身。

主权在读者。 查词是你主动点击的,评论是你主动召唤的。工具不打断你的阅读流。

节奏感。 高强度输入之后需要缓冲。多角色评论区用不同的声音帮你在密集的学术文本中找到喘息的空间。


Quick Start / 快速开始

系统要求

  • Python 3.10+
  • 约 1GB 磁盘空间(含词典数据库)
  • AI 服务的 API Key(推荐 DeepSeek,国内用户获取方便、成本低)

安装

git clone https://github.com/BaymaxStudio/Marginalia.git
cd marginalia
python3 setup.py

安装脚本会自动创建虚拟环境、安装依赖、下载词典数据库(约 800MB)。

启动

python3 run.py

浏览器会自动打开。首次使用请在设置页面配置你的 AI 服务 API Key。


Architecture / 技术架构

Marginalia 本地优先阅读工具运行架构
  • 词义查询:ECDICT 权威词典(毫秒级)+ AI 语境解释(异步),双层架构确保准确性
  • 评论生成:六个角色的人设和触发规则定义在 Prompt 模板中,AI 根据段落内容自动选择 2-3 位发言
  • 文档解析:PDF → Markdown → 结构化 JSON,三级结构识别(Markdown 标记 → 正则模式 → AI 兜底)
  • AI 适配器:可插拔架构,支持 Claude / DeepSeek / OpenAI 兼容服务,用户自选

Contributing / 参与贡献

欢迎贡献!以下是一些当前已知的改进方向:

  • EPUB / DOCX 格式支持
  • 深色模式
  • 生词复习功能(间隔重复)
  • 更多 AI 供应商适配(Qwen, Moonshot, Zhipu)
  • 扫描版 PDF 的 OCR 支持

如果你有想法或发现了 bug,欢迎提 Issue。如果你想贡献代码,请 Fork 本仓库并提交 Pull Request。


Acknowledgments / 致谢

  • ECDICT — 开源英汉词典数据库
  • PyMuPDF — PDF 解析引擎
  • pymupdf4llm — LLM 友好的 PDF 文本提取
  • FastAPI — Python Web 框架
  • React — 前端 UI 框架
  • NLTK — 自然语言处理工具包

License / 许可证

MIT License © 2026 Baymax

About

AI-powered academic reading companion for Chinese-speaking scholars

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Latest commit

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

Marginalia

Marginalia

让中文母语者读英文学术文献时,拥有一本活的词典和一群先读过这本书的同伴。

快速开始 · 功能 · 架构 · 贡献 · 许可证

License: MITPythonReact


Marginalia is an AI-powered academic reading tool for Chinese-speaking scholars. Upload an English PDF, click any word for dictionary definitions with AI-powered contextual explanations, and summon a panel of six reader personas who annotate paragraphs from different analytical angles — like having a study group that already read the book.


Features / 功能

📖 智能词义查询

点击任意英文单词,即时弹出词义卡片。上半部分由 ECDICT 词典提供权威释义(零延迟),下半部分由 AI 判断当前语境下应取哪个含义并解释原因。词典保证准确性,AI 提供智能性。

词义查询

💬 六角色评论区

读完一段后,点击评论按钮,2-3 位 AI 读者从不同视角为你解读:

  • 领读学长 — 梳理论证结构和行文逻辑
  • 术语侦探 — 用大白话拆解专业术语
  • 批判者 — 指出隐含假设和论证漏洞
  • 联想家 — 连接其他学科和现实案例
  • 文化翻译官 — 解释西方学术写作的文化预设
  • 历史档案员 — 补充历史背景,像译者注一样克制准确

多角色评论

📚 章节回顾

读完一章后,领读学长为你做一次章节复盘:论证主线、关键收获、与前章衔接、下章预告。

📝 生词本

查过的每个词自动收入生词本,记录原句、语境释义、学科标注,按文档分组,支持多种排序。

阅读界面


Design Principles / 设计原则

AI 辅助阅读,而非替代阅读。 Marginalia 不提供"一键总结全文"功能。所有功能的目的是降低语言摩擦、增进理解深度,而不是帮你跳过阅读本身。

主权在读者。 查词是你主动点击的,评论是你主动召唤的。工具不打断你的阅读流。

节奏感。 高强度输入之后需要缓冲。多角色评论区用不同的声音帮你在密集的学术文本中找到喘息的空间。


Quick Start / 快速开始

系统要求

  • Python 3.10+
  • 约 1GB 磁盘空间(含词典数据库)
  • AI 服务的 API Key(推荐 DeepSeek,国内用户获取方便、成本低)

安装

git clone https://github.com/BaymaxStudio/Marginalia.git
cd marginalia
python3 setup.py

安装脚本会自动创建虚拟环境、安装依赖、下载词典数据库(约 800MB)。

启动

python3 run.py

浏览器会自动打开。首次使用请在设置页面配置你的 AI 服务 API Key。


Architecture / 技术架构

Marginalia 本地优先阅读工具运行架构
  • 词义查询:ECDICT 权威词典(毫秒级)+ AI 语境解释(异步),双层架构确保准确性
  • 评论生成:六个角色的人设和触发规则定义在 Prompt 模板中,AI 根据段落内容自动选择 2-3 位发言
  • 文档解析:PDF → Markdown → 结构化 JSON,三级结构识别(Markdown 标记 → 正则模式 → AI 兜底)
  • AI 适配器:可插拔架构,支持 Claude / DeepSeek / OpenAI 兼容服务,用户自选

Contributing / 参与贡献

欢迎贡献!以下是一些当前已知的改进方向:

  • EPUB / DOCX 格式支持
  • 深色模式
  • 生词复习功能(间隔重复)
  • 更多 AI 供应商适配(Qwen, Moonshot, Zhipu)
  • 扫描版 PDF 的 OCR 支持

如果你有想法或发现了 bug,欢迎提 Issue。如果你想贡献代码,请 Fork 本仓库并提交 Pull Request。


Acknowledgments / 致谢

  • ECDICT — 开源英汉词典数据库
  • PyMuPDF — PDF 解析引擎
  • pymupdf4llm — LLM 友好的 PDF 文本提取
  • FastAPI — Python Web 框架
  • React — 前端 UI 框架
  • NLTK — 自然语言处理工具包

License / 许可证

MIT License © 2026 Baymax

About

AI-powered academic reading companion for Chinese-speaking scholars

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages