Skip to content

Commit 76ad4c3

Browse files
committed
Build 스크립트 추가
1 parent bc328d5 commit 76ad4c3

310 files changed

Lines changed: 3808 additions & 157 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
public/
2+
__pycache__/
3+
*.pyc

.obsidian/app.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{}

.obsidian/appearance.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{}

.obsidian/core-plugins.json

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
{
2+
"file-explorer": true,
3+
"global-search": true,
4+
"switcher": true,
5+
"graph": true,
6+
"backlink": true,
7+
"canvas": true,
8+
"outgoing-link": true,
9+
"tag-pane": true,
10+
"footnotes": false,
11+
"properties": true,
12+
"page-preview": true,
13+
"daily-notes": true,
14+
"templates": true,
15+
"note-composer": true,
16+
"command-palette": true,
17+
"slash-command": false,
18+
"editor-status": true,
19+
"bookmarks": true,
20+
"markdown-importer": false,
21+
"zk-prefixer": false,
22+
"random-note": false,
23+
"outline": true,
24+
"word-count": true,
25+
"slides": false,
26+
"audio-recorder": false,
27+
"workspaces": false,
28+
"file-recovery": true,
29+
"publish": false,
30+
"sync": true,
31+
"bases": true,
32+
"webviewer": false
33+
}

.obsidian/graph.json

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
{
2+
"collapse-filter": true,
3+
"search": "",
4+
"showTags": false,
5+
"showAttachments": false,
6+
"hideUnresolved": false,
7+
"showOrphans": true,
8+
"collapse-color-groups": true,
9+
"colorGroups": [],
10+
"collapse-display": true,
11+
"showArrow": false,
12+
"textFadeMultiplier": 0,
13+
"nodeSizeMultiplier": 1,
14+
"lineSizeMultiplier": 1,
15+
"collapse-forces": true,
16+
"centerStrength": 0.518713248970312,
17+
"repelStrength": 10,
18+
"linkStrength": 1,
19+
"linkDistance": 250,
20+
"scale": 1.5,
21+
"close": false
22+
}

.obsidian/workspace.json

Lines changed: 219 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,219 @@
1+
{
2+
"main": {
3+
"id": "e5c0b991b531d7c1",
4+
"type": "split",
5+
"children": [
6+
{
7+
"id": "8dfac6af504ee86d",
8+
"type": "tabs",
9+
"children": [
10+
{
11+
"id": "2adff69548cf1dc0",
12+
"type": "leaf",
13+
"state": {
14+
"type": "empty",
15+
"state": {},
16+
"icon": "lucide-file",
17+
"title": "New tab"
18+
}
19+
}
20+
]
21+
}
22+
],
23+
"direction": "vertical"
24+
},
25+
"left": {
26+
"id": "d5539b82af2063d4",
27+
"type": "split",
28+
"children": [
29+
{
30+
"id": "892030f47ada175e",
31+
"type": "tabs",
32+
"children": [
33+
{
34+
"id": "730a63a34b080c52",
35+
"type": "leaf",
36+
"state": {
37+
"type": "file-explorer",
38+
"state": {
39+
"sortOrder": "alphabetical",
40+
"autoReveal": false
41+
},
42+
"icon": "lucide-folder-closed",
43+
"title": "Files"
44+
}
45+
},
46+
{
47+
"id": "0156d94e6deed212",
48+
"type": "leaf",
49+
"state": {
50+
"type": "search",
51+
"state": {
52+
"query": "",
53+
"matchingCase": false,
54+
"explainSearch": false,
55+
"collapseAll": false,
56+
"extraContext": false,
57+
"sortOrder": "alphabetical"
58+
},
59+
"icon": "lucide-search",
60+
"title": "Search"
61+
}
62+
},
63+
{
64+
"id": "2c05b7bafcaff594",
65+
"type": "leaf",
66+
"state": {
67+
"type": "bookmarks",
68+
"state": {},
69+
"icon": "lucide-bookmark",
70+
"title": "Bookmarks"
71+
}
72+
}
73+
]
74+
}
75+
],
76+
"direction": "horizontal",
77+
"width": 300
78+
},
79+
"right": {
80+
"id": "5e435e593ecdc6c3",
81+
"type": "split",
82+
"children": [
83+
{
84+
"id": "e4d1ed4dc5d93ecf",
85+
"type": "tabs",
86+
"children": [
87+
{
88+
"id": "4fa5b9cfd24bfbd1",
89+
"type": "leaf",
90+
"state": {
91+
"type": "backlink",
92+
"state": {
93+
"collapseAll": false,
94+
"extraContext": false,
95+
"sortOrder": "alphabetical",
96+
"showSearch": false,
97+
"searchQuery": "",
98+
"backlinkCollapsed": false,
99+
"unlinkedCollapsed": true
100+
},
101+
"icon": "links-coming-in",
102+
"title": "Backlinks"
103+
}
104+
},
105+
{
106+
"id": "ba78f2b39282f7ea",
107+
"type": "leaf",
108+
"state": {
109+
"type": "outgoing-link",
110+
"state": {
111+
"linksCollapsed": false,
112+
"unlinkedCollapsed": true
113+
},
114+
"icon": "links-going-out",
115+
"title": "Outgoing links"
116+
}
117+
},
118+
{
119+
"id": "b4dd70ee178e89f3",
120+
"type": "leaf",
121+
"state": {
122+
"type": "tag",
123+
"state": {
124+
"sortOrder": "frequency",
125+
"useHierarchy": true,
126+
"showSearch": false,
127+
"searchQuery": ""
128+
},
129+
"icon": "lucide-tags",
130+
"title": "Tags"
131+
}
132+
},
133+
{
134+
"id": "505b8e14ae7410ce",
135+
"type": "leaf",
136+
"state": {
137+
"type": "all-properties",
138+
"state": {
139+
"sortOrder": "frequency",
140+
"showSearch": false,
141+
"searchQuery": ""
142+
},
143+
"icon": "lucide-archive",
144+
"title": "All properties"
145+
}
146+
},
147+
{
148+
"id": "fbfff826ef521754",
149+
"type": "leaf",
150+
"state": {
151+
"type": "outline",
152+
"state": {
153+
"file": "cloud-computing.md",
154+
"followCursor": false,
155+
"showSearch": false,
156+
"searchQuery": ""
157+
},
158+
"icon": "lucide-list",
159+
"title": "Outline of cloud-computing"
160+
}
161+
}
162+
]
163+
}
164+
],
165+
"direction": "horizontal",
166+
"width": 300,
167+
"collapsed": true
168+
},
169+
"left-ribbon": {
170+
"hiddenItems": {
171+
"switcher:Open quick switcher": false,
172+
"graph:Open graph view": false,
173+
"canvas:Create new canvas": false,
174+
"daily-notes:Open today's daily note": false,
175+
"templates:Insert template": false,
176+
"command-palette:Open command palette": false,
177+
"bases:Create new base": false
178+
}
179+
},
180+
"active": "730a63a34b080c52",
181+
"lastOpenFiles": [
182+
"README.md.tmp.44349.1772225860658",
183+
"CLAUDE.md.tmp.43679.1772225769011",
184+
"content/xml-injection.md",
185+
"content/wise-saying.md",
186+
"content/windows-command.md",
187+
"content/wiki.md",
188+
"content/wget.md",
189+
"content/web-shell.md",
190+
"content/webpack.md",
191+
"content/web-2.0.md",
192+
"content/volley.md",
193+
"content/virtualization.md",
194+
"content/vi.md",
195+
"content/vert-x.md",
196+
"content/versioning.md",
197+
"content/vcs.md",
198+
"content/uuid.md",
199+
"content/utility-service.md",
200+
"content/uml.md",
201+
"content/ui-test.md",
202+
"content/ui-framework.md",
203+
"content/ui-design.md",
204+
"content/tshark.md",
205+
"content/tomcat.md",
206+
"content/toby-spring.md",
207+
"content/test.md",
208+
"content/test-framework.md",
209+
"content",
210+
"CLAUDE.md.tmp.34340.1772225399793",
211+
"README.md.tmp.34340.1772225380135",
212+
"dist/style.css",
213+
"dist/index.html",
214+
"dist/xml-injection.html",
215+
"dist/wise-saying.html",
216+
"dist/windows-command.html",
217+
"dist/wiki.html"
218+
]
219+
}

