运行时依赖
安装命令
点击复制技能文档
网页 to Obsidian
将网页文章抓取并保存到 Obsidian vault,支持自动翻译和内容元数据生成。
工作流程
- 抓取网页内容
使用 scripts/fetch.py 获取网页的 Markdown 内容:
python3 scripts/fetch.py "" --json
返回格式:
{ "成功": true, "url": "https://r.jina.AI/http://example.com/article", "content": "# Article Title\n\n清理 markdown content here...", "source": "jina", "error": null }
- 翻译非中文内容
如果内容不是以中文为主,则进行高质量翻译:
- 术语精准
术语专业:使用行业通用标准术语(如将 "Buffer" 译为 "缓冲区")。 保持英文:对于专有名词、缩写、库名(如 React, Kubernetes, PyTorch)保持原样。 自创术语:若作者自创概念,保留英文并创建中文对应概念
- 句式重构
将英文长句拆分为符合中文表达习惯的短句 被动语态转为主动语态(如:"is used to" → "可以用来") 删除不必要的代词和介词短语冗余
- 格式保持
Markdown 格式保持不变:代码块、表格、列表、链接、粗体斜体 图片链接和引用标记保持不变 不翻译代码和命令,但翻译代码块中的注释
- 语境优化
代词根据上下文明确化(英文常用 it/this,中文需明确指代对象) 补充必要的逻辑连接词(因此、此外、具体来说) 保留原作者的强调语气(通过"注意"、"重要"等提示词) 去掉翻译腔:避免使用过多的“被”、“的”等冗余词汇,确保语气专业、清晰、自然、简介。
- 生成元数据
基于内容分析生成以下元数据:
必需字段:
title: 文章标题(从内容中提取或使用网页标题) source: 原始 URL date: 抓取日期(ISO 8601 格式) tags: 相关标签(3-7 个) summary: 文章摘要(100-200 字)
可选字段:
author: 作者(如有) language: 内容语言(zh/en/ja 等) translated: 是否经过翻译(true/false)
标签生成规则:
提取文章的核心主题(技术领域、学科等) 识别文章类型(教程、新闻、论文、博客等) 识别关键技术/概念 使用小写字母,空格用连字符替代
示例:
技术教程 → #tutorial, #programming, #python AI 文章 → #AI, #machine-learning, #llm 新闻 → #news, #techno记录y
- 创建 Obsidian Markdown 文件,并写入temp.md中
生成符合 Obsidian 格式的 Markdown 文件,包含:
Frontmatter(YAML 头部):
title: "文章标题" date: "2024-01-15" source: "https://example.com/article" tags: - tag1 - tag2 - tag3 author: "作者名" summary: "文章摘要" language: "en" translated: true
内容主体:
正文内容...
将生成的内容生写入 当前目录下的temp.md中 ,注意:正文内容部分不要进行任何修改、抽象和演绎,直接写入即可。
,
- 导入到 Obsidian
使用 obsidian-命令行工具 将文件导入到 Obsidian vault:
# 方法1:使用 创建 命令直接创建 obsidian 创建 name="文章标题" content="$(cat temp.md)"
# 方法2:如果支持从文件创建 # obsidian 创建 --file "$TEMP_FILE" name="文章标题"
指定目标文件夹(可选):
默认导入到 vault 根目录 用户可以指定文件夹路径,例如:--folder="articles/网页"
- 清理临时文件
导入完成后删除临时文件:
rm -f temp.md
使用示例 基本用法
用户:"帮我抓取这篇文章 https://example.com/article 保存到 Obsidian"
执行步骤:
抓取网页内容 判断语言,需要翻译则翻译 生成元数据 创建 Obsidian Markdown 文件 导入到 Obsidian 清理临时文件 指定文件夹
用户:"抓取 https://example.com/article 保存到 Obsidian 的 articles/tech 文件夹"
在创建时指定文件夹路径。
批量抓取
用户:"帮我抓取这几篇文章到 Obsidian:[url1], [url2], [url3]"
对每篇文章依次执行抓取流程。
注意事项
翻译质量:确保翻译质量。如果翻译不理想,提示用户可以手动调整。
网络问题:如果抓取失败,scripts/fetch.py 会自动降级到备用服务。如果全部失败,提示用户检查 URL。
Obsidian 连接:obsidian-命令行工具 需要 Obsidian 正在运行。如果连接失败,提示用户打开 Obsidian。
文件名处理:
使用文章标题作为文件名(去除特殊字符) 如果标题为空,使用 URL 的最后部分 避免文件名冲突(添加时间戳或序号)
隐私注意:抓取的网页内容可能包含隐私信息,提醒用户注意。
错误处理
抓取失败:
检查 URL 是否可访问 尝试使用本地网页 fetch工具进行抓取 提示用户提供文章内容
Obsidian 导入失败:
检查 Obsidian 是否运行 检查 vault 名称是否正确 提示用户手动导入临时文件
翻译失败:
使用原始语言保存 在元数据中标记为未翻译 完整流程示例 用户: 帮我保存这篇文章到 Obsidian: https://python.langchAIn.com/docs/获取_启动ed/introduction
步骤:
- 抓取 → 获取英文 Markdown 内容
- 检测 → 判断为英文内容(需要翻译)
- 翻译 → 翻译为中文,保持格式
- 元数据 →
- 创建文件 → 生成带 frontmatter 的 Markdown
- 导入 → 使用 obsidian-命令行工具 导入
- 清理 → 删除临时文件
- 反馈 → 告诉用户已保存成功,文件名是 "LangChAIn 入门介绍.md"