Skip to content

Alt2Obsidian v1.1.0

Choose a tag to compare

@BiQnT BiQnT released this 04 May 03:52
· 211 commits to main since this release

주요 변경 사항

페이지-anchored 노트 구조 (breaking-style change, 새 import만 적용)

강의 1개당 1 .md 파일에 PDF 슬라이드와 1:1 대응하는 ## 📚 슬라이드 N 섹션이 자동 생성됩니다. 각 섹션은 Gemini의 슬라이드 이미지+음성 전사 입력으로 만들어지고, <!-- alt2obs:slide:N hash:<8-hex> start --> ... <!-- end --> managed marker로 감싸집니다. 마커 바깥의 > [!note] 내 메모 콜아웃은 다음 import에서도 보존됩니다 (해시 기반 reorder/insert/delete 감지).

1.0.x → 1.1.0 마이그레이션: 기존에 import한 노트는 그대로 유지됩니다. 새로 import하는 강의부터 새 구조 적용.

Synced Viewer (신규)

명령 팔레트 → "Open Synced Viewer (PDF + lecture .md)" — PDF (좌, canvas 렌더)와 강의 노트 (우, 렌더)가 양방향 동기 스크롤됩니다.

  • 슬라이드 번호 라벨 (현재 보는 슬라이드 강조)
  • 페이지 nav 버튼 (◀/▶), 줌 (− / +)
  • wikilink 클릭 → concept note로 이동 (Cmd-클릭 = 새 탭)
  • "📝 노트 편집" 버튼 → split-pane editor 열기, 편집하면 viewer가 자동 refresh
  • "Obsidian native PDF" 우회 버튼 (텍스트 selection / find-in-PDF 필요할 때)

다중 LLM 옵션 + 무료 RPM 우회

  • Gemma 3 27B/12B/4B 지원 — 모델명을 gemma-3-27b-it로 바꾸면 끝. 코드 변경 없이 무료 RPM ~30 (Gemini Flash의 ~5보다 6배). 멀티모달 지원.
  • Multi-key rotation — API 키 필드에 key1, key2, key3 콤마 구분 입력 → 429 시 자동 round-robin.
  • Ollama 로컬 — provider: ollama, llama3.2-vision:11b (멀티모달) 또는 gemma3:4b (텍스트). 무제한·무료·offline.
  • 자세한 비교: docs/gemini-rpm-options.md

개념 추출 품질 강화

  • 한국어 강의 → 한국어 concept 노트 (영어 병기 패턴 한국어 (English))
  • 정의 3-5문장, 강의 맥락 2-3문장, 구체 예시, 시험 함정 표시
  • relatedConcepts 자동 cross-link (concept 2개 이상 시 필수)

Phase 2 Stage A — Claude Code Skill (선택)

Claude Code Max 사용자용. Gemini quota를 전혀 쓰지 않고 import 가능. 자세히는 scripts/phase2/.

/alt2obs <alt-url> subject=<…> title=<…> period=midterm

설치

수동 설치: 아래 3개 파일을 vault의 .obsidian/plugins/alt2obsidian/ 폴더에 복사 후 Obsidian reload.

  • main.js
  • manifest.json
  • pdf.worker.min.mjs

(1.1.0부터 styles.css는 별도 파일 없이 JS에서 inline 주입됩니다.)

알려진 한계

  • Synced Viewer PDF 페인 텍스트 selection 불가 — pdfjs-dist@4.10.38의 internal version skew로 PDFViewer 사용 불가, canvas 렌더로 피벗 (A4). 텍스트 selection 필요 시 toolbar의 "Obsidian native PDF" 버튼.
  • Phase 2 Skill 해시는 plugin과 다름 — Skill 출력을 plugin으로 재import하면 모든 섹션이 slideDrift로 표시됨 (메모는 보존, 한 번 confirm 모달). Stage B에서 hash compat 예정.

전체 변경 목록

PR #5: #5

🤖 Generated with Claude Code