@limcpf/everything-is-a-markdown 0.6.6 → 0.6.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ko.md +63 -1
- package/README.md +474 -131
- package/package.json +1 -1
- package/src/build.ts +80 -7
- package/src/config.ts +30 -10
- package/src/markdown.ts +69 -0
- package/src/runtime/app.css +84 -2
- package/src/runtime/app.js +172 -0
- package/src/types.ts +7 -2
package/README.ko.md
CHANGED
|
@@ -3,11 +3,13 @@
|
|
|
3
3
|
언어: [English](README.md) | **한국어**
|
|
4
4
|
|
|
5
5
|
Everything-Is-A-Markdown은 로컬 Markdown 볼트를 정적 웹사이트로 빌드해, 폴더/파일 탐색 구조를 유지한 채 공개할 수 있게 해주는 CLI 도구입니다.
|
|
6
|
+
공개 URL은 `prefix` 기준으로 생성되고, 사이드바 폴더 구조는 실제 파일 경로가 아니라 `category_path` 기준으로 만들어집니다.
|
|
6
7
|
|
|
7
8
|
## 이 앱은 무엇을 하나요
|
|
8
9
|
|
|
9
10
|
- Markdown 볼트에서 정적 문서/블로그 사이트를 생성
|
|
10
11
|
- `publish: true` 문서만 선택적으로 공개
|
|
12
|
+
- 공개 문서는 `prefix`와 `category_path`를 필수로 사용
|
|
11
13
|
- 비공개 노트와 공개 콘텐츠 분리
|
|
12
14
|
|
|
13
15
|
## Obsidian 사용자에게 특히 잘 맞습니다
|
|
@@ -73,6 +75,10 @@ const config = {
|
|
|
73
75
|
vaultDir: "./vault",
|
|
74
76
|
outDir: "./dist",
|
|
75
77
|
staticPaths: ["assets", "public/favicon.ico"],
|
|
78
|
+
pinnedMenu: {
|
|
79
|
+
label: "NOTICE",
|
|
80
|
+
categoryPath: "announcements",
|
|
81
|
+
},
|
|
76
82
|
seo: {
|
|
77
83
|
siteUrl: "https://example.com",
|
|
78
84
|
pathBase: "/blog",
|
|
@@ -97,6 +103,12 @@ export default config;
|
|
|
97
103
|
- 지정한 경로의 파일들을 `dist`에 같은 상대 경로로 복사
|
|
98
104
|
- 예: 볼트 `assets/og.png` -> `dist/assets/og.png`
|
|
99
105
|
|
|
106
|
+
`pinnedMenu`:
|
|
107
|
+
|
|
108
|
+
- `categoryPath`: 문서 frontmatter `category_path` prefix 기준으로 가상 폴더를 구성
|
|
109
|
+
- `sourceDir`: 기존 파일 경로 prefix 기준
|
|
110
|
+
- 둘 다 있으면 `categoryPath`가 우선
|
|
111
|
+
|
|
100
112
|
`seo.pathBase`:
|
|
101
113
|
|
|
102
114
|
- 서브패스 배포(예: `/blog`)를 정식 지원합니다.
|
|
@@ -123,7 +135,9 @@ bun run build -- --vault ./test-vault --out ./dist
|
|
|
123
135
|
이 값이 `true`인 문서만 빌드 결과에 포함됩니다.
|
|
124
136
|
- `prefix: "A-01"`
|
|
125
137
|
문서의 공개 식별자이자 라우트(`/A-01/`) 기준입니다.
|
|
126
|
-
|
|
138
|
+
- `category_path: "engineering/blog/frontend"`
|
|
139
|
+
사이드바 폴더 구조 기준입니다.
|
|
140
|
+
`publish: true`인데 `prefix`나 `category_path`가 없으면 빌드 경고를 출력하고 문서를 제외합니다.
|
|
127
141
|
|
|
128
142
|
선택:
|
|
129
143
|
|
|
@@ -150,6 +164,7 @@ bun run build -- --vault ./test-vault --out ./dist
|
|
|
150
164
|
---
|
|
151
165
|
publish: true
|
|
152
166
|
prefix: "DEV-01"
|
|
167
|
+
category_path: "guides/setup"
|
|
153
168
|
branch: dev
|
|
154
169
|
title: Setup Guide
|
|
155
170
|
date: "2024-09-15"
|
|
@@ -180,6 +195,25 @@ title: Work In Progress
|
|
|
180
195
|
---
|
|
181
196
|
```
|
|
182
197
|
|
|
198
|
+
## 위키링크 지원
|
|
199
|
+
|
|
200
|
+
위키링크는 아래 순서로 해석됩니다.
|
|
201
|
+
|
|
202
|
+
1. 볼트 기준 상대 경로(확장자 `.md` 제외)
|
|
203
|
+
2. `prefix`
|
|
204
|
+
3. `title` 정확히 일치
|
|
205
|
+
4. 파일 stem(유일할 때만)
|
|
206
|
+
|
|
207
|
+
예시:
|
|
208
|
+
|
|
209
|
+
- `[[posts/2024/setup-guide]]`
|
|
210
|
+
- `[[BC-VO-02]]`
|
|
211
|
+
- `[[Building a File-System Blog]]`
|
|
212
|
+
- `[[setup-guide]]`
|
|
213
|
+
- `[[Building a File-System Blog|먼저 읽기]]`
|
|
214
|
+
|
|
215
|
+
대상을 찾지 못하거나 같은 `title`을 가진 게시 문서가 여러 개면 링크로 바꾸지 않고 빌드 warning을 출력합니다.
|
|
216
|
+
|
|
183
217
|
## Mermaid 다이어그램 지원
|
|
184
218
|
|
|
185
219
|
코드 블록의 언어를 `mermaid`로 작성하면 브라우저에서 Mermaid 다이어그램으로 렌더링합니다.
|
|
@@ -197,6 +231,34 @@ Mermaid fence는 일반 코드 블록 UI와 분리된 전용 컨테이너(`.merm
|
|
|
197
231
|
본문 이미지도 동일한 폭 정책을 적용해 글 읽기 흐름을 유지합니다.
|
|
198
232
|
설정에서 Mermaid를 비활성화하거나 CDN 로드가 실패하면, 같은 컨테이너 안에서 소스 코드 텍스트를 유지하고 하단에 경고 메시지를 표시합니다.
|
|
199
233
|
|
|
234
|
+
## 본문 이미지 레이아웃
|
|
235
|
+
|
|
236
|
+
본문 이미지는 이제 방향에 따라 표시 폭을 다르게 조정합니다.
|
|
237
|
+
|
|
238
|
+
- 가로 이미지는 기본 읽기 폭을 유지합니다.
|
|
239
|
+
- 세로 이미지는 더 좁은 최대 폭을 적용해 본문을 과하게 압도하지 않게 합니다.
|
|
240
|
+
- 정사각형에 가까운 이미지는 중간 폭을 사용합니다.
|
|
241
|
+
|
|
242
|
+
`markdown.images: "keep"`로 로컬 Markdown 이미지를 허용하면, 이미지만 있는 문단은 자동으로 `figure.content-image` 래퍼로 승격됩니다.
|
|
243
|
+
고정 비율이나 자르기 방식을 직접 지정하고 싶을 때는 raw HTML figure 유틸리티를 사용할 수 있습니다.
|
|
244
|
+
|
|
245
|
+
예시:
|
|
246
|
+
|
|
247
|
+
```html
|
|
248
|
+
<figure class="image-frame ratio-4x3 fit-cover">
|
|
249
|
+
<img src="/assets/hero.jpg" alt="Cover-framed image" />
|
|
250
|
+
</figure>
|
|
251
|
+
|
|
252
|
+
<figure class="image-frame ratio-4x5 fit-contain">
|
|
253
|
+
<img src="/assets/poster.jpg" alt="Contain-framed image" />
|
|
254
|
+
</figure>
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
지원 유틸리티:
|
|
258
|
+
|
|
259
|
+
- 비율: `ratio-16x9`, `ratio-4x3`, `ratio-3x2`, `ratio-4x5`
|
|
260
|
+
- 맞춤 방식: `fit-cover`, `fit-contain`
|
|
261
|
+
|
|
200
262
|
`blog.config.ts`에서 설정:
|
|
201
263
|
|
|
202
264
|
```ts
|