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

90 lines
3.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
name: ads_html_to_obsidian
description: "将 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 虚拟环境中需安装 `beautifulsoup4``uv pip install beautifulsoup4`
- 系统需安装 `pandoc``sudo apt install pandoc`
## 运行方式
本技能通过附带脚本 `scripts/convert.py` 执行批量转换:
```bash
python .claude/skills/ads_html_to_obsidian/scripts/convert.py \
<metadata.json> \
<download_dir> \
<output_dir>
```
### 参数说明
- `metadata.json`:由 `ads_metadata_search` 技能生成的文献元数据 JSON 文件,包含每篇论文的 `bibcode`、`title`、`author`、`year`、`abstract`、`pub`、`doi` 等字段
- `download_dir`:由 `ads_literature_downloader` 技能创建的下载目录,内含 `HTML/``PDF/` 子目录
- `output_dir`Obsidian 笔记库的目标目录(如 Obsidian vault 中的主题文件夹)
### 输出格式
每个文献生成一个以 bibcode 命名的 `.md` 文件,格式如下:
```yaml
---
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 笔记
```bash
# 完整工作流示例
# 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]`:无法获取全文,仅保存摘要
结束后统计总数、成功转换数和仅摘要数。