개요
리포지토리 중심의 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