An open API service indexing awesome lists of open source software.

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

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 검색 기능
- 커스터마이징 가능한 노트 템플릿
- 자동 폴더 생성 기능