CLAUDE.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# CLAUDE.md
2+
3+
## 프로젝트 개요
4+
5+
Obsidian vault 기반 개발 노트 모음. `obsidian-graph-site/`의 빌드 도구로 정적 웹사이트를 생성한다.
6+
7+
## 핵심 구조
8+
9+
- `content/*.md` — 270개 마크다운 노트 (플랫 구조)
10+
- `site.json` — 사이트 설정 (title, subtitle, lang, output)
11+
- `obsidian-graph-site/` — 빌드 도구 (추후 별도 repo로 분리 예정)
12+
- `build.py` — 진입점. `Path(__file__).parent` 기준으로 templates/static을 찾고, vault 경로는 `--source`로 받음
13+
- `templates/page.html`, `templates/index.html` — HTML 템플릿. `{title}`, `{body}` 등 플레이스홀더 사용
14+
- `static/style.css` — 공유 스타일시트
15+
- `public/` — 빌드 결과물 (gitignored)
16+
17+
## 빌드 & 테스트
18+
19+
```bash
20+
# 빌드
21+
python3 obsidian-graph-site/build.py
22+
23+
# 로컬 미리보기
24+
python3 -m http.server 8000 -d public
25+
26+
# 다른 vault에 대해 실행
27+
python3 obsidian-graph-site/build.py --source /path/to/vault --output dist
28+
```
29+
30+
## 노트 컨벤션
31+
32+
- 파일명이 페이지 제목 (`spring-boot` → "spring boot"). H1은 섹션 헤딩으로만 사용
33+
- `[[wikilink]]``## Related` 섹션에만 위치. 현재 약 2,025개
34+
- 빌드 시 `#``##`, `##``###`으로 한 단계씩 하향 (템플릿이 페이지 제목을 H1으로 렌더링)
35+
- Related 섹션은 본문에서 분리되어 사이드바에 렌더링됨
36+
- Backlinks는 자동 생성 (해당 페이지를 참조하는 다른 페이지 목록)
37+
38+
## 빌드 도구 분리 전략
39+
40+
`obsidian-graph-site/` 디렉토리를 그대로 별도 repo로 옮기면 됨. build.py가 vault 경로를 CLI 인자로 받으므로 물리적 위치와 무관하게 동작.
41+
42+
## 주의사항
43+
44+
- `public/`은 gitignored. 커밋하지 않는다
45+
- `obsidian-graph-site/` 수정 시, 이 디렉토리가 별도 repo로 분리될 수 있음을 고려. vault에 종속적인 로직은 피한다
46+
- markdown 라이브러리가 없으면 내장 fallback 변환기를 사용하지만 품질이 떨어짐. `pip install markdown` 권장

0 commit comments

Comments
 (0)