@bytechain.cn/colamd-themes 0.3.1 → 0.5.0
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/.claude/skills/colamd-themes-preview.skill.md +333 -0
- package/.claude/skills/colamd-themes.skill.md +10 -0
- package/.dsh/skills/colamd-themes/SKILL.md +14 -0
- package/.github/supported-topics.yml +17 -0
- package/.hermes/skills/tools/colamd-themes/SKILL.md +14 -0
- package/.openclaw/skills/colamd-themes/SKILL.md +1 -146
- package/.opencode/skills/colamd-themes/SKILL.md +17 -0
- package/.trae/rules/colamd-themes.md +0 -145
- package/CHANGELOG.md +318 -240
- package/DSH_SUPPORT_SUMMARY.md +87 -0
- package/README.md +414 -384
- package/README_CN.md +412 -384
- package/RELEASENOTE.md +541 -365
- package/bytechain.cn-colamd-themes-0.5.0.tgz +0 -0
- package/dist/cli.js +272 -32
- package/dist/cli.js.map +1 -1
- package/dist/color-utils.d.ts +1 -0
- package/dist/color-utils.js +25 -6
- package/dist/color-utils.js.map +1 -1
- package/dist/extractors/pdf-extractor.js +6 -1
- package/dist/extractors/pdf-extractor.js.map +1 -1
- package/dist/extractors/url-extractor.d.ts +0 -4
- package/dist/extractors/url-extractor.js +13 -126
- package/dist/extractors/url-extractor.js.map +1 -1
- package/dist/generator.d.ts +1 -1
- package/dist/generator.js +32 -11
- package/dist/generator.js.map +1 -1
- package/dist/models.d.ts +5 -4
- package/dist/models.js +2 -3
- package/dist/models.js.map +1 -1
- package/dist/renderer.d.ts +4 -2
- package/dist/renderer.js +68 -25
- package/dist/renderer.js.map +1 -1
- package/dist/templates/template.css +220 -498
- package/dist/templates/theme-paradigm.md +530 -658
- package/dist/templates/theme-template.hbs +256 -370
- package/dist/theme-store.js +19 -3
- package/dist/theme-store.js.map +1 -1
- package/dist/utils/document-paradigm.d.ts +12 -0
- package/dist/utils/document-paradigm.js +109 -0
- package/dist/utils/document-paradigm.js.map +1 -0
- package/dist/validators.d.ts +4 -1
- package/dist/validators.js +115 -1
- package/dist/validators.js.map +1 -1
- package/mcp-server/dist/index.d.ts +13 -0
- package/mcp-server/dist/index.d.ts.map +1 -0
- package/mcp-server/dist/index.js +0 -0
- package/mcp-server/dist/index.js.map +1 -0
- package/mcp-server/package-lock.json +1759 -0
- package/mcp-server/package.json +24 -0
- package/mcp-server/src/index.ts +0 -0
- package/mcp-server/tsconfig.json +19 -0
- package/package.json +54 -36
- package/skills/build-skills.sh +30 -5
- package/skills/colamd-themes/SKILL.md +180 -148
- package/src/cli.ts +474 -217
- package/src/color-systems.ts +289 -289
- package/src/color-utils.ts +137 -120
- package/src/contrast.ts +66 -66
- package/src/docx-style-paradigm.ts +811 -811
- package/src/export-cli.ts +356 -356
- package/src/extractors/base.ts +8 -8
- package/src/extractors/docx-extractor.ts +417 -417
- package/src/extractors/pdf-extractor.ts +533 -527
- package/src/extractors/url-extractor.ts +846 -981
- package/src/generator.ts +197 -169
- package/src/index.ts +29 -29
- package/src/models.ts +212 -212
- package/src/renderer.ts +332 -288
- package/src/templates/template.css +220 -498
- package/src/templates/theme-paradigm.md +530 -658
- package/src/templates/theme-template.hbs +256 -370
- package/src/theme-store.ts +185 -170
- package/src/types/pdf-parse.d.ts +12 -12
- package/src/utils/cli-utils.ts +84 -84
- package/src/utils/document-paradigm.ts +118 -0
- package/src/validators.ts +298 -176
- package/themes/academic-paper-pt.css +353 -1805
- package/themes/academic-paper.css +350 -1099
- package/themes/academic-style.css +342 -2430
- package/themes/colly.css +256 -370
- package/themes/elegant.css +288 -671
- package/themes/forest-ink.css +240 -664
- package/themes/guizang.css +250 -732
- package/themes/hermes-security.css +279 -0
- package/themes/meeting-minutes.css +256 -370
- package/themes/pixso-design.css +278 -1261
- package/themes/salvator-blog.css +256 -370
- package/themes/shimo-theme.css +256 -0
- package/themes/swiss-design.css +285 -746
- package/themes/template.css +220 -498
- package/themes/trae-blue.css +280 -737
- package/themes/word-contract.css +249 -0
- package/themes-preview/demo-content.md +187 -187
- package/tsconfig.json +18 -18
- package/src/mermaid-presets.ts +0 -142
- package/themes/swiss-design copy.css +0 -746
- package/themes-preview/colly-preview.html +0 -623
- package/themes-preview/meeting-minutes-preview.html +0 -625
- package/themes-preview/salvator-blog-preview.html +0 -623
|
@@ -1,623 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="zh-CN">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="UTF-8">
|
|
5
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>salvator-blog Theme - Unified Background</title>
|
|
7
|
-
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
|
|
8
|
-
<script src="https://cdn.jsdelivr.net/npm/mermaid/dist/mermaid.min.js"></script>
|
|
9
|
-
<style>
|
|
10
|
-
/*
|
|
11
|
-
* ColaMD Theme: salvator-blog
|
|
12
|
-
* Theme extracted from url
|
|
13
|
-
* Generated by colamd-themes (url: https://salvator.me/p/jubilacion-digna-derechos-y-beneficios/)
|
|
14
|
-
*
|
|
15
|
-
* ═══════════════════════════════════════════════════════════
|
|
16
|
-
* SECTION 1 — Design Tokens
|
|
17
|
-
* Modify the 5 seed colors + 3 font stacks to change the theme
|
|
18
|
-
* ═══════════════════════════════════════════════════════════ */
|
|
19
|
-
|
|
20
|
-
body.theme-custom {
|
|
21
|
-
|
|
22
|
-
/* ── 1.1 Seed Palette ── */
|
|
23
|
-
--seed-accent: #1a73e8;
|
|
24
|
-
--seed-accent-light: rgba(26, 115, 232, 0.18);
|
|
25
|
-
--seed-accent-dark: #1a73e8;
|
|
26
|
-
--seed-surface: #ffffff;
|
|
27
|
-
--seed-panel: #f8f8f8;
|
|
28
|
-
--seed-panel-alt: #f8f8f8;
|
|
29
|
-
--seed-ink: #222222;
|
|
30
|
-
--seed-ink-muted: #666666;
|
|
31
|
-
--seed-ink-dim: #666666;
|
|
32
|
-
--seed-border: #cccccc;
|
|
33
|
-
--seed-border-strong: #cccccc;
|
|
34
|
-
|
|
35
|
-
/* ── 1.2 Typography ── */
|
|
36
|
-
--font-body: "Noto Serif SC", "Source Han Serif SC", "Inter", "SF Pro Text", -apple-system, Georgia, serif;
|
|
37
|
-
--font-heading: "Noto Sans SC", "PingFang SC", "Inter", "SF Pro Text", -apple-system, "Microsoft YaHei", sans-serif;
|
|
38
|
-
--font-code: "JetBrains Mono", "SF Mono", "Fira Code", Menlo, Consolas, monospace;
|
|
39
|
-
--font-mermaid: var(--font-heading);
|
|
40
|
-
|
|
41
|
-
/* ── 1.3 Font Sizing ── */
|
|
42
|
-
--font-size-root: 16px;
|
|
43
|
-
--font-scale-h1: 2;
|
|
44
|
-
--font-scale-h2: 1.125;
|
|
45
|
-
--font-scale-h3: 1.25;
|
|
46
|
-
--font-scale-h4: 1.1;
|
|
47
|
-
--font-scale-h5: 1;
|
|
48
|
-
--font-scale-h6: 0.95;
|
|
49
|
-
--font-size-mermaid: 13px;
|
|
50
|
-
--line-height-body: 1.75;
|
|
51
|
-
--line-height-heading: 1.35;
|
|
52
|
-
--line-height-code: 1.6;
|
|
53
|
-
|
|
54
|
-
/* ── 1.4 Radii & Spacing ── */
|
|
55
|
-
--radius-sm: 3px;
|
|
56
|
-
--radius-md: 6px;
|
|
57
|
-
--radius-lg: 10px;
|
|
58
|
-
--content-width: 820px;
|
|
59
|
-
|
|
60
|
-
/* ═══════════════════════════════════════════════════════════
|
|
61
|
-
SECTION 2 — Semantic Mapping
|
|
62
|
-
Auto-maps seed tokens → ColaMD built-in variables
|
|
63
|
-
═══════════════════════════════════════════════════════════ */
|
|
64
|
-
|
|
65
|
-
/* ── 2.1 Surface ── */
|
|
66
|
-
--bg-color: var(--seed-surface);
|
|
67
|
-
--surface-color: var(--seed-panel);
|
|
68
|
-
--surface-alt: var(--seed-panel-alt);
|
|
69
|
-
|
|
70
|
-
/* ── 2.2 Text ── */
|
|
71
|
-
--text-color: var(--seed-ink);
|
|
72
|
-
--heading-color: var(--seed-ink);
|
|
73
|
-
--text-muted: var(--seed-ink-muted);
|
|
74
|
-
--text-dim: var(--seed-ink-dim);
|
|
75
|
-
|
|
76
|
-
/* ── 2.3 Links & Accent ── */
|
|
77
|
-
--link-color: var(--seed-accent);
|
|
78
|
-
--accent-color: var(--seed-accent);
|
|
79
|
-
--accent-dark: var(--seed-accent-dark);
|
|
80
|
-
--accent-light: var(--seed-accent-light);
|
|
81
|
-
--selection-bg: rgba(43, 87, 154, 0.15);
|
|
82
|
-
|
|
83
|
-
/* ── 2.4 Borders ── */
|
|
84
|
-
--border-color: var(--seed-border);
|
|
85
|
-
--blockquote-border: var(--seed-accent);
|
|
86
|
-
--hr-color: var(--seed-border);
|
|
87
|
-
|
|
88
|
-
/* ── 2.5 Inline Code ── */
|
|
89
|
-
--code-bg: var(--seed-panel);
|
|
90
|
-
--code-color: var(--seed-accent-dark);
|
|
91
|
-
|
|
92
|
-
/* ── 2.6 Code Blocks ── */
|
|
93
|
-
--code-block-bg: var(--seed-panel-alt);
|
|
94
|
-
--code-block-text: var(--seed-ink);
|
|
95
|
-
--code-block-color: var(--seed-ink);
|
|
96
|
-
|
|
97
|
-
/* ── 2.7 Blockquote ── */
|
|
98
|
-
--blockquote-bg: var(--seed-panel);
|
|
99
|
-
|
|
100
|
-
/* ── 2.8 Tables ── */
|
|
101
|
-
--table-header-bg: var(--seed-panel);
|
|
102
|
-
--table-border: var(--seed-border);
|
|
103
|
-
|
|
104
|
-
/* ── 2.9 Scrollbar ── */
|
|
105
|
-
--scrollbar-thumb: var(--seed-border-strong);
|
|
106
|
-
--scrollbar-thumb-hover: var(--seed-ink-muted);
|
|
107
|
-
|
|
108
|
-
/* ═══════════════════════════════════════════════════════════
|
|
109
|
-
SECTION 3 — Mermaid 20 Core Variables
|
|
110
|
-
Auto-consumed by built-in variables.css for 22 diagram types
|
|
111
|
-
═══════════════════════════════════════════════════════════ */
|
|
112
|
-
|
|
113
|
-
/* ── 3.1 Container ── */
|
|
114
|
-
--mermaid-background: var(--seed-panel);
|
|
115
|
-
--mermaid-border-color: var(--seed-border);
|
|
116
|
-
--mermaid-border-radius: var(--radius-md);
|
|
117
|
-
--mermaid-padding: 20px;
|
|
118
|
-
|
|
119
|
-
/* ── 3.2 Font ── */
|
|
120
|
-
--mermaid-font-family: var(--font-mermaid);
|
|
121
|
-
--mermaid-font-size: var(--font-size-mermaid);
|
|
122
|
-
|
|
123
|
-
/* ── 3.3 Nodes ── */
|
|
124
|
-
--mermaid-node-fill: var(--seed-panel);
|
|
125
|
-
--mermaid-node-stroke: var(--seed-accent);
|
|
126
|
-
--mermaid-node-stroke-width: 1.5px;
|
|
127
|
-
--mermaid-node-text: var(--seed-ink);
|
|
128
|
-
|
|
129
|
-
/* ── 3.4 Edges ── */
|
|
130
|
-
--mermaid-edge-stroke: var(--seed-ink-muted);
|
|
131
|
-
--mermaid-edge-stroke-width: 1.5px;
|
|
132
|
-
|
|
133
|
-
/* ── 3.5 Clusters ── */
|
|
134
|
-
--mermaid-cluster-fill: rgba(43, 87, 154, 0.06);
|
|
135
|
-
--mermaid-cluster-stroke: var(--seed-accent);
|
|
136
|
-
|
|
137
|
-
/* ── 3.6 Labels ── */
|
|
138
|
-
--mermaid-label-text: var(--seed-ink);
|
|
139
|
-
--mermaid-edge-label-text: var(--seed-ink-muted);
|
|
140
|
-
--mermaid-edge-label-bg: var(--seed-surface);
|
|
141
|
-
|
|
142
|
-
/* ── 3.7 Titles & Axes ── */
|
|
143
|
-
--mermaid-title-text: var(--seed-ink);
|
|
144
|
-
--mermaid-axis-text: var(--seed-ink-muted);
|
|
145
|
-
--mermaid-highlight: var(--seed-accent);
|
|
146
|
-
|
|
147
|
-
/* ── 3.8 Person Nodes ── */
|
|
148
|
-
--mermaid-person-stroke: var(--seed-ink);
|
|
149
|
-
--mermaid-person-fill: var(--seed-panel);
|
|
150
|
-
|
|
151
|
-
/* ── 3.9 Label Offset ── */
|
|
152
|
-
--mermaid-label-offset-y: 0px;
|
|
153
|
-
|
|
154
|
-
/* ── 4. Fine Tuning ── */
|
|
155
|
-
--line-height-base: var(--line-height-body);
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
/* ═══════════════════════════════════════════════════════════
|
|
159
|
-
SECTION 5 — Selector-Level Micro Adjustments
|
|
160
|
-
Only where base.css doesn't cover. All values via var(--*).
|
|
161
|
-
═══════════════════════════════════════════════════════════ */
|
|
162
|
-
|
|
163
|
-
html { font-size: var(--font-size-root); }
|
|
164
|
-
body.theme-custom, html, body {
|
|
165
|
-
background-color: var(--bg-color);
|
|
166
|
-
color: var(--text-color);
|
|
167
|
-
font-family: var(--font-body);
|
|
168
|
-
line-height: var(--line-height-body);
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
#write {
|
|
172
|
-
max-width: var(--content-width);
|
|
173
|
-
margin: 0 auto;
|
|
174
|
-
padding: 30px 60px 100px;
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
body.theme-custom h1, body.theme-custom h2, body.theme-custom h3,
|
|
178
|
-
body.theme-custom h4, body.theme-custom h5, body.theme-custom h6 {
|
|
179
|
-
font-family: var(--font-heading);
|
|
180
|
-
color: var(--heading-color);
|
|
181
|
-
font-weight: 700;
|
|
182
|
-
line-height: var(--line-height-heading);
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
body.theme-custom h1 { font-size: calc(var(--font-size-root) * var(--font-scale-h1)); }
|
|
186
|
-
body.theme-custom h2 { font-size: calc(var(--font-size-root) * var(--font-scale-h2)); }
|
|
187
|
-
body.theme-custom h3 { font-size: calc(var(--font-size-root) * var(--font-scale-h3)); }
|
|
188
|
-
body.theme-custom h4 { font-size: calc(var(--font-size-root) * var(--font-scale-h4)); }
|
|
189
|
-
body.theme-custom h5 { font-size: calc(var(--font-size-root) * var(--font-scale-h5)); }
|
|
190
|
-
body.theme-custom h6 { font-size: calc(var(--font-size-root) * var(--font-scale-h6)); }
|
|
191
|
-
|
|
192
|
-
body.theme-custom strong { color: var(--accent-color); }
|
|
193
|
-
body.theme-custom code {
|
|
194
|
-
font-family: var(--font-code);
|
|
195
|
-
background: var(--code-bg);
|
|
196
|
-
color: var(--code-color);
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
body.theme-custom pre {
|
|
200
|
-
background: var(--code-block-bg);
|
|
201
|
-
font-family: var(--font-code);
|
|
202
|
-
line-height: var(--line-height-code);
|
|
203
|
-
}
|
|
204
|
-
body.theme-custom pre code { color: var(--code-block-text); background: transparent; }
|
|
205
|
-
|
|
206
|
-
body.theme-custom blockquote {
|
|
207
|
-
background: var(--blockquote-bg);
|
|
208
|
-
border-left: 4px solid var(--blockquote-border);
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
body.theme-custom table th {
|
|
212
|
-
background: var(--table-header-bg);
|
|
213
|
-
font-weight: 700;
|
|
214
|
-
border-bottom: 2px solid var(--accent-color);
|
|
215
|
-
}
|
|
216
|
-
|
|
217
|
-
body.theme-custom hr {
|
|
218
|
-
border: none;
|
|
219
|
-
border-top: 1px solid var(--hr-color);
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
body.theme-custom img { max-width: 100%; }
|
|
223
|
-
|
|
224
|
-
/* ── 5.11 Mermaid caption ── */
|
|
225
|
-
body.theme-custom .mermaid-block + p {
|
|
226
|
-
text-align: center;
|
|
227
|
-
font-family: var(--font-heading);
|
|
228
|
-
font-size: calc(var(--font-size-mermaid) + 2px);
|
|
229
|
-
color: var(--text-muted);
|
|
230
|
-
}
|
|
231
|
-
|
|
232
|
-
/* ── 5.12 Responsive ── */
|
|
233
|
-
@media only screen and (max-width: 768px) {
|
|
234
|
-
#write { padding: 20px; }
|
|
235
|
-
body.theme-custom .mermaid-block { padding: 12px; }
|
|
236
|
-
}
|
|
237
|
-
|
|
238
|
-
/* ═══════════════════════════════════════════════════════════
|
|
239
|
-
SECTION 6 — Print / Export
|
|
240
|
-
Screen mirror: every screen property restated with !important.
|
|
241
|
-
═══════════════════════════════════════════════════════════ */
|
|
242
|
-
@media print {
|
|
243
|
-
@page { margin: 20mm; }
|
|
244
|
-
|
|
245
|
-
/* ── 6.0 Variable re-declaration (Chromium strips CSS variables in print) ── */
|
|
246
|
-
body.theme-custom {
|
|
247
|
-
--seed-accent: #1a73e8;
|
|
248
|
-
--seed-accent-dark: #1a73e8;
|
|
249
|
-
--seed-surface: #ffffff;
|
|
250
|
-
--seed-ink: #222222;
|
|
251
|
-
--seed-ink-muted: #666666;
|
|
252
|
-
--seed-panel: #f8f8f8;
|
|
253
|
-
--seed-panel-alt: #f8f8f8;
|
|
254
|
-
--seed-border: #cccccc;
|
|
255
|
-
--font-size-root: 16px;
|
|
256
|
-
--line-height-body: 1.75;
|
|
257
|
-
--line-height-heading: 1.35;
|
|
258
|
-
--line-height-code: 1.6;
|
|
259
|
-
--font-scale-h1: 2;
|
|
260
|
-
--font-scale-h2: 1.125;
|
|
261
|
-
--font-scale-h3: 1.25;
|
|
262
|
-
--font-scale-h4: 1.1;
|
|
263
|
-
--font-scale-h5: 1;
|
|
264
|
-
--font-scale-h6: 0.95;
|
|
265
|
-
--content-width: 820px;
|
|
266
|
-
--font-size-mermaid: 13px;
|
|
267
|
-
--accent-color: var(--seed-accent);
|
|
268
|
-
--accent-dark: var(--seed-accent-dark);
|
|
269
|
-
--code-bg: var(--seed-panel);
|
|
270
|
-
--code-color: var(--seed-accent-dark);
|
|
271
|
-
--code-block-bg: var(--seed-panel-alt);
|
|
272
|
-
--code-block-text: var(--seed-ink);
|
|
273
|
-
--blockquote-bg: var(--seed-panel);
|
|
274
|
-
--table-header-bg: var(--seed-panel);
|
|
275
|
-
--border-color: var(--seed-border);
|
|
276
|
-
--hr-color: var(--seed-border);
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
html, body, body.theme-custom {
|
|
280
|
-
background: var(--seed-surface) !important;
|
|
281
|
-
color: var(--seed-ink) !important;
|
|
282
|
-
font-family: var(--font-body) !important;
|
|
283
|
-
line-height: var(--line-height-body) !important;
|
|
284
|
-
-webkit-print-color-adjust: exact !important;
|
|
285
|
-
print-color-adjust: exact !important;
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
#write {
|
|
289
|
-
max-width: var(--content-width) !important;
|
|
290
|
-
margin: 0 auto !important;
|
|
291
|
-
padding: 30px 60px 100px !important;
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
body.theme-custom h1, body.theme-custom h2, body.theme-custom h3,
|
|
295
|
-
body.theme-custom h4, body.theme-custom h5, body.theme-custom h6 {
|
|
296
|
-
font-family: var(--font-heading) !important;
|
|
297
|
-
color: var(--seed-ink) !important;
|
|
298
|
-
font-weight: 700 !important;
|
|
299
|
-
line-height: var(--line-height-heading) !important;
|
|
300
|
-
-webkit-print-color-adjust: exact !important;
|
|
301
|
-
print-color-adjust: exact !important;
|
|
302
|
-
}
|
|
303
|
-
body.theme-custom h1 { font-size: calc(var(--font-size-root) * var(--font-scale-h1)) !important; }
|
|
304
|
-
body.theme-custom h2 { font-size: calc(var(--font-size-root) * var(--font-scale-h2)) !important; }
|
|
305
|
-
body.theme-custom h3 { font-size: calc(var(--font-size-root) * var(--font-scale-h3)) !important; }
|
|
306
|
-
body.theme-custom h4 { font-size: calc(var(--font-size-root) * var(--font-scale-h4)) !important; }
|
|
307
|
-
body.theme-custom h5 { font-size: calc(var(--font-size-root) * var(--font-scale-h5)) !important; }
|
|
308
|
-
body.theme-custom h6 { font-size: calc(var(--font-size-root) * var(--font-scale-h6)) !important; }
|
|
309
|
-
|
|
310
|
-
body.theme-custom strong {
|
|
311
|
-
color: var(--accent-color) !important;
|
|
312
|
-
-webkit-print-color-adjust: exact !important;
|
|
313
|
-
print-color-adjust: exact !important;
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
body.theme-custom code {
|
|
317
|
-
font-family: var(--font-code) !important;
|
|
318
|
-
background: var(--code-bg) !important;
|
|
319
|
-
color: var(--code-color) !important;
|
|
320
|
-
-webkit-print-color-adjust: exact !important;
|
|
321
|
-
print-color-adjust: exact !important;
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
body.theme-custom pre {
|
|
325
|
-
background: var(--code-block-bg) !important;
|
|
326
|
-
font-family: var(--font-code) !important;
|
|
327
|
-
line-height: var(--line-height-code) !important;
|
|
328
|
-
-webkit-print-color-adjust: exact !important;
|
|
329
|
-
print-color-adjust: exact !important;
|
|
330
|
-
}
|
|
331
|
-
body.theme-custom pre code { color: var(--code-block-text) !important; background: transparent !important; }
|
|
332
|
-
|
|
333
|
-
body.theme-custom blockquote {
|
|
334
|
-
background: var(--blockquote-bg) !important;
|
|
335
|
-
border-left: 4px solid var(--seed-accent) !important;
|
|
336
|
-
-webkit-print-color-adjust: exact !important;
|
|
337
|
-
print-color-adjust: exact !important;
|
|
338
|
-
}
|
|
339
|
-
|
|
340
|
-
body.theme-custom table th {
|
|
341
|
-
background: var(--table-header-bg) !important;
|
|
342
|
-
color: var(--seed-ink) !important;
|
|
343
|
-
font-weight: 700 !important;
|
|
344
|
-
border-bottom: 2px solid var(--accent-color) !important;
|
|
345
|
-
-webkit-print-color-adjust: exact !important;
|
|
346
|
-
print-color-adjust: exact !important;
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
body.theme-custom a {
|
|
350
|
-
color: var(--seed-accent) !important;
|
|
351
|
-
-webkit-print-color-adjust: exact !important;
|
|
352
|
-
print-color-adjust: exact !important;
|
|
353
|
-
}
|
|
354
|
-
|
|
355
|
-
body.theme-custom hr {
|
|
356
|
-
border: none !important;
|
|
357
|
-
border-top: 1px solid var(--hr-color) !important;
|
|
358
|
-
}
|
|
359
|
-
|
|
360
|
-
body.theme-custom img { max-width: 100% !important; }
|
|
361
|
-
|
|
362
|
-
body.theme-custom .mermaid-block {
|
|
363
|
-
background: var(--seed-surface) !important;
|
|
364
|
-
border-color: var(--seed-border) !important;
|
|
365
|
-
-webkit-print-color-adjust: exact !important;
|
|
366
|
-
print-color-adjust: exact !important;
|
|
367
|
-
}
|
|
368
|
-
body.theme-custom .mermaid-preview svg * {
|
|
369
|
-
-webkit-print-color-adjust: exact !important;
|
|
370
|
-
print-color-adjust: exact !important;
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
body.theme-custom .mermaid-block + p {
|
|
374
|
-
color: var(--seed-ink-muted) !important;
|
|
375
|
-
text-align: center !important;
|
|
376
|
-
font-family: var(--font-heading) !important;
|
|
377
|
-
font-size: calc(var(--font-size-mermaid) + 2px) !important;
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
</style>
|
|
382
|
-
</head>
|
|
383
|
-
<body class="theme-custom">
|
|
384
|
-
<div style="position: sticky; top: 0; background: var(--seed-surface); border-bottom: 1px solid var(--seed-border); padding: 1rem; z-index: 100; box-shadow: 0 2px 8px rgba(0,0,0,0.1);">
|
|
385
|
-
<h2 style="margin: 0 0 0.5rem 0; font-size: 1.25rem; color: var(--seed-ink);">
|
|
386
|
-
🎨 salvator-blog Theme (Unified Background)
|
|
387
|
-
</h2>
|
|
388
|
-
<div style="display: flex; gap: 1rem; align-items: center; flex-wrap: wrap;">
|
|
389
|
-
<div><strong>Accent:</strong> <span style="color:#1a73e8">#1a73e8</span></div>
|
|
390
|
-
<div style="display:flex; gap:0.5rem;">
|
|
391
|
-
<span title="accent"><span style="display:inline-block;width:20px;height:20px;background:#1a73e8;border:1px solid #ccc;"></span></span>
|
|
392
|
-
<span title="surface"><span style="display:inline-block;width:20px;height:20px;background:#ffffff;border:1px solid #ccc;"></span></span>
|
|
393
|
-
<span title="panel"><span style="display:inline-block;width:20px;height:20px;background:#f8f8f8;border:1px solid #ccc;"></span></span>
|
|
394
|
-
<span title="panel-alt"><span style="display:inline-block;width:20px;height:20px;background:#f8f8f8;border:1px solid #ccc;"></span></span>
|
|
395
|
-
<span title="ink"><span style="display:inline-block;width:20px;height:20px;background:#222222;border-radius:4px;"></span></span>
|
|
396
|
-
</div>
|
|
397
|
-
</div>
|
|
398
|
-
</div>
|
|
399
|
-
|
|
400
|
-
<div style="display: flex; max-width: 1400px; margin: 0 auto;">
|
|
401
|
-
<nav style="width: 200px; padding: 2rem 1rem; position: sticky; top: 120px; height: calc(100vh - 120px); overflow-y: auto; border-right: 1px solid var(--seed-border);">
|
|
402
|
-
<h3 style="margin-top:0;">目录</h3>
|
|
403
|
-
<ul id="toc" style="padding-left:1rem;line-height:1.8;"></ul>
|
|
404
|
-
</nav>
|
|
405
|
-
|
|
406
|
-
<main style="flex:1;padding:2rem;max-width:820px;">
|
|
407
|
-
<div id="content"></div>
|
|
408
|
-
</main>
|
|
409
|
-
</div>
|
|
410
|
-
|
|
411
|
-
<script type="text/markdown" id="demo-content" style="display:none;">
|
|
412
|
-
# 会议纪要主题演示
|
|
413
|
-
|
|
414
|
-
这是 **meeting-minutes** 主题的完整预览。该主题从实际的会议纪要文档中提取,适合正式的商务文档排版。
|
|
415
|
-
|
|
416
|
-
## 2. 二级标题样式
|
|
417
|
-
|
|
418
|
-
### 3. 三级标题样式
|
|
419
|
-
|
|
420
|
-
这是一段普通文本,包含 **粗体**、*斜体*、`行内代码`、[链接](https://example.com) 和 ~~删除线~~。还会包含一些中文文本以测试字体效果。
|
|
421
|
-
|
|
422
|
-
> 这是一个引用块。引用块通常用于强调或展示外部内容。这里可以包含 *斜体* 和 **粗体** 文本。
|
|
423
|
-
>
|
|
424
|
-
> —— 会议记录人
|
|
425
|
-
|
|
426
|
-
### 列表样式
|
|
427
|
-
|
|
428
|
-
**无序列表:**
|
|
429
|
-
|
|
430
|
-
- 第一项讨论内容
|
|
431
|
-
- 第二项讨论内容
|
|
432
|
-
- 嵌套的子项目 A
|
|
433
|
-
- 嵌套的子项目 B
|
|
434
|
-
- 第三项行动项
|
|
435
|
-
|
|
436
|
-
**有序列表:**
|
|
437
|
-
|
|
438
|
-
1. 开场致辞
|
|
439
|
-
2. 议程第一项:财务报告
|
|
440
|
-
1. 第一季度回顾
|
|
441
|
-
2. 第二季度预测
|
|
442
|
-
3. 议程第二项:项目进展
|
|
443
|
-
1. 核心功能完成度
|
|
444
|
-
2. 下一步里程碑
|
|
445
|
-
|
|
446
|
-
**任务列表:**
|
|
447
|
-
|
|
448
|
-
- [x] 会议材料准备
|
|
449
|
-
- [x] 会议室预订
|
|
450
|
-
- [ ] 会后纪要分发
|
|
451
|
-
- [ ] 行动项跟进
|
|
452
|
-
|
|
453
|
-
### 代码块样式
|
|
454
|
-
|
|
455
|
-
```python
|
|
456
|
-
def generate_meeting_minutes(attendees, topics, decisions):
|
|
457
|
-
"""
|
|
458
|
-
生成会议纪要
|
|
459
|
-
"""
|
|
460
|
-
minutes = {
|
|
461
|
-
"date": datetime.now(),
|
|
462
|
-
"attendees": attendees,
|
|
463
|
-
"topics": topics,
|
|
464
|
-
"decisions": decisions,
|
|
465
|
-
"action_items": []
|
|
466
|
-
}
|
|
467
|
-
return minutes
|
|
468
|
-
```
|
|
469
|
-
|
|
470
|
-
```javascript
|
|
471
|
-
// JavaScript 示例
|
|
472
|
-
const meeting = {
|
|
473
|
-
title: "Sprint Planning",
|
|
474
|
-
duration: "2 hours",
|
|
475
|
-
participants: ["Alice", "Bob", "Charlie"]
|
|
476
|
-
};
|
|
477
|
-
```
|
|
478
|
-
|
|
479
|
-
### 表格样式
|
|
480
|
-
|
|
481
|
-
| 项目 | 负责人 | 截止日期 | 状态 |
|
|
482
|
-
|------|--------|----------|------|
|
|
483
|
-
| 用户调研 | 张三 | 2025-06-15 | ✅ 已完成 |
|
|
484
|
-
| 原型设计 | 李四 | 2025-06-20 | 🔄 进行中 |
|
|
485
|
-
| 开发实现 | 王五 | 2025-07-15 | ⏳ 未开始 |
|
|
486
|
-
| 测试验收 | 赵六 | 2025-07-30 | ⏳ 未开始 |
|
|
487
|
-
|
|
488
|
-
| Header 1 | Header 2 | Header 3 |
|
|
489
|
-
|----------|----------|----------|
|
|
490
|
-
| Cell 1 | Cell 2 | Cell 3 |
|
|
491
|
-
| Cell 4 | Cell 5 | Cell 6 |
|
|
492
|
-
|
|
493
|
-
---
|
|
494
|
-
|
|
495
|
-
### Mermaid 图表
|
|
496
|
-
|
|
497
|
-
```mermaid
|
|
498
|
-
graph TD
|
|
499
|
-
A[会议开始] --> B[议程介绍]
|
|
500
|
-
B --> C[财务报告]
|
|
501
|
-
B --> D[项目进展]
|
|
502
|
-
B --> E[其他事项]
|
|
503
|
-
C --> F[决策1]
|
|
504
|
-
D --> G[决策2]
|
|
505
|
-
E --> H[决策3]
|
|
506
|
-
F --> I[行动项分配]
|
|
507
|
-
G --> I
|
|
508
|
-
H --> I
|
|
509
|
-
I --> J[下次会议安排]
|
|
510
|
-
```
|
|
511
|
-
|
|
512
|
-
```mermaid
|
|
513
|
-
sequenceDiagram
|
|
514
|
-
participant 主持人
|
|
515
|
-
participant 张三
|
|
516
|
-
participant 李四
|
|
517
|
-
主持人->>张三: 请介绍财务情况
|
|
518
|
-
张三->>所有人: Q1营收增长15%
|
|
519
|
-
李四->>所有人: 建议增加营销预算
|
|
520
|
-
主持人->>所有人: 通过决议
|
|
521
|
-
```
|
|
522
|
-
|
|
523
|
-
---
|
|
524
|
-
|
|
525
|
-
### 数学公式
|
|
526
|
-
|
|
527
|
-
$$
|
|
528
|
-
\int_{a}^{b} f(x) \, dx = F(b) - F(a)
|
|
529
|
-
$$
|
|
530
|
-
|
|
531
|
-
$$
|
|
532
|
-
E = mc^2
|
|
533
|
-
$$
|
|
534
|
-
|
|
535
|
-
---
|
|
536
|
-
|
|
537
|
-
### 分隔线
|
|
538
|
-
|
|
539
|
-
---
|
|
540
|
-
|
|
541
|
-
### 行内元素变体
|
|
542
|
-
|
|
543
|
-
| 样式 | 示例 |
|
|
544
|
-
|------|------|
|
|
545
|
-
| 代码 | `const x = 10;` |
|
|
546
|
-
| 强调 | *重要内容* |
|
|
547
|
-
| 加粗 | **必须完成** |
|
|
548
|
-
| 标记 | ==高亮显示== |
|
|
549
|
-
| 下标 | H~2~O |
|
|
550
|
-
| 上标 | x^2^ |
|
|
551
|
-
|
|
552
|
-
---
|
|
553
|
-
|
|
554
|
-
### YAML Frontmatter 示例
|
|
555
|
-
|
|
556
|
-
```yaml
|
|
557
|
-
---
|
|
558
|
-
title: 项目周会纪要
|
|
559
|
-
date: 2025-05-25
|
|
560
|
-
location: 会议室 A305
|
|
561
|
-
attendees:
|
|
562
|
-
- 张三 (产品经理)
|
|
563
|
-
- 李四 (技术负责人)
|
|
564
|
-
- 王五 (设计师)
|
|
565
|
-
decisions:
|
|
566
|
-
- 同意增加前端开发人员
|
|
567
|
-
- 下周启动用户调研
|
|
568
|
-
action_items:
|
|
569
|
-
- { owner: 李四, task: 完成技术方案, due: 2025-06-01 }
|
|
570
|
-
- { owner: 王五, task: 提供设计稿, due: 2025-06-05 }
|
|
571
|
-
---
|
|
572
|
-
```
|
|
573
|
-
|
|
574
|
-
---
|
|
575
|
-
|
|
576
|
-
### 脚注示例
|
|
577
|
-
|
|
578
|
-
这是一个包含脚注的段落。会议决议需要所有核心成员确认[^1],并在会后24小时内分发纪要[^2]。
|
|
579
|
-
|
|
580
|
-
[^1]: 核心成员指产品、技术、设计负责人
|
|
581
|
-
[^2]: 分发渠道:企业微信 + 邮件
|
|
582
|
-
|
|
583
|
-
---
|
|
584
|
-
|
|
585
|
-
### 定义列表
|
|
586
|
-
|
|
587
|
-
**Term 1**
|
|
588
|
-
: Definition 1a
|
|
589
|
-
: Definition 1b
|
|
590
|
-
|
|
591
|
-
**Term 2**
|
|
592
|
-
: Definition 2a
|
|
593
|
-
|
|
594
|
-
---
|
|
595
|
-
|
|
596
|
-
<div style="margin-top: 3rem; padding: 1rem; background: var(--seed-panel); border-left: 4px solid var(--seed-accent); border-radius: var(--radius-md);">
|
|
597
|
-
<strong>💡 提示:</strong> 这个主题使用了 <code>macaron-blueberry</code> 配色方案,特点是柔和的蓝色强调色搭配干净的白色背景,适合正式文档和会议纪要。
|
|
598
|
-
</div>
|
|
599
|
-
|
|
600
|
-
</script>
|
|
601
|
-
|
|
602
|
-
<script>
|
|
603
|
-
async function renderContent() {
|
|
604
|
-
mermaid.initialize({ startOnLoad: false, theme: 'default' });
|
|
605
|
-
const md = document.getElementById('demo-content').textContent;
|
|
606
|
-
const html = marked.parse(md);
|
|
607
|
-
document.getElementById('content').innerHTML = html;
|
|
608
|
-
mermaid.init(undefined, document.querySelectorAll('.mermaid'));
|
|
609
|
-
const headings = document.querySelectorAll('#content h1, #content h2, #content h3');
|
|
610
|
-
const toc = document.getElementById('toc');
|
|
611
|
-
headings.forEach(h => {
|
|
612
|
-
const id = h.id || h.textContent.toLowerCase().replace(/\s+/g, '-');
|
|
613
|
-
h.id = id;
|
|
614
|
-
const li = document.createElement('li');
|
|
615
|
-
li.style.marginLeft = (parseInt(h.tagName[1]) - 1) * 1 + 'rem';
|
|
616
|
-
li.innerHTML = '<a href="#' + id + '">' + h.textContent + '</a>';
|
|
617
|
-
toc.appendChild(li);
|
|
618
|
-
});
|
|
619
|
-
}
|
|
620
|
-
renderContent();
|
|
621
|
-
</script>
|
|
622
|
-
</body>
|
|
623
|
-
</html>
|