이 노트에 대하여
리포지토리별 docs 폴더를 자동 발견하고 통합 검색하는 Denote Silo 동적 관리 시스템을 설명한다. 지식 사일로를 고정된 수동 목록 대신 살아 있는 구조로 운영하는 노트다.
개요
리포지토리 중심의 Denote Silo 자동 관리 시스템입니다.
핵심 기능
- 자동 발견:
~/repos/gh/*/docs디렉토리 자동 인식 - 심볼릭 링크 지원: 실제 경로로 resolve
- 동적 업데이트: 새 프로젝트 추가 시 자동 인식
- 통합 검색: 모든 Silo에서 파일 검색
파일 구조
~/sync/emacs/doomemacs-config/
├── +denote-silo-dynamic.el # 핵심 구현
├── config.el # 로드 설정
└── +keybindings.el # 키바인딩설정된 Silo 목록
기본 Silo (고정)
~/claude-memory: AI 메모리 시스템~/org: 지식베이스~/org/llmlog: LLM 대화 기록
동적 Silo (자동 발견)
~/repos/gh/GLG-Mono/docs: 폰트 프로젝트~/repos/gh/hawaii-trip-2025/docs: 여행 계획
사용 방법
키바인딩 (SPC n 접두어)
| 키 | 함수 | 설명 |
|---|---|---|
n | consult-notes | 전체 노트 검색 |
G | consult-notes-search | 전체 노트 grep 검색 |
s | denote-silo-open-or-create | Silo 선택 후 파일 열기 |
S | denote-silo-select-command | Silo 선택 후 명령 실행 |
M-l | denote-silo-list-all | 모든 Silo 목록 표시 |
M-r | denote-silo-refresh | Silo 목록 새로고침 |
M-F | denote-silo-find-file-all | 모든 Silo에서 파일 찾기 |
M-c | denote-silo-count-files | 전체 파일 개수 확인 |
워크플로우 예시
1. 전체 Silo 확인
M-x denote-silo-list-all출력 예시:
=== Registered Denote Silos ===
Total: 5 directories
• claude-memory
Path: ~/claude-memory/
Files: 25
• org
Path: ~/org/
Files: 120
• llmlog
Path: ~/org/llmlog/
Files: 15
• docs (GLG-Mono)
Path: ~/repos/gh/GLG-Mono/docs/
Files: 7
• docs (hawaii-trip-2025)
Path: ~/repos/gh/hawaii-trip-2025/docs/
Files: 02. 특정 프로젝트 문서 찾기
SPC n s ; denote-silo-open-or-create
;; → "GLG-Mono/docs" 선택
;; → 파일 검색 또는 생성3. 전체 Silo에서 파일 검색
SPC n F ; denote-silo-find-file-all
;; → 모든 Silo의 파일 목록 표시4. 새 프로젝트 추가 후 갱신
# 새 프로젝트 생성
mkdir -p ~/repos/gh/new-project/docs
# Emacs에서 갱신
SPC n R ; denote-silo-refresh기술적 세부사항
자동 발견 알고리즘
(defun denote-silo-discover-repo-docs ()
"~/repos/gh/*/docs 자동 발견."
(let ((valid-silos '()))
(dolist (repos-root denote-silo-repos-roots)
(dolist (repo-dir (directory-files repos-root t "^[^.]"))
(let* ((real-repo-dir (file-truename repo-dir)) ; 심볼릭 링크 resolve
(docs-path (expand-file-name "docs" real-repo-dir)))
(when (file-directory-p docs-path)
(push docs-path valid-silos)))))
(nreverse valid-silos)))커스터마이징
다른 리포지토리 루트 추가
;; config.el에 추가
(after! denote-silo
(setq denote-silo-repos-roots
'("~/repos/gh"
"~/repos/work" ; 회사 프로젝트
"~/repos/3rd"))) ; 외부 오픈소스기본 Silo 수정
(setq denote-silo-base-directories
'("~/claude-memory"
"~/org"
"~/documents/notes"))장점
- 자동화: 수동 등록 불필요
- 확장성: 새 프로젝트 자동 인식
- 통합성: 기존
denote-silo+consult-notes완벽 통합 - 유연성: 심볼릭 링크 지원으로 실제 경로 위치 자유
문제 해결
Silo가 인식되지 않을 때
-
디렉토리 구조 확인:
ls -la ~/repos/gh/*/docs -
Silo 목록 수동 갱신:
M-x denote-silo-refresh -
현재 등록된 Silo 확인:
M-x denote-silo-list-all
심볼릭 링크 문제
심볼릭 링크는 자동으로 실제 경로로 변환됩니다:
# 심볼릭 링크 생성
ln -s /path/to/real/project ~/repos/gh/project-link
# Emacs는 실제 경로를 사용
# /path/to/real/project/docs → 자동 인식향후 계획
-
denote-silo-grep-all함수 개선 (ripgrep 통합) - Silo 통계 대시보드 추가
- 프로젝트별 태그 자동 추천
- Git 연동 (최근 커밋 정보 표시)
참고 링크
관련 문서
+denote-silo-dynamic.el:1: 핵심 구현config.el:63: 로드 설정+keybindings.el:88: 키바인딩 정의
Comments