Book Meta
pendingby Han-GR
Batch parse EPUB metadata, save covers, and generate notes.
Book Meta
English
A plugin for Obsidian to batch parse EPUB metadata, save covers, and generate notes.
Features
- Scan
.epubfiles in a specified folder and parse metadata (title, authors, publisher, ISBN, languages, subjects, TOC, etc.) - Save cover images into
covers/subfolder - Archive full metadata as
datas/<filename>.json - Generate notes based on a template into an output folder
- Support Chinese/English UI switch in settings
- File naming follows source filename
Installation
- Community Market (pending): Obsidian → Settings → Community plugins → Browse → search
Book Meta - Manual: Copy files to
<vault>/.obsidian/plugins/book-meta/:manifest.jsonmain.jsstyles.css(optional)
Settings
Input Folder: scan.epubfiles insideMetadata Folder: storedatas/*.jsonandcovers/*Template File: markdown template used to generate notesOutput Folder: where notes are savedLanguage: Chinese / English
Template placeholders (namespace bookmeta.). All fields render to strings; list fields are joined with commas.
-
Basic metadata
{{bookmeta.title}}: book title (from EPUB metadata){{bookmeta.author}}: primary author (usually first author){{bookmeta.authors}}: authors list, comma-separated (e.g.,Author A,Author B){{bookmeta.publisher}}: publisher{{bookmeta.isbn}}: ISBN if present, otherwise empty string{{bookmeta.description}}: description/abstract{{bookmeta.subjects}}: subjects, comma-separated (e.g.,Literature,Sci-fi){{bookmeta.languages}}: languages, comma-separated (e.g.,zh,en){{bookmeta.contributors}}: contributors (translator, editor, etc.), comma-separated{{bookmeta.rights}}: rights{{bookmeta.sources}}: sources, comma-separated{{bookmeta.relations}}: related resources, comma-separated{{bookmeta.coverage}}: coverage (spatial/temporal scope){{bookmeta.type}}: type (if provided){{bookmeta.format}}: format (if provided){{bookmeta.dates}}: dates, comma-separated; each item asevent:valueorvalue(e.g.,publication:2020-01-01){{bookmeta.identifiers}}: identifiers, comma-separated; each item asscheme:value(e.g.,ISBN:978xxxx){{bookmeta.coverPath}}: saved cover path (relative to vault)
-
JSON serialization
{{bookmeta.identifiers_json}}: identifiers array JSON (withscheme,value){{bookmeta.meta_json}}:<meta>entries JSON (key-value and extended properties){{bookmeta.manifest_json}}: manifest resources JSON (id,href,media-type){{bookmeta.spine_json}}: spine JSON (reading order items){{bookmeta.tocNav_json}}: TOC fromnav.xhtml(modern EPUB){{bookmeta.tocNcx_json}}: TOC fromtoc.ncx(legacy/compat)
Generated structure
- Cover:
<metadataFolder>/covers/<filename>.<png|jpg> - Metadata JSON:
<metadataFolder>/datas/<filename>.json - Note:
<outputFolder>/<filename>.md
Usage
- Configure folders and template in settings
- Run command
Generate metadata - Check notes in output folder and JSON/covers in metadata folder
Development
- Build:
npm run build - Type check:
npm run typecheck - Format:
npm run format
Donation
中文说明
一个用于在 Obsidian 中批量解析 EPUB 元数据、生成封面与笔记的插件。
功能
- 扫描指定文件夹中的
.epub文件并解析元数据(标题、作者、出版社、ISBN、语言、主题、目录等) - 保存封面图片到
covers/子目录 - 将完整元数据归档为
datas/<文件名>.json - 根据模板生成笔记到指定输出文件夹
- 支持中英文界面切换(设置中选择)
- 生成文件命名与源文件名保持一致
安装
- 市场安装(待收录):在 Obsidian → 设置 → 第三方插件 → 浏览,搜索
Book Meta。 - 手动安装:将以下文件复制到
<你的库>/.obsidian/plugins/book-meta/:manifest.jsonmain.jsstyles.css(如有)
设置项
读取文件夹:扫描其中的.epub元数据保存文件夹:保存datas/*.json与covers/*模板文件路径:用于生成笔记的模板(.md)模板输出文件夹:笔记保存位置语言:中文 / English
模板占位符(命名空间前缀 bookmeta.)。所有字段最终渲染为字符串;列表类字段以逗号连接。
-
基础元数据
{{bookmeta.title}}:书名(来自 EPUB 元数据){{bookmeta.author}}:主作者(通常为第一个作者){{bookmeta.authors}}:作者列表,使用逗号分隔(如作者A,作者B){{bookmeta.publisher}}:出版社{{bookmeta.isbn}}:ISBN(如存在,否则为空字符串){{bookmeta.description}}:内容简介/摘要{{bookmeta.subjects}}:主题标签,使用逗号分隔(如文学,科幻){{bookmeta.languages}}:语言列表,使用逗号分隔(如zh,en){{bookmeta.contributors}}:贡献者(译者、编辑等),逗号分隔{{bookmeta.rights}}:版权信息{{bookmeta.sources}}:来源信息,逗号分隔{{bookmeta.relations}}:相关资源,逗号分隔{{bookmeta.coverage}}:覆盖范围(时空/主题范围){{bookmeta.type}}:类型(若提供){{bookmeta.format}}:格式说明(若提供){{bookmeta.dates}}:日期列表,逗号分隔;每项形如event:value或仅value(例如publication:2020-01-01){{bookmeta.identifiers}}:标识符列表,逗号分隔;每项形如scheme:value(例如ISBN:978xxxx){{bookmeta.coverPath}}:封面图片保存路径(相对于 Vault)
-
JSON 序列化
{{bookmeta.identifiers_json}}:标识符数组的 JSON(包含scheme、value){{bookmeta.meta_json}}:<meta>节点数组的 JSON(键值对、属性扩展信息){{bookmeta.manifest_json}}:清单资源的 JSON(id、href、media-type){{bookmeta.spine_json}}:阅读顺序的 JSON(正文项顺序){{bookmeta.tocNav_json}}:从nav.xhtml提取的目录 JSON(现代 EPUB 目录){{bookmeta.tocNcx_json}}:从toc.ncx提取的目录 JSON(旧版/兼容目录)
生成文件结构
- 封面:
<metadataFolder>/covers/<文件名>.<png|jpg> - 元数据 JSON:
<metadataFolder>/datas/<文件名>.json - 笔记:
<outputFolder>/<文件名>.md
使用步骤
- 在设置中配置各文件夹与模板路径
- 在命令面板运行
Generate metadata - 查看输出文件夹中的笔记与元数据文件夹中的 JSON/封面
开发与构建
- 构建:
npm run build - 类型检查:
npm run typecheck - 代码格式化:
npm run format
捐赠
感谢支持与使用!
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.