---
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`:由 `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]`:无法获取全文,仅保存摘要
结束后统计总数、成功转换数和仅摘要数。