https://github.com/dataofmen/006_book_plugin
Korean Book Search Plugin for Obsidian - Integrates with Korean National Library API to search books and generate structured notes
https://github.com/dataofmen/006_book_plugin
Last synced: 5 months ago
JSON representation
Korean Book Search Plugin for Obsidian - Integrates with Korean National Library API to search books and generate structured notes
- Host: GitHub
- URL: https://github.com/dataofmen/006_book_plugin
- Owner: dataofmen
- Created: 2025-09-12T23:46:48.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-09-13T00:05:24.000Z (9 months ago)
- Last Synced: 2025-09-13T01:28:06.345Z (9 months ago)
- Language: TypeScript
- Size: 81.1 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Roadmap: ROADMAP.md
Awesome Lists containing this project
README
# Korean Book Search Plugin for Obsidian
국립중앙도서관 Open API를 활용하여 도서 정보를 검색하고 Obsidian 노트로 생성하는 플러그인입니다.
## 주요 기능
- 📚 **도서 검색**: 키워드로 도서 검색
- 🔍 **ISBN 검색**: ISBN으로 정확한 도서 정보 검색
- 📝 **자동 노트 생성**: 검색된 도서 정보로 자동으로 노트 생성
- 🎨 **커스터마이징**: 노트 템플릿 및 파일명 형식 사용자 정의
- 📁 **폴더 관리**: 도서 노트를 원하는 폴더에 자동 정리
## 설치 방법
### 수동 설치
1. 이 저장소를 클론하거나 다운로드합니다
2. 프로젝트 폴더에서 의존성을 설치합니다:
```bash
npm install
```
3. 플러그인을 빌드합니다:
```bash
npm run build
```
4. `main.js`, `manifest.json`, `styles.css` 파일을 Obsidian 보관소의 `.obsidian/plugins/kr-book-search/` 폴더에 복사합니다
5. Obsidian을 재시작하고 설정에서 플러그인을 활성화합니다
## 사용 방법
### API 키 발급
1. [국립중앙도서관 Open API](https://www.nl.go.kr/NL/contents/N31101030700.do) 페이지 방문
2. 회원가입 및 로그인
3. Open API 신청
4. 발급받은 인증키를 플러그인 설정에 입력
### 도서 검색
1. 명령 팔레트(`Ctrl/Cmd + P`)를 열고 "도서 검색" 실행
2. 검색어 입력 (제목, 저자, 출판사 등)
3. 검색 결과에서 원하는 도서 선택
4. "노트 생성" 버튼 클릭
### ISBN 검색
1. 명령 팔레트에서 "ISBN으로 도서 검색" 실행
2. ISBN 입력 (하이픈 포함/미포함 모두 가능)
3. 검색된 도서로 노트 생성
## 설정
### 기본 설정
- **API 키**: 국립중앙도서관 Open API 인증키
- **노트 저장 폴더**: 도서 노트가 저장될 폴더 경로
- **폴더 자동 생성**: 존재하지 않는 폴더 자동 생성 여부
- **노트 생성 후 자동 열기**: 노트 생성 후 자동으로 열기
- **검색 결과 표시 개수**: 한 번에 표시할 검색 결과 수
### 템플릿 설정
#### 파일명 템플릿
- 기본값: `{{title}} - {{author}}`
- 사용 가능한 변수: `{{title}}`, `{{author}}`, `{{publisher}}`, `{{isbn}}`
#### 노트 템플릿
노트 생성 시 사용되는 템플릿을 자유롭게 커스터마이징할 수 있습니다.
**사용 가능한 변수:**
- `{{title}}` - 도서 제목
- `{{author}}` - 저자
- `{{publisher}}` - 출판사
- `{{publishDate}}` - 출판일
- `{{isbn}}` - ISBN
- `{{pages}}` - 페이지 수
- `{{price}}` - 가격
- `{{subject}}` - 주제/분류
- `{{kdc}}` - 한국십진분류
- `{{ddc}}` - 듀이십진분류
- `{{callNumber}}` - 청구기호
- `{{series}}` - 시리즈명
- `{{volume}}` - 권차
- `{{summary}}` - 책 소개
- `{{tableOfContents}}` - 목차
- `{{date}}` - 현재 날짜
**조건문 사용:**
```handlebars
{{#if series}}
시리즈: {{series}}
{{/if}}
{{#if ebook}}
전자책
{{else}}
종이책
{{/if}}
```
## 개발
### 개발 환경 설정
```bash
# 의존성 설치
npm install
# 개발 모드 실행 (자동 재빌드)
npm run dev
# 프로덕션 빌드
npm run build
```
### 프로젝트 구조
```
src/
├── main.ts # 플러그인 진입점
├── settings.ts # 설정 정의
├── api/
│ ├── nlk-api.ts # 국립중앙도서관 API 클라이언트
│ └── types.ts # TypeScript 타입 정의
├── ui/
│ ├── search-modal.ts # 검색 모달
│ └── settings-tab.ts # 설정 탭
└── utils/
└── template.ts # 템플릿 처리 유틸리티
```
## 문제 해결
### API 키가 유효하지 않다고 나올 때
- API 키가 정확히 입력되었는지 확인
- 국립중앙도서관 사이트에서 API 키 상태 확인
- API 사용 제한에 도달했는지 확인
### 검색 결과가 나오지 않을 때
- 인터넷 연결 확인
- 검색어를 다르게 입력해보기
- API 서버 상태 확인
### 노트가 생성되지 않을 때
- 폴더 경로가 올바른지 확인
- 파일명에 사용할 수 없는 문자가 있는지 확인
- Obsidian 파일 권한 확인
## 라이센스
MIT License
## 기여
이슈 제보 및 풀 리퀘스트를 환영합니다!
## 감사의 말
- [국립중앙도서관](https://www.nl.go.kr)의 Open API 제공
- Obsidian 커뮤니티
## 변경 이력
### v1.0.0
- 최초 릴리스
- 키워드 검색 기능
- ISBN 검색 기능
- 커스터마이징 가능한 노트 템플릿
- 자동 폴더 생성 기능