- ads_metadata_search: 移除 ads 库依赖,改用 requests 直连 ADS REST API; 移除硬编码 API Key,改为 .env 文件/环境变量加载 - 新增 ads_html_to_obsidian skill:将下载的 HTML 文献批量转换为 Obsidian Markdown 笔记(BS4 提取正文 + Pandoc 转换 + 清洗后处理) - 两个 SKILL.md 中的 Windows 绝对路径改为相对路径
3.4 KiB
3.4 KiB
| 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 格式的笔记文件。它会:
- 从 HTML 中提取论文正文(使用 BeautifulSoup)
- 通过 Pandoc 将 HTML 转为干净的 Markdown
- 清理转换残留标记(CSS class、div、脚注等)
- 生成带有 YAML frontmatter 的 Obsidian 笔记文件
- 对于无法获取全文的文献,自动回退为仅保存摘要
依赖
- Python 虚拟环境中需安装
beautifulsoup4(uv pip install beautifulsoup4) - 系统需安装
pandoc(sudo 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 文件,包含每篇论文的bibcode、title、author、year、abstract、pub、doi等字段download_dir:由ads_literature_downloader技能创建的下载目录,内含HTML/和PDF/子目录output_dir:Obsidian 笔记库的目标目录(如 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 技能配合使用:
- 搜索文献:使用
ads_metadata_search搜索并保存元数据到results.json - 下载文献:使用
ads_literature_downloader下载 PDF/HTML 到download_dir/ - 转换笔记:使用本技能将下载的文献转为 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]:无法获取全文,仅保存摘要
结束后统计总数、成功转换数和仅摘要数。