Article/skills/ads_html_to_obsidian/SKILL.md
Asfmq dfd0a980a5 feat: 重写 ADS 搜索脚本为 REST API,新增 Obsidian 转换 skill,修复路径
- ads_metadata_search: 移除 ads 库依赖,改用 requests 直连 ADS REST API;
  移除硬编码 API Key,改为 .env 文件/环境变量加载
- 新增 ads_html_to_obsidian skill:将下载的 HTML 文献批量转换为
  Obsidian Markdown 笔记(BS4 提取正文 + Pandoc 转换 + 清洗后处理)
- 两个 SKILL.md 中的 Windows 绝对路径改为相对路径
2026-05-26 17:30:36 +08:00

3.4 KiB
Raw Blame History

name description
ads_html_to_obsidian 将 ADS 下载的 HTML/PDF 天体物理文献批量转换为 Obsidian Markdown 笔记格式。当用户要求将下载的论文转为 Obsidian 笔记、将 HTML 文献转为 Markdown、或者在使用 ads_literature_downloader 之后需要整理文献到 Obsidian 知识库时,务必触发并使用本技能。当用户提到 '转换文献'、'导入 Obsidian'、'整理论文'、'放到笔记库' 等关键词时也应触发。

ADS HTML to Obsidian (ADS 文献转 Obsidian 笔记)

本技能将 ads_literature_downloader 下载的 HTML 文献批量转换为 Obsidian Markdown 格式的笔记文件。它会:

  1. 从 HTML 中提取论文正文(使用 BeautifulSoup
  2. 通过 Pandoc 将 HTML 转为干净的 Markdown
  3. 清理转换残留标记CSS class、div、脚注等
  4. 生成带有 YAML frontmatter 的 Obsidian 笔记文件
  5. 对于无法获取全文的文献,自动回退为仅保存摘要

依赖

  • Python 虚拟环境中需安装 beautifulsoup4uv pip install beautifulsoup4
  • 系统需安装 pandocsudo apt install pandoc

运行方式

本技能通过附带脚本 scripts/convert.py 执行批量转换:

python .claude/skills/ads_html_to_obsidian/scripts/convert.py \
    <metadata.json> \
    <download_dir> \
    <output_dir>

参数说明

  • metadata.json:由 ads_metadata_search 技能生成的文献元数据 JSON 文件,包含每篇论文的 bibcodetitleauthoryearabstractpubdoi 等字段
  • download_dir:由 ads_literature_downloader 技能创建的下载目录,内含 HTML/PDF/ 子目录
  • output_dirObsidian 笔记库的目标目录(如 Obsidian vault 中的主题文件夹)

输出格式

每个文献生成一个以 bibcode 命名的 .md 文件,格式如下:

---
title: "论文标题"
author: ["作者1", "作者2"]
publisher: "期刊名"
source: "https://ui.adsabs.harvard.edu/abs/BIBCODE/abstract"
date: "2025-01-01"
tags: "Astrophysics-Solar-and-Stellar-Astrophysics"
---

# 论文标题
## [ADS: ADS链接](ADS链接)

论文正文Markdown 格式)...

如果 HTML 全文无法转换如会议摘要、星表、HST 提案等),文件中会包含 ## Abstract 部分和摘要文本。

典型工作流

本技能通常与其他 ADS 技能配合使用:

  1. 搜索文献:使用 ads_metadata_search 搜索并保存元数据到 results.json
  2. 下载文献:使用 ads_literature_downloader 下载 PDF/HTML 到 download_dir/
  3. 转换笔记:使用本技能将下载的文献转为 Obsidian 笔记
# 完整工作流示例
# Step 1: 搜索
python .claude/skills/ads_metadata_search/scripts/search.py \
    --query '"hot subdwarf"' --output results.json --rows 50 --year_range 2025-2026

# Step 2: 提取 bibcodes 并下载
python .claude/skills/ads_literature_downloader/scripts/download.py \
    --bibcode_file bibcodes.txt --output_dir ./papers --threads 3

# Step 3: 转换为 Obsidian 笔记
python .claude/skills/ads_html_to_obsidian/scripts/convert.py \
    results.json ./papers /path/to/obsidian/vault/TopicFolder

脚本输出

运行时会显示每篇文献的转换状态:

  • [HTML->MD]:成功从 HTML 转为 Markdown含全文
  • [Abstract only]:无法获取全文,仅保存摘要

结束后统计总数、成功转换数和仅摘要数。