@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.
Files changed (100) hide show
  1. package/.claude/skills/colamd-themes-preview.skill.md +333 -0
  2. package/.claude/skills/colamd-themes.skill.md +10 -0
  3. package/.dsh/skills/colamd-themes/SKILL.md +14 -0
  4. package/.github/supported-topics.yml +17 -0
  5. package/.hermes/skills/tools/colamd-themes/SKILL.md +14 -0
  6. package/.openclaw/skills/colamd-themes/SKILL.md +1 -146
  7. package/.opencode/skills/colamd-themes/SKILL.md +17 -0
  8. package/.trae/rules/colamd-themes.md +0 -145
  9. package/CHANGELOG.md +318 -240
  10. package/DSH_SUPPORT_SUMMARY.md +87 -0
  11. package/README.md +414 -384
  12. package/README_CN.md +412 -384
  13. package/RELEASENOTE.md +541 -365
  14. package/bytechain.cn-colamd-themes-0.5.0.tgz +0 -0
  15. package/dist/cli.js +272 -32
  16. package/dist/cli.js.map +1 -1
  17. package/dist/color-utils.d.ts +1 -0
  18. package/dist/color-utils.js +25 -6
  19. package/dist/color-utils.js.map +1 -1
  20. package/dist/extractors/pdf-extractor.js +6 -1
  21. package/dist/extractors/pdf-extractor.js.map +1 -1
  22. package/dist/extractors/url-extractor.d.ts +0 -4
  23. package/dist/extractors/url-extractor.js +13 -126
  24. package/dist/extractors/url-extractor.js.map +1 -1
  25. package/dist/generator.d.ts +1 -1
  26. package/dist/generator.js +32 -11
  27. package/dist/generator.js.map +1 -1
  28. package/dist/models.d.ts +5 -4
  29. package/dist/models.js +2 -3
  30. package/dist/models.js.map +1 -1
  31. package/dist/renderer.d.ts +4 -2
  32. package/dist/renderer.js +68 -25
  33. package/dist/renderer.js.map +1 -1
  34. package/dist/templates/template.css +220 -498
  35. package/dist/templates/theme-paradigm.md +530 -658
  36. package/dist/templates/theme-template.hbs +256 -370
  37. package/dist/theme-store.js +19 -3
  38. package/dist/theme-store.js.map +1 -1
  39. package/dist/utils/document-paradigm.d.ts +12 -0
  40. package/dist/utils/document-paradigm.js +109 -0
  41. package/dist/utils/document-paradigm.js.map +1 -0
  42. package/dist/validators.d.ts +4 -1
  43. package/dist/validators.js +115 -1
  44. package/dist/validators.js.map +1 -1
  45. package/mcp-server/dist/index.d.ts +13 -0
  46. package/mcp-server/dist/index.d.ts.map +1 -0
  47. package/mcp-server/dist/index.js +0 -0
  48. package/mcp-server/dist/index.js.map +1 -0
  49. package/mcp-server/package-lock.json +1759 -0
  50. package/mcp-server/package.json +24 -0
  51. package/mcp-server/src/index.ts +0 -0
  52. package/mcp-server/tsconfig.json +19 -0
  53. package/package.json +54 -36
  54. package/skills/build-skills.sh +30 -5
  55. package/skills/colamd-themes/SKILL.md +180 -148
  56. package/src/cli.ts +474 -217
  57. package/src/color-systems.ts +289 -289
  58. package/src/color-utils.ts +137 -120
  59. package/src/contrast.ts +66 -66
  60. package/src/docx-style-paradigm.ts +811 -811
  61. package/src/export-cli.ts +356 -356
  62. package/src/extractors/base.ts +8 -8
  63. package/src/extractors/docx-extractor.ts +417 -417
  64. package/src/extractors/pdf-extractor.ts +533 -527
  65. package/src/extractors/url-extractor.ts +846 -981
  66. package/src/generator.ts +197 -169
  67. package/src/index.ts +29 -29
  68. package/src/models.ts +212 -212
  69. package/src/renderer.ts +332 -288
  70. package/src/templates/template.css +220 -498
  71. package/src/templates/theme-paradigm.md +530 -658
  72. package/src/templates/theme-template.hbs +256 -370
  73. package/src/theme-store.ts +185 -170
  74. package/src/types/pdf-parse.d.ts +12 -12
  75. package/src/utils/cli-utils.ts +84 -84
  76. package/src/utils/document-paradigm.ts +118 -0
  77. package/src/validators.ts +298 -176
  78. package/themes/academic-paper-pt.css +353 -1805
  79. package/themes/academic-paper.css +350 -1099
  80. package/themes/academic-style.css +342 -2430
  81. package/themes/colly.css +256 -370
  82. package/themes/elegant.css +288 -671
  83. package/themes/forest-ink.css +240 -664
  84. package/themes/guizang.css +250 -732
  85. package/themes/hermes-security.css +279 -0
  86. package/themes/meeting-minutes.css +256 -370
  87. package/themes/pixso-design.css +278 -1261
  88. package/themes/salvator-blog.css +256 -370
  89. package/themes/shimo-theme.css +256 -0
  90. package/themes/swiss-design.css +285 -746
  91. package/themes/template.css +220 -498
  92. package/themes/trae-blue.css +280 -737
  93. package/themes/word-contract.css +249 -0
  94. package/themes-preview/demo-content.md +187 -187
  95. package/tsconfig.json +18 -18
  96. package/src/mermaid-presets.ts +0 -142
  97. package/themes/swiss-design copy.css +0 -746
  98. package/themes-preview/colly-preview.html +0 -623
  99. package/themes-preview/meeting-minutes-preview.html +0 -625
  100. package/themes-preview/salvator-blog-preview.html +0 -623
@@ -1,2430 +1,342 @@
1
- /*
2
- * ColaMD 主题:Academic Paper (学术论文打印)
3
- <<<<<<< HEAD
4
- * 配色:纯白底 + 纯黑正文 + 归藏暖色系 Mermaid
5
- * 格式:遵循中文学术论文排版规范(GB/T 7713)
6
- * 兼容:ColaMD (body.theme-custom) / Typora
7
- * 导入:Theme > Import Theme
8
- * @template: light
9
- */
10
-
11
- /* ── 1. 根变量 & 主题变量 ── */
12
- :root {
13
- --side-bar-bg-color: #f5f5f5;
14
- --control-text-color: #333;
15
- --active-file-bg-color: #e8e8e8;
16
- --active-file-text-color: #000;
17
- --active-file-border-color: #000;
18
-
19
- /* ═══════════════════════════════════════════
20
- 印刷友好灰度色板(GB/T 7713 学术论文规范)
21
- 基于10级亮度感知,确保打印/屏幕一致性
22
- ═══════════════════════════════════════════ */
23
- --gray-0: #ffffff; /* 纯白 - 页面背景 */
24
- --gray-1: #fafafa; /* 极浅灰 - 次要表面 */
25
- --gray-2: #f5f5f5; /* 浅灰 - 代码/区块背景 */
26
- --gray-3: #eeeeee; /* 中浅灰 - 表头底色 */
27
- --gray-4: #e0e0e0; /* 浅中灰 - 高亮标记 */
28
- --gray-5: #cccccc; /* 中灰 - 边框/分割线 */
29
- --gray-6: #999999; /* 中深灰 - 次要文字 */
30
- --gray-7: #666666; /* 深灰 - 弱化文字 */
31
- --gray-8: #333333; /* 近黑 - 强调边框 */
32
- --gray-9: #000000; /* 纯黑 - 正文/标题 */
33
-
34
- /* 核心语义变量(基于灰度色板) */
35
- --bg-color: var(--gray-0);
36
- --text-color: var(--gray-9);
37
- --select-text-bg-color: rgba(0, 0, 0, 0.12);
38
- --select-text-font-color: var(--gray-9);
39
- --rawblock-edit-panel-bd: var(--gray-5);
40
- }
41
-
42
- body.theme-custom {
43
- /* ═══ 核心语义变量(GB/T 7713 印刷优化) ═══ */
44
- --bg-color: var(--gray-0);
45
- --text-color: var(--gray-9);
46
- --heading-color: var(--gray-9);
47
- --border-color: var(--gray-9);
48
-
49
- /* 背景层次(从浅到深) */
50
- --code-bg: var(--gray-2);
51
- --code-color: var(--gray-9);
52
- --code-block-bg: var(--gray-2);
53
- --code-block-text: var(--gray-9);
54
- --code-block-color: var(--gray-9);
55
- --blockquote-bg: var(--gray-1);
56
- --blockquote-border: var(--gray-9);
57
- --surface-color: var(--gray-2);
58
- --surface-alt: var(--gray-1);
59
-
60
- /* 文字层次(从深到浅,按重要性降序) */
61
- --link-color: var(--gray-9);
62
- --accent-color: var(--gray-9);
63
- --accent-dark: var(--gray-9);
64
- --accent-light: var(--gray-4);
65
- --text-muted: var(--gray-8);
66
- --text-dim: var(--gray-7);
67
-
68
- /* 交互状态 */
69
- --selection-bg: rgba(0, 0, 0, 0.12);
70
-
71
- /* 表格系统(三线表规范 GB/T 7713) */
72
- --table-header-bg: transparent; /* 三线表:表头无底色或极浅 */
73
- --table-stripe: rgba(0, 0, 0, 0.02); /* 长表格斑马纹(可选) */
74
-
75
- /* 滚动条 */
76
- --scrollbar-thumb: var(--gray-5);
77
- --scrollbar-thumb-hover: var(--gray-6);
78
-
79
- /* 分割线 */
80
- --hr-color: var(--gray-9);
81
- /* Mermaid 全局字体:黑体 小五号 9pt(GB/T 7713 图表字),独立于正文 */
82
- --mermaid-font-family: "SimHei", "Heiti SC", "Source Han Sans SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;
83
- --mermaid-font-size: 9pt;
84
- --mermaid-dark-mode: false;
85
- /* ═══ Mermaid 图表系统(印刷友好灰度) ═══ */
86
- /* 背景与边框 */
87
- --mermaid-background: var(--gray-0);
88
- --mermaid-border-color: var(--gray-5);
89
- --mermaid-border-radius: 0;
90
- --mermaid-padding: 20px;
91
-
92
- /* 节点色块:莫兰迪浅灰(确保打印可辨) */
93
- --mermaid-primary-color: var(--gray-3);
94
- --mermaid-primary-border-color: var(--gray-8);
95
- --mermaid-primary-text-color: var(--gray-9);
96
- --mermaid-secondary-color: var(--gray-2);
97
- --mermaid-secondary-border-color: var(--gray-7);
98
- --mermaid-secondary-text-color: var(--gray-9);
99
- --mermaid-tertiary-color: var(--gray-4);
100
- --mermaid-tertiary-border-color: var(--gray-6);
101
- --mermaid-tertiary-text-color: var(--gray-9);
102
- --mermaid-node-fill: var(--gray-3);
103
- --mermaid-node-bkg: var(--gray-2);
104
- --mermaid-node-stroke: var(--gray-8);
105
- --mermaid-node-stroke-width: 1px;
106
- --mermaid-node-text: var(--gray-9);
107
-
108
- /* 聚类 */
109
- --mermaid-cluster-fill: var(--gray-1);
110
- --mermaid-cluster-bkg: var(--gray-1);
111
- --mermaid-cluster-stroke: var(--gray-7);
112
- --mermaid-cluster-dasharray: none;
113
-
114
- /* 边线/连线:深灰黑色便于打印 */
115
- --mermaid-edge-stroke: var(--gray-8);
116
- --mermaid-edge-stroke-width: 1px;
117
-
118
- /* 标签 */
119
- --mermaid-label-text: var(--gray-9);
120
- --mermaid-label-text-color: var(--gray-9);
121
- --mermaid-label-background: var(--gray-0);
122
- --mermaid-label-offset-y: 0px;
123
-
124
- /* 边标签 */
125
- --mermaid-edge-label-text: var(--gray-9);
126
- --mermaid-edge-label-bg: var(--gray-0);
127
- --mermaid-edge-label-background: var(--gray-0);
128
-
129
- /* 主色/对比色 */
130
- --mermaid-main-bkg: var(--gray-3);
131
- --mermaid-second-bkg: var(--gray-2);
132
- --mermaid-main-contrast-color: var(--gray-9);
133
- --mermaid-title-text: var(--gray-9);
134
- --mermaid-axis-text: var(--gray-7);
135
- --mermaid-highlight: var(--gray-8);
136
- --mermaid-line-color: var(--gray-6);
137
-
138
- /* 人物/角色 */
139
- --mermaid-person-stroke: var(--gray-8);
140
- --mermaid-person-bkg: var(--gray-2);
141
- /* 莫兰迪灰色阶色板(Graph/Chart 多系列区分,基于灰度色板) */
142
- --mermaid-cscale0: var(--gray-6); /* #999999 → gray-6 */
143
- --mermaid-cscale1: var(--gray-7); /* #8C8E90 ≈ gray-7 */
144
- --mermaid-cscale2: var(--gray-6); /* #B0B0B0 ≈ gray-6 */
145
- --mermaid-cscale3: var(--gray-8); /* #787878 → gray-8 */
146
- --mermaid-cscale4: var(--gray-6); /* #9E9E9E ≈ gray-6 */
147
- --mermaid-cscale5: var(--gray-7); /* #949698 ≈ gray-7 */
148
- --mermaid-cscale6: var(--gray-8); /* #6E6E6E → gray-8 */
149
- --mermaid-cscale7: var(--gray-6); /* #A0A0A0 ≈ gray-6 */
150
- --mermaid-cscale8: var(--gray-7); /* #848688 ≈ gray-7 */
151
- --mermaid-cscale9: var(--gray-6); /* #AAAAAA ≈ gray-6 */
152
- --mermaid-cscale10: var(--gray-8); /* #7A7A7C ≈ gray-8 */
153
- --mermaid-cscale11: var(--gray-7); /* #929294 ≈ gray-7 */
154
- }
155
-
156
- pre { --select-text-bg-color: rgba(0, 0, 0, 0.12); --select-text-font-color: var(--gray-9); }
157
-
158
- /* ── 2. 全局 ── */
159
- html { font-size: 12pt; -webkit-font-smoothing: antialiased; }
160
-
161
- body.theme-custom, html, body {
162
- background-color: var(--gray-0);
163
- color: var(--gray-9);
164
- font-family: "SimSun", "Songti SC", "Source Han Serif SC", "Noto Serif SC", Georgia, "Times New Roman", serif;
165
- line-height: 1.5;
166
- font-size: 12pt;
167
- }
168
-
169
- body.theme-custom { -webkit-font-smoothing: antialiased; }
170
-
171
- body.theme-custom #editor { max-width: 210mm; margin: 0 auto; padding: 25mm 25mm 25mm 30mm; }
172
- #write { max-width: 210mm; margin: 0 auto; padding: 0; }
173
- #write > ul:first-child, #write > ol:first-child { margin-top: 30px; }
174
-
175
- @media only screen and (min-width: 1400px) { #write { max-width: 210mm; } }
176
- @media only screen and (max-width: 768px) {
177
- #write { padding: 15mm 12mm 15mm 12mm; }
178
- body.theme-custom .mermaid-block,
179
- body.theme-custom .mermaid-preview,
180
- .md-diagram-panel.md-mermaid { padding: 12px; margin: 1em 0; }
181
- body.theme-custom .mermaid-preview svg { max-width: 100% !important; height: auto !important; }
182
- body.theme-custom .mermaid-preview svg text { font-size: 9pt !important; }
183
- .md-diagram-panel.md-mermaid svg text { font-size: 9pt !important; }
184
- body.theme-custom .mermaid-preview svg .titleText { font-size: 10.5pt !important; }
185
- .md-diagram-panel.md-mermaid svg .titleText { font-size: 10.5pt !important; }
186
- }
187
-
188
- /* ── 3. 标题(GB/T 7713 学术论文规范) ── */
189
- h1, h2, h3, h4, h5, h6,
190
- body.theme-custom h1, body.theme-custom h2, body.theme-custom h3,
191
- body.theme-custom h4, body.theme-custom h5, body.theme-custom h6 {
192
- position: relative;
193
- color: var(--gray-9);
194
- font-weight: 700;
195
- line-height: 1.35;
196
- text-indent: 0;
197
- font-family: "SimHei", "Heiti SC", "Source Han Sans SC", "Noto Sans SC", "Microsoft YaHei", "Arial", sans-serif;
198
- }
199
-
200
- /* 一级标题(论文题目):黑体 三号 (16pt),居中,段前后各 1 行 */
201
- h1, body.theme-custom h1 {
202
- font-size: 16pt;
203
- text-align: center;
204
- margin-top: 24pt;
205
- margin-bottom: 18pt;
206
- cursor: text;
207
- }
208
-
209
- /* 二级标题(一级节):黑体 四号 (14pt),左对齐,段前 1 行,段后 0.5 行 */
210
- h2, body.theme-custom h2 {
211
- font-size: 14pt;
212
- margin-top: 20pt;
213
- margin-bottom: 10pt;
214
- cursor: text;
215
- }
216
-
217
- /* 三级标题(二级节):黑体 小四号 (12pt),左对齐,段前 0.5 行,段后 0.5 行 */
218
- h3, body.theme-custom h3 {
219
- font-size: 12pt;
220
- margin-top: 14pt;
221
- margin-bottom: 7pt;
222
- cursor: text;
223
- }
224
-
225
- /* 四级标题(三级节):黑体 小四号 (12pt),左对齐,段前 0.5 行 */
226
- h4, body.theme-custom h4 {
227
- font-size: 12pt;
228
- margin-top: 14pt;
229
- margin-bottom: 6pt;
230
- cursor: text;
231
- }
232
-
233
- /* 五级标题 */
234
- h5, body.theme-custom h5 {
235
- font-size: 11pt;
236
- margin-top: 12pt;
237
- margin-bottom: 5pt;
238
- cursor: text;
239
- }
240
-
241
- /* 六级标题:黑体 五号 10.5pt */
242
- h6, body.theme-custom h6 {
243
- font-size: 10.5pt;
244
- color: var(--gray-9);
245
- margin-top: 10pt;
246
- margin-bottom: 4pt;
247
- cursor: text;
248
- =======
249
- * 版本:v3.0(遵循 theme-paradigm.md 范式)
250
- *
251
- * 风格:纯白底 + 纯黑正文 + 灰度 Mermaid 图表
252
- * 规范:GB/T 7713 中文学术论文排版(宋体正文 + 黑体标题 + 三线表)
253
- * 单位:强制使用 px(禁止 pt,会导致 PDF 导出缩小 25%)
254
- *
255
- * 导入:Theme > Import Theme
256
- */
257
-
258
- /* ═══════════════════════════════════════════════════════════
259
- SECTION 1 — 设计令牌 (Design Tokens)
260
- ═══════════════════════════════════════════════════════════ */
261
-
262
- :root {
263
- --side-bar-bg-color: #f5f5f5;
264
- --control-text-color: #333;
265
- --active-file-bg-color: #e8e8e8;
266
- --active-file-text-color: #000;
267
- --active-file-border-color: #000;
268
- --bg-color: #ffffff;
269
- --text-color: #111111;
270
- --select-text-bg-color: rgba(0, 0, 0, 0.12);
271
- --select-text-font-color: #111111;
272
- --rawblock-edit-panel-bd: #cccccc;
273
- }
274
-
275
- body.theme-custom {
276
-
277
- /* ═══════════════════════════════════════════════════════════
278
- 1.1 种子色板 — 10 级灰度(GB/T 7713 学术论文规范)
279
- ═══════════════════════════════════════════════════════════ */
280
-
281
- --seed-surface: #ffffff; /* L0 页面背景(纯白) */
282
- --seed-panel: #f5f5f5; /* L1 代码/区块背景(浅灰) */
283
- --seed-panel-alt: #fafafa; /* L2 次要表面(极浅灰) */
284
-
285
- --seed-ink: #111111; /* T0 正文/标题(近黑) */
286
- --seed-ink-muted: #333333; /* T1 次要文字 */
287
- --seed-ink-dim: #666666; /* T2 弱化/禁用文字 */
288
-
289
- --seed-border: #111111; /* 强调边框 */
290
- --seed-border-light: #cccccc; /* 浅边框/分割线 */
291
-
292
- /* ═══════════════════════════════════════════════════════════
293
- 1.2 字体系统 — GB/T 7713 学术论文规范
294
- ═══════════════════════════════════════════════════════════ */
295
-
296
- --font-body: "SimSun", "Songti SC", "Source Han Serif SC", "Noto Serif SC",
297
- Georgia, "Times New Roman", serif;
298
-
299
- --font-heading: "SimHei", "Heiti SC", "Source Han Sans SC", "Noto Sans SC",
300
- "Microsoft YaHei", "Arial", sans-serif;
301
-
302
- --font-code: "Courier New", "Consolas", "Source Code Pro", monospace;
303
-
304
- --font-mermaid: var(--font-heading);
305
-
306
- /* ═══════════════════════════════════════════════════════════
307
- 1.3 字号 & 间距 — 屏幕 px 单位
308
- ═══════════════════════════════════════════════════════════ */
309
-
310
- --font-size-root: 16px;
311
-
312
- --font-scale-h1: 1.375; /* 22px — 三号(论文题目) */
313
- --font-scale-h2: 1.125; /* 18px — 四号(一级节) */
314
- --font-scale-h3: 1.0; /* 16px — 小四号(二级节) */
315
- --font-scale-h4: 1.0; /* 16px — 小四号(三级节) */
316
- --font-scale-h5: 0.875; /* 14px — 五号 */
317
- --font-scale-h6: 0.875; /* 14px — 五号 */
318
-
319
- --font-size-mermaid: 12px;
320
-
321
- --line-height-body: 1.5;
322
- --line-height-heading: 1.35;
323
- --line-height-code: 1.5;
324
-
325
- /* ═══════════════════════════════════════════════════════════
326
- 1.4 圆角 & 间距 — 学术论文:直角优先
327
- ═══════════════════════════════════════════════════════════ */
328
-
329
- --radius-sm: 0px;
330
- --radius-md: 0px;
331
- --radius-lg: 0px;
332
- --content-width: 210mm;
333
-
334
- --page-margin-top: 25mm;
335
- --page-margin-bottom: 25mm;
336
- --page-margin-left: 30mm;
337
- --page-margin-right: 25mm;
338
-
339
- /* ═══════════════════════════════════════════════════════════
340
- 1.5 灰度色板 — 10 级亮度感知
341
- ═══════════════════════════════════════════════════════════ */
342
-
343
- --gray-0: #ffffff;
344
- --gray-1: #fafafa;
345
- --gray-2: #f5f5f5;
346
- --gray-3: #eeeeee;
347
- --gray-4: #e0e0e0;
348
- --gray-5: #cccccc;
349
- --gray-6: #999999;
350
- --gray-7: #666666;
351
- --gray-8: #333333;
352
- --gray-9: #111111;
353
- }
354
-
355
- /* ═══════════════════════════════════════════════════════════
356
- SECTION 2 — 语义映射 (Semantic Mapping)
357
- ═══════════════════════════════════════════════════════════ */
358
-
359
- body.theme-custom {
360
-
361
- /* ── 2.1 编辑区表面色 ── */
362
- --bg-color: var(--seed-surface);
363
- --surface-color: var(--seed-panel);
364
- --surface-alt: var(--seed-panel-alt);
365
-
366
- /* ── 2.2 编辑区文字色 ── */
367
- --text-color: var(--seed-ink);
368
- --heading-color: var(--seed-ink);
369
- --text-muted: var(--seed-ink-muted);
370
- --text-dim: var(--seed-ink-dim);
371
-
372
- /* ── 2.3 链接 & 强调 ── */
373
- --link-color: var(--seed-ink);
374
- --accent-color: var(--seed-ink);
375
- --accent-dark: var(--seed-ink);
376
- --accent-light: var(--gray-4);
377
- --selection-bg: rgba(0, 0, 0, 0.12);
378
-
379
- /* ── 2.4 边框 & 分割线 ── */
380
- --border-color: var(--seed-border);
381
- --blockquote-border: var(--seed-ink);
382
- --hr-color: var(--seed-ink);
383
-
384
- /* ── 2.5 内联代码 ── */
385
- --code-bg: var(--gray-3);
386
- --code-color: var(--seed-ink);
387
-
388
- /* ── 2.6 代码块 ── */
389
- --code-block-bg: var(--seed-panel);
390
- --code-block-text: var(--seed-ink);
391
- --code-block-color: var(--seed-ink);
392
-
393
- /* ── 2.7 引用块 ── */
394
- --blockquote-bg: var(--seed-panel-alt);
395
-
396
- /* ── 2.8 表格 — 三线表规范 ── */
397
- --table-header-bg: transparent;
398
- --table-border: var(--seed-ink);
399
-
400
- /* ── 2.9 表格 — 表头文字 ── */
401
- --table-header-text: var(--seed-ink);
402
-
403
- /* ── 2.10 滚动条 ── */
404
- --scrollbar-thumb: var(--gray-5);
405
- --scrollbar-thumb-hover: var(--gray-6);
406
- }
407
-
408
- /* ═══════════════════════════════════════════════════════════
409
- SECTION 3 — Mermaid 图表变量
410
- 学术论文图表:白底黑框灰度,印刷友好
411
- ═══════════════════════════════════════════════════════════ */
412
-
413
- body.theme-custom {
414
-
415
- /* ── 3.1 容器 ── */
416
- --mermaid-background: var(--seed-surface);
417
- --mermaid-border-color: var(--gray-5);
418
- --mermaid-border-radius: var(--radius-md);
419
- --mermaid-padding: 20px;
420
-
421
- /* ── 3.2 字体 ── */
422
- --mermaid-font-family: var(--font-mermaid);
423
- --mermaid-font-size: var(--font-size-mermaid);
424
-
425
- /* ── 3.3 节点 ── */
426
- --mermaid-node-fill: var(--gray-3);
427
- --mermaid-node-bkg: var(--gray-2);
428
- --mermaid-node-stroke: var(--gray-8);
429
- --mermaid-node-stroke-width: 1px;
430
- --mermaid-node-text: var(--seed-ink);
431
-
432
- /* ── 3.4 连线 ── */
433
- --mermaid-edge-stroke: var(--gray-8);
434
- --mermaid-edge-stroke-width: 1px;
435
-
436
- /* ── 3.5 聚类 ── */
437
- --mermaid-cluster-fill: var(--gray-1);
438
- --mermaid-cluster-stroke: var(--gray-7);
439
-
440
- /* ── 3.6 标签 ── */
441
- --mermaid-label-text: var(--seed-ink);
442
- --mermaid-edge-label-text: var(--seed-ink);
443
- --mermaid-edge-label-bg: var(--seed-surface);
444
-
445
- /* ── 3.7 标题 & 坐标轴 ── */
446
- --mermaid-title-text: var(--seed-ink);
447
- --mermaid-axis-text: var(--gray-7);
448
- --mermaid-highlight: var(--gray-8);
449
-
450
- /* ── 3.8 人物节点 ── */
451
- --mermaid-person-stroke: var(--gray-8);
452
- --mermaid-person-bkg: var(--gray-2);
453
-
454
- /* ── 3.9 偏移 ── */
455
- --mermaid-label-offset-y: 0px;
456
-
457
- /* ── 3.10 灰度色板(多系列区分) ── */
458
- --mermaid-cscale0: var(--gray-6);
459
- --mermaid-cscale1: var(--gray-7);
460
- --mermaid-cscale2: var(--gray-6);
461
- --mermaid-cscale3: var(--gray-8);
462
- --mermaid-cscale4: var(--gray-6);
463
- --mermaid-cscale5: var(--gray-7);
464
- --mermaid-cscale6: var(--gray-8);
465
- --mermaid-cscale7: var(--gray-6);
466
- --mermaid-cscale8: var(--gray-7);
467
- --mermaid-cscale9: var(--gray-6);
468
- --mermaid-cscale10: var(--gray-8);
469
- --mermaid-cscale11: var(--gray-7);
470
- }
471
-
472
- /* ═══════════════════════════════════════════════════════════
473
- SECTION 4 — 排版微调变量
474
- ═══════════════════════════════════════════════════════════ */
475
-
476
- body.theme-custom {
477
- --line-height-base: var(--line-height-body);
478
- }
479
-
480
- pre {
481
- --select-text-bg-color: rgba(0, 0, 0, 0.12);
482
- --select-text-font-color: var(--seed-ink);
483
- }
484
-
485
- /* ═══════════════════════════════════════════════════════════════
486
- SECTION 5 — 选择器级微调 (Selector Fine-Tuning)
487
- ═══════════════════════════════════════════════════════════════ */
488
-
489
- /* ── 5.1 全局:纯白底 + 宋体 + 两端对齐 ── */
490
- html { font-size: var(--font-size-root); -webkit-font-smoothing: antialiased; }
491
-
492
- body.theme-custom, html, body {
493
- background-color: var(--bg-color);
494
- color: var(--text-color);
495
- font-family: var(--font-body);
496
- line-height: var(--line-height-body);
497
- text-align: justify;
498
- }
499
-
500
- body.theme-custom #editor { max-width: var(--content-width); margin: 0 auto; padding: var(--page-margin-top) var(--page-margin-right) var(--page-margin-bottom) var(--page-margin-left); }
501
- #write { max-width: var(--content-width); margin: 0 auto; padding: 0; }
502
- #write > ul:first-child, #write > ol:first-child { margin-top: 30px; }
503
-
504
- /* ── 5.2 标题:黑体,GB/T 7713 学术论文规范 ── */
505
- h1, h2, h3, h4, h5, h6,
506
- body.theme-custom h1, body.theme-custom h2, body.theme-custom h3,
507
- body.theme-custom h4, body.theme-custom h5, body.theme-custom h6 {
508
- position: relative;
509
- color: var(--heading-color);
510
- font-family: var(--font-heading);
511
- font-weight: 700;
512
- line-height: var(--line-height-heading);
513
- text-indent: 0;
514
- }
515
-
516
- body.theme-custom h1 {
517
- font-size: calc(var(--font-size-root) * var(--font-scale-h1));
518
- text-align: center;
519
- margin-top: 32px;
520
- margin-bottom: 24px;
521
- }
522
-
523
- body.theme-custom h2 {
524
- font-size: calc(var(--font-size-root) * var(--font-scale-h2));
525
- margin-top: 26px;
526
- margin-bottom: 14px;
527
- }
528
-
529
- body.theme-custom h3 {
530
- font-size: calc(var(--font-size-root) * var(--font-scale-h3));
531
- margin-top: 18px;
532
- margin-bottom: 10px;
533
- }
534
-
535
- body.theme-custom h4 {
536
- font-size: calc(var(--font-size-root) * var(--font-scale-h4));
537
- margin-top: 18px;
538
- margin-bottom: 8px;
539
- }
540
-
541
- body.theme-custom h5 {
542
- font-size: calc(var(--font-size-root) * var(--font-scale-h5));
543
- margin-top: 16px;
544
- margin-bottom: 6px;
545
- }
546
-
547
- body.theme-custom h6 {
548
- font-size: calc(var(--font-size-root) * var(--font-scale-h6));
549
- color: var(--text-muted);
550
- margin-top: 14px;
551
- margin-bottom: 6px;
552
- >>>>>>> 03f391d7d49b3b6760b57f5eaed15d463308f22a
553
- }
554
-
555
- h1:hover a.anchor, h2:hover a.anchor, h3:hover a.anchor,
556
- h4:hover a.anchor, h5:hover a.anchor, h6:hover a.anchor { text-decoration: none; }
557
-
558
- <<<<<<< HEAD
559
- /* ── 4. 内联元素 ── */
560
- /* 正文:宋体 小四号 (12pt),行距 1.5 倍,首行缩进 2 字符 */
561
- body.theme-custom p, body.theme-custom #write > p {
562
- margin: 0;
563
- line-height: 1.5;
564
- text-align: justify;
565
- text-indent: 2em;
566
- font-size: 12pt;
567
- }
568
- body.theme-custom p + p { margin-top: 0; }
569
-
570
- strong, body.theme-custom strong { color: var(--gray-9); font-weight: 700; }
571
- em, body.theme-custom em { font-style: italic; color: var(--gray-9); }
572
- em strong, strong em, body.theme-custom em strong, body.theme-custom strong em { color: var(--gray-9); font-weight: 700; }
573
-
574
- a, body.theme-custom a { color: var(--gray-9); text-decoration: none; border-bottom: 1px solid var(--gray-9); }
575
- a:hover, body.theme-custom a:hover { text-decoration: none; }
576
-
577
- u, body.theme-custom u {
578
- text-decoration: none;
579
- border-bottom: 1px solid var(--gray-9);
580
- padding-bottom: 1px;
581
- }
582
-
583
- mark, body.theme-custom mark {
584
- background: var(--gray-4);
585
- color: var(--gray-9);
586
- padding: 1px 4px;
587
- border-radius: 0;
588
- }
589
-
590
- del, s { color: var(--gray-7); }
591
-
592
- /* ── 5. 引用块(左缩进对齐正文,段前段后 0.5 行) ── */
593
- blockquote, body.theme-custom blockquote {
594
- margin: 8pt 0;
595
- padding: 10px 16px 10px 20px;
596
- border-left: 3px solid var(--gray-9);
597
- background: var(--gray-1);
598
- color: var(--gray-9);
599
- font-family: "SimSun", "Songti SC", "Source Han Serif SC", "Noto Serif SC", Georgia, "Times New Roman", serif;
600
- font-size: 10.5pt;
601
- }
602
- blockquote p, body.theme-custom blockquote p { margin: 3pt 0; text-indent: 0; }
603
-
604
- /* ── 6. 分割线 ── */
605
- hr, body.theme-custom hr { border: none; border-top: 1px solid var(--gray-9); margin: 24pt 0; height: 0; }
606
-
607
- /* ── 7. 列表(GB/T 7713 学术论文规范) ── */
608
-
609
- /* ── 7.0 重置 ── */
610
- body.theme-custom ul,
611
- body.theme-custom ol,
612
- body.theme-custom li {
613
- margin: 0;
614
- padding: 0;
615
- }
616
-
617
- /* ── 7.1 容器 ── */
618
- =======
619
- /* ── 5.3 正文:宋体,首行缩进 2em ── */
620
- body.theme-custom p, body.theme-custom #write > p {
621
- margin: 0;
622
- line-height: var(--line-height-body);
623
- text-align: justify;
624
- text-indent: 2em;
625
- font-size: var(--font-size-root);
626
- }
627
- body.theme-custom p + p { margin-top: 0; }
628
-
629
- /* ── 5.4 内联元素 ── */
630
- strong, body.theme-custom strong { color: var(--text-color); font-weight: 700; }
631
- em, body.theme-custom em { font-style: italic; color: var(--text-color); }
632
- em strong, strong em, body.theme-custom em strong, body.theme-custom strong em { color: var(--text-color); font-weight: 700; }
633
-
634
- a, body.theme-custom a { color: var(--link-color); text-decoration: none; border-bottom: 1px solid var(--link-color); }
635
- a:hover, body.theme-custom a:hover { text-decoration: none; }
636
-
637
- u, body.theme-custom u {
638
- text-decoration: none;
639
- border-bottom: 1px solid var(--border-color);
640
- padding-bottom: 1px;
641
- }
642
-
643
- mark, body.theme-custom mark {
644
- background: var(--accent-light);
645
- color: var(--text-color);
646
- padding: 1px 4px;
647
- border-radius: var(--radius-sm);
648
- }
649
-
650
- del, s { color: var(--text-dim); }
651
-
652
- /* ── 5.5 引用块 ── */
653
- blockquote, body.theme-custom blockquote {
654
- margin: 10px 0;
655
- padding: 10px 16px 10px 20px;
656
- border-left: 3px solid var(--blockquote-border);
657
- background: var(--blockquote-bg);
658
- color: var(--text-color);
659
- font-family: var(--font-body);
660
- font-size: 14px;
661
- }
662
- blockquote p, body.theme-custom blockquote p { margin: 4px 0; text-indent: 0; }
663
-
664
- /* ── 5.6 分割线 ── */
665
- hr, body.theme-custom hr { border: none; border-top: 1px solid var(--hr-color); margin: 32px 0; height: 0; }
666
-
667
- /* ── 5.7 列表:GB/T 7713 学术论文规范 ── */
668
- body.theme-custom ul, body.theme-custom ol, body.theme-custom li { margin: 0; padding: 0; }
669
-
670
- >>>>>>> 03f391d7d49b3b6760b57f5eaed15d463308f22a
671
- body.theme-custom #editor .ProseMirror > ul,
672
- body.theme-custom #editor .ProseMirror > ol,
673
- body.theme-custom #write > ul:first-of-type,
674
- body.theme-custom #write > ol:first-of-type {
675
- <<<<<<< HEAD
676
- margin: 4pt 0 4pt 2em;
677
- padding-left: 1.5em;
678
- list-style: none;
679
- counter-reset: ol-lv1 ul-lv1;
680
- }
681
- body.theme-custom ul ul,
682
- body.theme-custom ul ol,
683
- body.theme-custom ol ul,
684
- body.theme-custom ol ol {
685
- margin: 0;
686
- padding-left: 1.5em;
687
- list-style: none;
688
- }
689
-
690
- /* ── 7.2 列表项 ── */
691
- body.theme-custom li {
692
- line-height: 1.6;
693
- font-family: "SimSun", "Songti SC", "Source Han Serif SC", "Noto Serif SC", Georgia, "Times New Roman", serif;
694
- font-size: 12pt;
695
- font-weight: normal;
696
- text-indent: 0;
697
- list-style: none;
698
- padding: 1pt 0;
699
- }
700
-
701
- /* ::before 符号区域:统一 inline 模式,与文字同行基线 */
702
- body.theme-custom li::before {
703
- content: "";
704
- display: inline;
705
- margin-right: 0.35em;
706
- }
707
-
708
- /* ProseMirror li > p 内联化 */
709
- body.theme-custom #editor .ProseMirror li > p {
710
- display: inline;
711
- margin: 0;
712
- padding: 0;
713
- text-indent: 0;
714
- font-size: inherit;
715
- font-weight: inherit;
716
- }
717
-
718
- /* ── 7.3 有序列表编号体系 ── */
719
-
720
- /* 一级有序:1. 2. 3. */
721
- body.theme-custom ol > li {
722
- counter-increment: ol-lv1;
723
- }
724
- body.theme-custom ol > li::before {
725
- content: counter(ol-lv1) ".";
726
- font-family: "SimSun", "Songti SC", Georgia, serif;
727
- }
728
-
729
- /* 二级有序:(1) (2) (3) */
730
- body.theme-custom ol > li > ol {
731
- counter-reset: ol-lv2;
732
- }
733
- body.theme-custom ol > li > ol > li {
734
- counter-increment: ol-lv2;
735
- }
736
- body.theme-custom ol > li > ol > li::before {
737
- content: "(" counter(ol-lv2) ")";
738
- font-family: "SimSun", "Songti SC", Georgia, serif;
739
- }
740
-
741
- /* 三级有序:① ② ③ */
742
- body.theme-custom ol > li > ol > li > ol {
743
- counter-reset: ol-lv3;
744
- }
745
- body.theme-custom ol > li > ol > li > ol > li {
746
- counter-increment: ol-lv3;
747
- }
748
- body.theme-custom ol > li > ol > li > ol > li::before {
749
- content: counter(ol-lv3, cjk-ideographic) "";
750
- font-family: "SimSun", "Songti SC", Georgia, serif;
751
- }
752
-
753
- /* 四级+有序:i. ii. iii. */
754
- body.theme-custom ol ol ol ol > li::before {
755
- content: counter(list-item, lower-roman) ".";
756
- font-family: "SimSun", "Songti SC", Georgia, serif;
757
- }
758
-
759
- /* ── 7.4 无序列表符号体系 ── */
760
-
761
- /* 一级无序:■ 实心方块 */
762
- body.theme-custom ul > li {
763
- counter-increment: ul-lv1;
764
- }
765
- body.theme-custom ul > li::before {
766
- content: "\25A0\00A0";
767
- }
768
-
769
- /* 二级无序:● 实心圆点 */
770
- body.theme-custom ul > li > ul {
771
- counter-reset: ul-lv2;
772
- }
773
- body.theme-custom ul > li > ul > li {
774
- counter-increment: ul-lv2;
775
- }
776
- body.theme-custom ul > li > ul > li::before {
777
- content: "\25CF\00A0";
778
- }
779
-
780
- /* 三级无序:○ 空心圆圈 */
781
- body.theme-custom ul > li > ul > li > ul {
782
- counter-reset: ul-lv3;
783
- }
784
- body.theme-custom ul > li > ul > li > ul > li {
785
- counter-increment: ul-lv3;
786
- }
787
- body.theme-custom ul > li > ul > li > ul > li::before {
788
- content: "\25CB\00A0";
789
- }
790
-
791
- /* 四级+无序:◆ 菱形 */
792
- body.theme-custom ul ul ul ul > li::before {
793
- content: "\25C6\00A0";
794
- }
795
-
796
- /* ── 7.5 混合嵌套(有序↔无序交叉) ── */
797
-
798
- /* 无序 → 有序 */
799
- body.theme-custom ul > li > ol {
800
- counter-reset: ol-mix2;
801
- }
802
- body.theme-custom ul > li > ol > li {
803
- counter-increment: ol-mix2;
804
- }
805
- body.theme-custom ul > li > ol > li::before {
806
- content: "(" counter(ol-mix2) ")";
807
- font-family: "SimSun", "Songti SC", Georgia, serif;
808
- }
809
- body.theme-custom ul > li > ol > li > ol {
810
- counter-reset: ol-mix3;
811
- }
812
- body.theme-custom ul > li > ol > li > ol > li {
813
- counter-increment: ol-mix3;
814
- }
815
- body.theme-custom ul > li > ol > li > ol > li::before {
816
- content: counter(ol-mix3, lower-roman) ".";
817
- font-family: "SimSun", "Songti SC", Georgia, serif;
818
- }
819
-
820
- /* 有序 → 无序 */
821
- body.theme-custom ol > li > ul {
822
- counter-reset: ul-mix2;
823
- }
824
- body.theme-custom ol > li > ul > li {
825
- counter-increment: ul-mix2;
826
- }
827
- body.theme-custom ol > li > ul > li::before {
828
- content: "\25CF\00A0";
829
- }
830
- body.theme-custom ol > li > ul > li > ul {
831
- counter-reset: ul-mix3;
832
- }
833
- body.theme-custom ol > li > ul > li > ul > li {
834
- counter-increment: ul-mix3;
835
- }
836
- body.theme-custom ol > li > ul > li > ul > li::before {
837
- content: "\25CB\00A0";
838
- }
839
-
840
- .md-task-list-item > input { margin-left: -1.3em; margin-top: 0.3em; }
841
-
842
- /* ── 8. 内联代码 ── */
843
- code, tt,
844
- body.theme-custom code, body.theme-custom tt {
845
- font-family: "Courier New", "Consolas", "Source Code Pro", monospace;
846
- font-size: 0.88em;
847
- padding: 1px 6px;
848
- margin: 0 1px;
849
- background: var(--gray-3);
850
- border-radius: 0;
851
- color: var(--gray-9);
852
- border: none;
853
- }
854
-
855
- /* ── 9. 代码块 ── */
856
- pre.md-fences {
857
- font-family: "Courier New", "Consolas", "Source Code Pro", monospace;
858
- font-size: 10.5pt;
859
- line-height: 1.5;
860
- background: var(--gray-2);
861
- color: var(--gray-9);
862
- padding: 14px 18px;
863
- border-radius: 0;
864
- margin: 12pt 0;
865
- overflow-x: auto;
866
- border: 1px solid var(--gray-9);
867
- =======
868
- margin: 6px 0 6px 2em;
869
- padding-left: 1.5em;
870
- list-style: none;
871
- counter-reset: ol-lv1 ul-lv1;
872
- }
873
-
874
- body.theme-custom ul ul, body.theme-custom ul ol,
875
- body.theme-custom ol ul, body.theme-custom ol ol {
876
- margin: 0;
877
- padding-left: 1.5em;
878
- list-style: none;
879
- }
880
-
881
- body.theme-custom li {
882
- line-height: 1.6;
883
- font-family: var(--font-body);
884
- font-size: var(--font-size-root);
885
- font-weight: normal;
886
- text-indent: 0;
887
- list-style: none;
888
- padding: 2px 0;
889
- }
890
-
891
- body.theme-custom li::before { content: ""; display: inline; margin-right: 0.35em; }
892
-
893
- /* ProseMirror li > p 内联化 */
894
- body.theme-custom #editor .ProseMirror li > p {
895
- display: inline;
896
- margin: 0;
897
- padding: 0;
898
- text-indent: 0;
899
- font-size: inherit;
900
- font-weight: inherit;
901
- font-family: inherit;
902
- }
903
-
904
- body.theme-custom li strong { font-family: inherit; font-weight: 700; }
905
-
906
- /* 有序列表:1. → (1) → ① → i. */
907
- body.theme-custom ol > li { counter-increment: ol-lv1; }
908
- body.theme-custom ol > li::before { content: counter(ol-lv1) "."; font-family: var(--font-body); }
909
-
910
- body.theme-custom ol > li > ol { counter-reset: ol-lv2; }
911
- body.theme-custom ol > li > ol > li { counter-increment: ol-lv2; }
912
- body.theme-custom ol > li > ol > li::before { content: "(" counter(ol-lv2) ")"; font-family: var(--font-body); }
913
-
914
- body.theme-custom ol > li > ol > li > ol { counter-reset: ol-lv3; }
915
- body.theme-custom ol > li > ol > li > ol > li { counter-increment: ol-lv3; }
916
- body.theme-custom ol > li > ol > li > ol > li::before { content: counter(ol-lv3, cjk-ideographic) ""; font-family: var(--font-body); }
917
-
918
- body.theme-custom ol ol ol ol > li::before { content: counter(list-item, lower-roman) "."; font-family: var(--font-body); }
919
-
920
- /* 无序列表:■ → ● → ○ → ◆ */
921
- body.theme-custom ul > li { counter-increment: ul-lv1; }
922
- body.theme-custom ul > li::before { content: "\25A0\00A0"; }
923
-
924
- body.theme-custom ul > li > ul { counter-reset: ul-lv2; }
925
- body.theme-custom ul > li > ul > li { counter-increment: ul-lv2; }
926
- body.theme-custom ul > li > ul > li::before { content: "\25CF\00A0"; }
927
-
928
- body.theme-custom ul > li > ul > li > ul { counter-reset: ul-lv3; }
929
- body.theme-custom ul > li > ul > li > ul > li { counter-increment: ul-lv3; }
930
- body.theme-custom ul > li > ul > li > ul > li::before { content: "\25CB\00A0"; }
931
-
932
- body.theme-custom ul ul ul ul > li::before { content: "\25C6\00A0"; }
933
-
934
- /* 混合嵌套 */
935
- body.theme-custom ul > li > ol { counter-reset: ol-mix2; }
936
- body.theme-custom ul > li > ol > li { counter-increment: ol-mix2; }
937
- body.theme-custom ul > li > ol > li::before { content: "(" counter(ol-mix2) ")"; font-family: var(--font-body); }
938
- body.theme-custom ul > li > ol > li > ol { counter-reset: ol-mix3; }
939
- body.theme-custom ul > li > ol > li > ol > li { counter-increment: ol-mix3; }
940
- body.theme-custom ul > li > ol > li > ol > li::before { content: counter(ol-mix3, lower-roman) "."; font-family: var(--font-body); }
941
-
942
- body.theme-custom ol > li > ul { counter-reset: ul-mix2; }
943
- body.theme-custom ol > li > ul > li { counter-increment: ul-mix2; }
944
- body.theme-custom ol > li > ul > li::before { content: "\25CF\00A0"; }
945
- body.theme-custom ol > li > ul > li > ul { counter-reset: ul-mix3; }
946
- body.theme-custom ol > li > ul > li > ul > li { counter-increment: ul-mix3; }
947
- body.theme-custom ol > li > ul > li > ul > li::before { content: "\25CB\00A0"; }
948
-
949
- .md-task-list-item > input { margin-left: -1.3em; margin-top: 0.3em; }
950
-
951
- /* ── 5.8 内联代码 ── */
952
- code, tt, body.theme-custom code, body.theme-custom tt {
953
- font-family: var(--font-code);
954
- font-size: 0.88em;
955
- padding: 1px 6px;
956
- margin: 0 1px;
957
- background: var(--code-bg);
958
- border-radius: var(--radius-sm);
959
- color: var(--code-color);
960
- border: none;
961
- }
962
-
963
- /* ── 5.9 代码块 ── */
964
- pre.md-fences {
965
- font-family: var(--font-code);
966
- font-size: 14px;
967
- line-height: var(--line-height-code);
968
- background: var(--code-block-bg);
969
- color: var(--code-block-text);
970
- padding: 14px 18px;
971
- border-radius: var(--radius-sm);
972
- margin: 16px 0;
973
- overflow-x: auto;
974
- border: 1px solid var(--border-color);
975
- >>>>>>> 03f391d7d49b3b6760b57f5eaed15d463308f22a
976
- }
977
- pre.md-fences code { background: transparent; color: inherit; padding: 0; margin: 0; border-radius: 0; border: none; }
978
-
979
- body.theme-custom #editor .ProseMirror pre {
980
- <<<<<<< HEAD
981
- font-family: "Courier New", "Consolas", "Source Code Pro", monospace;
982
- font-size: 10.5pt;
983
- line-height: 1.5;
984
- background: var(--gray-2) !important;
985
- color: var(--gray-9) !important;
986
- padding: 14px 18px;
987
- border-radius: 0;
988
- margin: 12pt 0;
989
- overflow-x: auto;
990
- border: 1px solid var(--gray-9);
991
- }
992
- body.theme-custom #editor .ProseMirror pre code {
993
- background: transparent !important;
994
- color: var(--gray-9) !important;
995
- padding: 0; margin: 0; border-radius: 0; border: none;
996
- }
997
-
998
- /* ── 10. 代码语法高亮(黑白打印友好) ── */
999
- .cm-s-inner { font-family: "Courier New", "Consolas", "Source Code Pro", monospace; font-size: 10.5pt; line-height: 1.5; }
1000
-
1001
- body.theme-custom .token.comment, body.theme-custom .token.prolog,
1002
- body.theme-custom .token.doctype, body.theme-custom .token.cdata,
1003
- .cm-s-inner .cm-comment, .cm-s-inner .cm-quote, .cm-s-inner .cm-hr { color: var(--gray-7); font-style: italic; }
1004
-
1005
- body.theme-custom .token.punctuation, .cm-s-inner .cm-meta { color: var(--gray-8); }
1006
-
1007
- body.theme-custom .token.keyword, body.theme-custom .token.important,
1008
- .cm-s-inner .cm-keyword { color: var(--gray-9); font-weight: 700; }
1009
-
1010
- body.theme-custom .token.boolean, body.theme-custom .token.builtin,
1011
- body.theme-custom .token.tag, body.theme-custom .token.selector,
1012
- body.theme-custom .token.constant, body.theme-custom .token.deleted,
1013
- .cm-s-inner .cm-atom, .cm-s-inner .cm-builtin,
1014
- .cm-s-inner .cm-tag, .cm-s-inner .cm-error { color: var(--gray-9); font-weight: 600; }
1015
-
1016
- body.theme-custom .token.string, body.theme-custom .token.attr-value,
1017
- body.theme-custom .token.symbol, body.theme-custom .token.inserted,
1018
- .cm-s-inner .cm-string { color: var(--gray-8); }
1019
-
1020
- body.theme-custom .token.number, .cm-s-inner .cm-number { color: var(--gray-9); }
1021
-
1022
- body.theme-custom .token.function, body.theme-custom .token.class-name,
1023
- body.theme-custom .token.variable, body.theme-custom .token.attr-name,
1024
- body.theme-custom .token.property, body.theme-custom .token.entity,
1025
- .cm-s-inner .cm-def, .cm-s-inner .cm-variable-2,
1026
- .cm-s-inner .cm-attribute, .cm-s-inner .cm-property,
1027
- .cm-s-inner .cm-header { color: var(--gray-9); }
1028
-
1029
- .cm-s-inner .cm-header { font-weight: 700; }
1030
- body.theme-custom .token.url, .cm-s-inner .cm-link { color: var(--gray-9); text-decoration: underline; }
1031
-
1032
- body.theme-custom .token.operator, .cm-s-inner .cm-operator { color: var(--gray-8); }
1033
-
1034
- body.theme-custom .token.regex { color: var(--gray-8); }
1035
- .cm-s-inner .cm-variable { color: var(--gray-9); }
1036
-
1037
- /* ── 11. 表格(GB/T 7713 三线表规范) ── */
1038
-
1039
- /* 表格容器 */
1040
- table, body.theme-custom table {
1041
- width: 100%;
1042
- border-collapse: collapse;
1043
- margin: 14pt auto;
1044
- font-size: 10.5pt;
1045
- line-height: 1.5;
1046
- }
1047
-
1048
- /* 表头单元格:黑体 五号 加粗 居中,浅灰底色(可选,三线表通常透明) */
1049
- table th, body.theme-custom table th {
1050
- background: var(--table-header-bg);
1051
- font-weight: 700;
1052
- color: var(--gray-9);
1053
- padding: 6pt 8pt;
1054
- text-align: center;
1055
- text-indent: 0;
1056
- vertical-align: middle;
1057
- font-family: "SimHei", "Heiti SC", "Source Han Sans SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;
1058
- }
1059
-
1060
- /* 数据单元格:宋体 五号 左对齐 无首行缩进 */
1061
- table td, body.theme-custom table td {
1062
- padding: 6pt 8pt;
1063
- text-align: left;
1064
- text-indent: 0;
1065
- vertical-align: top;
1066
- font-family: "SimSun", "Songti SC", "Source Han Serif SC", "Noto Serif SC", Georgia, serif;
1067
- }
1068
-
1069
- /* 表格内段落:取消首行缩进,紧凑行距 */
1070
- table p, body.theme-custom table p,
1071
- table td p, body.theme-custom table td p {
1072
- margin: 0;
1073
- padding: 0;
1074
- text-indent: 0;
1075
- text-align: left;
1076
- line-height: 1.4;
1077
- font-size: inherit;
1078
- }
1079
-
1080
- /* 表格内列表:继承全局 inline 符号模式,紧凑排列 */
1081
- table ul, table ol,
1082
- body.theme-custom table ul,
1083
- body.theme-custom table ol {
1084
- margin: 2pt 0;
1085
- padding-left: 1.5em;
1086
- }
1087
- table li, body.theme-custom table li {
1088
- margin: 1pt 0;
1089
- padding-left: 0;
1090
- font-size: inherit;
1091
- }
1092
- table li::before, body.theme-custom table li::before {
1093
- display: inline;
1094
- margin-right: 0.35em;
1095
- }
1096
-
1097
- /* 去掉 hover 效果 */
1098
- table tr:hover td, body.theme-custom table tr:hover td {
1099
- background: transparent;
1100
- }
1101
-
1102
- /* ── 11.1 三线表样式(学术论文标准) ── */
1103
- /* 顶线 + 表头底线 + 底线,无竖线 */
1104
-
1105
- body.theme-custom table {
1106
- border-top: 1.5pt solid var(--gray-9);
1107
- border-bottom: 1.5pt solid var(--gray-9);
1108
- border-left: none;
1109
- border-right: none;
1110
- }
1111
-
1112
- body.theme-custom table th {
1113
- border: none;
1114
- border-bottom: 0.75pt solid var(--gray-9);
1115
- background: transparent; /* 三线表标准:表头透明或极浅 */
1116
- }
1117
-
1118
- body.theme-custom table td {
1119
- border: none;
1120
- border-bottom: none;
1121
- }
1122
-
1123
- /* ── 12. 图片(图题:宋体 五号 10.5pt,居中,位于图下方) ── */
1124
- img, body.theme-custom img { max-width: 100%; }
1125
- p > img:only-child, body.theme-custom p > img:only-child { display: block; margin: 12pt auto; }
1126
- body.theme-custom figure { margin: 12pt 0; text-align: center; }
1127
- body.theme-custom figcaption {
1128
- font-family: "SimSun", "Songti SC", "Source Han Serif SC", "Noto Serif SC", Georgia, serif;
1129
- font-size: 10.5pt;
1130
- color: var(--gray-9);
1131
- margin-top: 6pt;
1132
- text-align: center;
1133
- }
1134
-
1135
- /* ── 13. 数学公式(纯黑白) ── */
1136
-
1137
- /* ColaMD */
1138
- body.theme-custom .math-block {
1139
- background: var(--gray-0);
1140
- padding: 12px 0;
1141
- margin: 12pt 0;
1142
- border-radius: 0;
1143
- border: none;
1144
- text-align: center;
1145
- overflow-x: auto;
1146
- }
1147
- body.theme-custom .math-block .katex,
1148
- body.theme-custom .math-block .katex *,
1149
- body.theme-custom .math-block .MathJax,
1150
- body.theme-custom .math-block .MathJax *,
1151
- body.theme-custom .math-inline,
1152
- body.theme-custom .math-inline .katex,
1153
- body.theme-custom .math-inline .katex *,
1154
- .md-inline-math script,
1155
- .md-inline-math .MathJax {
1156
- color: var(--gray-9) !important;
1157
- }
1158
-
1159
- /* ── 14. Mermaid 图表容器 ── */
1160
- /* 配色全部引用前置变量,修改变量即可统一控制所有图表 */
1161
-
1162
- .md-diagram-panel { margin: 1.5em 0; }
1163
-
1164
- /* ── 14.0 图表备注(图题):宋体 五号 10.5pt,居中,GB/T 7713 ── */
1165
- body.theme-custom .mermaid-block + p {
1166
- font-family: "SimSun", "Songti SC", "Source Han Serif SC", "Noto Serif SC", Georgia, serif;
1167
- font-size: 10.5pt;
1168
- text-align: center;
1169
- color: var(--gray-9);
1170
- margin-top: 6pt;
1171
- }
1172
-
1173
- body.theme-custom .mermaid-block {
1174
- background: var(--mermaid-background);
1175
- border: 1px solid var(--mermaid-border-color);
1176
- border-radius: var(--mermaid-border-radius);
1177
- padding: var(--mermaid-padding);
1178
- margin: 1.5em 0;
1179
- overflow-x: auto;
1180
- }
1181
- body.theme-custom .mermaid-preview { background: transparent; border: none; padding: 0; margin: 0; }
1182
- .md-diagram-panel.md-mermaid {
1183
- background: var(--mermaid-background);
1184
- border: 1px solid var(--mermaid-border-color);
1185
- border-radius: var(--mermaid-border-radius);
1186
- padding: var(--mermaid-padding);
1187
- margin: 1.5em 0;
1188
- overflow-x: auto;
1189
- }
1190
- .md-diagram-panel.md-mermaid svg,
1191
- body.theme-custom .mermaid-preview svg { max-width: 100%; height: auto; }
1192
-
1193
- /* ── 14.1 全局字体:黑体 小五号 9pt(GB/T 7713 图表字),独立于正文 ── */
1194
- body.theme-custom .mermaid-preview svg text,
1195
- body.theme-custom .mermaid-preview svg tspan {
1196
- font-family: "SimHei", "Heiti SC", "Source Han Sans SC", "Noto Sans SC", "Microsoft YaHei", sans-serif !important;
1197
- font-size: 9pt !important;
1198
- fill: var(--mermaid-node-text) !important;
1199
- }
1200
- body.theme-custom .mermaid-preview svg foreignObject span,
1201
- body.theme-custom .mermaid-preview svg foreignObject p,
1202
- body.theme-custom .mermaid-preview svg foreignObject div,
1203
- body.theme-custom .mermaid-preview svg .nodeLabel span,
1204
- body.theme-custom .mermaid-preview svg .edgeLabel span {
1205
- font-family: "SimHei", "Heiti SC", "Source Han Sans SC", "Noto Sans SC", "Microsoft YaHei", sans-serif !important;
1206
- font-size: 9pt !important;
1207
- color: var(--mermaid-node-text) !important;
1208
- }
1209
- body.theme-custom .mermaid-preview svg .titleText,
1210
- body.theme-custom .mermaid-preview svg .pieTitleText {
1211
- font-size: 9pt !important;
1212
- fill: var(--mermaid-title-text) !important;
1213
- }
1214
-
1215
- /* ── 14.2 通用节点色块:浅灰填色 + 深灰边框 ── */
1216
- body.theme-custom .mermaid-preview svg .node rect,
1217
- body.theme-custom .mermaid-preview svg .node circle,
1218
- body.theme-custom .mermaid-preview svg .node ellipse,
1219
- body.theme-custom .mermaid-preview svg .node polygon,
1220
- body.theme-custom .mermaid-preview svg .node path {
1221
- fill: var(--mermaid-node-bkg) !important;
1222
- stroke: var(--mermaid-node-stroke) !important;
1223
- stroke-width: var(--mermaid-node-stroke-width) !important;
1224
- }
1225
- body.theme-custom .mermaid-preview svg .node.default rect,
1226
- body.theme-custom .mermaid-preview svg .node rect[fill] {
1227
- fill: var(--mermaid-node-bkg) !important;
1228
- stroke: var(--mermaid-node-stroke) !important;
1229
- }
1230
-
1231
- /* ── 14.3 连线/边线 ── */
1232
- body.theme-custom .mermaid-preview svg .edgePath .path {
1233
- stroke: var(--mermaid-edge-stroke) !important;
1234
- stroke-width: var(--mermaid-edge-stroke-width) !important;
1235
- }
1236
- body.theme-custom .mermaid-preview svg defs marker path {
1237
- fill: var(--mermaid-edge-stroke) !important;
1238
- stroke: var(--mermaid-edge-stroke) !important;
1239
- }
1240
- body.theme-custom .mermaid-preview svg .relation {
1241
- stroke: var(--mermaid-edge-stroke) !important;
1242
- }
1243
-
1244
- /* ── 14.4 聚类/子图 ── */
1245
- body.theme-custom .mermaid-preview svg .cluster rect,
1246
- body.theme-custom .mermaid-preview svg .cluster path {
1247
- fill: var(--mermaid-cluster-fill) !important;
1248
- stroke: var(--mermaid-cluster-stroke) !important;
1249
- stroke-width: 1px !important;
1250
- }
1251
- body.theme-custom .mermaid-preview svg .node.alt rect {
1252
- fill: var(--mermaid-cluster-fill) !important;
1253
- stroke: var(--mermaid-cluster-stroke) !important;
1254
- }
1255
-
1256
- /* ── 14.5 标签文字(仅颜色,无偏移——参照 guizang 模式) ── */
1257
- body.theme-custom .mermaid-preview svg .edgeLabel text,
1258
- body.theme-custom .mermaid-preview svg .label text,
1259
- body.theme-custom .mermaid-preview svg .nodeLabel text {
1260
- fill: var(--mermaid-node-text) !important;
1261
- }
1262
- body.theme-custom .mermaid-preview svg .nodeLabel span,
1263
- body.theme-custom .mermaid-preview svg .edgeLabel span {
1264
- color: var(--mermaid-node-text) !important;
1265
- }
1266
- body.theme-custom .mermaid-preview svg .edgeLabel rect {
1267
- fill: var(--mermaid-label-background) !important;
1268
- stroke: none !important;
1269
- }
1270
-
1271
- /* ── 14.6 流程图/Block 图 ── */
1272
- body.theme-custom .mermaid-preview svg .block rect,
1273
- body.theme-custom .mermaid-preview svg .block path {
1274
- stroke: var(--mermaid-node-stroke) !important;
1275
- fill: var(--mermaid-node-bkg) !important;
1276
- }
1277
- body.theme-custom .mermaid-preview svg .block text,
1278
- body.theme-custom .mermaid-preview svg .block .nodeLabel text,
1279
- body.theme-custom .mermaid-preview svg .block .nodeLabel span {
1280
- fill: var(--mermaid-node-text) !important;
1281
- color: var(--mermaid-node-text) !important;
1282
- }
1283
-
1284
- /* ── 14.7 时序图 (Sequence) ── */
1285
- body.theme-custom .mermaid-preview svg .actor rect,
1286
- body.theme-custom .mermaid-preview svg .actor path {
1287
- fill: var(--mermaid-person-bkg) !important;
1288
- stroke: var(--mermaid-node-stroke) !important;
1289
- }
1290
- body.theme-custom .mermaid-preview svg text.actor {
1291
- fill: var(--mermaid-node-text) !important;
1292
- }
1293
- body.theme-custom .mermaid-preview svg .actor-line {
1294
- stroke: var(--mermaid-line-color) !important;
1295
- }
1296
- body.theme-custom .mermaid-preview svg .messageLine0,
1297
- body.theme-custom .mermaid-preview svg .messageLine1 {
1298
- stroke: var(--mermaid-node-stroke) !important;
1299
- stroke-width: 1px !important;
1300
- }
1301
- body.theme-custom .mermaid-preview svg .messageText {
1302
- fill: var(--mermaid-node-text) !important;
1303
- }
1304
- body.theme-custom .mermaid-preview svg .loopText,
1305
- body.theme-custom .mermaid-preview svg .altText,
1306
- body.theme-custom .mermaid-preview svg .optText,
1307
- body.theme-custom .mermaid-preview svg .loopText tspan,
1308
- body.theme-custom .mermaid-preview svg .altText tspan,
1309
- body.theme-custom .mermaid-preview svg .optText tspan {
1310
- fill: var(--mermaid-axis-text) !important;
1311
- }
1312
- body.theme-custom .mermaid-preview svg .loopLine,
1313
- body.theme-custom .mermaid-preview svg .altLine,
1314
- body.theme-custom .mermaid-preview svg .optLine {
1315
- stroke: var(--mermaid-node-stroke) !important;
1316
- }
1317
- body.theme-custom .mermaid-preview svg .labelBox {
1318
- stroke: var(--mermaid-node-stroke) !important;
1319
- fill: var(--mermaid-label-background) !important;
1320
- }
1321
- body.theme-custom .mermaid-preview svg .labelText {
1322
- fill: var(--mermaid-node-text) !important;
1323
- }
1324
- body.theme-custom .mermaid-preview svg .note {
1325
- fill: var(--surface-color) !important;
1326
- stroke: var(--mermaid-line-color) !important;
1327
- }
1328
-
1329
- /* ── 14.8 类图 (Class Diagram) ── */
1330
- body.theme-custom .mermaid-preview svg .classGroup rect,
1331
- body.theme-custom .mermaid-preview svg .classBox rect,
1332
- body.theme-custom .mermaid-preview svg .classBox path {
1333
- stroke: var(--mermaid-node-stroke) !important;
1334
- fill: var(--mermaid-node-bkg) !important;
1335
- }
1336
- body.theme-custom .mermaid-preview svg .classTitle text,
1337
- body.theme-custom .mermaid-preview svg .classTitle span {
1338
- fill: var(--mermaid-node-text) !important;
1339
- color: var(--mermaid-node-text) !important;
1340
- }
1341
- body.theme-custom .mermaid-preview svg .classText text,
1342
- body.theme-custom .mermaid-preview svg .classText span {
1343
- fill: var(--mermaid-node-text) !important;
1344
- color: var(--mermaid-node-text) !important;
1345
- }
1346
- body.theme-custom .mermaid-preview svg .divider {
1347
- stroke: var(--mermaid-node-stroke) !important;
1348
- }
1349
-
1350
- /* ── 14.9 状态图 (State Diagram) ── */
1351
- body.theme-custom .mermaid-preview svg .statediagram-state rect,
1352
- body.theme-custom .mermaid-preview svg .statediagram-state circle {
1353
- fill: var(--mermaid-node-bkg) !important;
1354
- stroke: var(--mermaid-node-stroke) !important;
1355
- stroke-width: 1px !important;
1356
- }
1357
- body.theme-custom .mermaid-preview svg .statediagram-cluster rect {
1358
- fill: var(--mermaid-cluster-fill) !important;
1359
- stroke: var(--mermaid-cluster-stroke) !important;
1360
- }
1361
- body.theme-custom .mermaid-preview svg .statediagram-state .nodeLabel text,
1362
- body.theme-custom .mermaid-preview svg .statediagram-state .nodeLabel span,
1363
- body.theme-custom .mermaid-preview svg .statediagram-cluster .outer-title text {
1364
- fill: var(--mermaid-node-text) !important;
1365
- color: var(--mermaid-node-text) !important;
1366
- }
1367
- body.theme-custom .mermaid-preview svg .transition {
1368
- stroke: var(--mermaid-node-stroke) !important;
1369
- }
1370
- body.theme-custom .mermaid-preview svg .edgeLabel .label text {
1371
- fill: var(--mermaid-node-text) !important;
1372
- }
1373
-
1374
- /* ── 14.10 甘特图 (Gantt) ── */
1375
- body.theme-custom .mermaid-preview svg .task {
1376
- fill: var(--mermaid-person-bkg) !important;
1377
- stroke: var(--mermaid-node-stroke) !important;
1378
- stroke-width: 1px !important;
1379
- }
1380
- body.theme-custom .mermaid-preview svg .taskText,
1381
- body.theme-custom .mermaid-preview svg .taskTextOutsideRight,
1382
- body.theme-custom .mermaid-preview svg .taskTextOutsideLeft {
1383
- fill: var(--mermaid-node-text) !important;
1384
- }
1385
- body.theme-custom .mermaid-preview svg .section rect {
1386
- fill: var(--mermaid-tertiary-color) !important;
1387
- stroke: var(--mermaid-node-stroke) !important;
1388
- }
1389
- body.theme-custom .mermaid-preview svg .sectionText,
1390
- body.theme-custom .mermaid-preview svg .sectionTitle {
1391
- fill: var(--mermaid-node-text) !important;
1392
- }
1393
- body.theme-custom .mermaid-preview svg .today {
1394
- stroke: var(--mermaid-node-stroke) !important;
1395
- stroke-width: 2px !important;
1396
- }
1397
- body.theme-custom .mermaid-preview svg .grid .tick line,
1398
- body.theme-custom .mermaid-preview svg .grid .domain {
1399
- stroke: var(--mermaid-line-color) !important;
1400
- }
1401
- body.theme-custom .mermaid-preview svg .tick text {
1402
- fill: var(--mermaid-axis-text) !important;
1403
- }
1404
-
1405
- /* ── 14.11 饼图 (Pie) ── */
1406
- body.theme-custom .mermaid-preview svg .pieCircle,
1407
- body.theme-custom .mermaid-preview svg .slice {
1408
- stroke: var(--mermaid-node-stroke) !important;
1409
- }
1410
- body.theme-custom .mermaid-preview svg .legend text {
1411
- fill: var(--mermaid-node-text) !important;
1412
- }
1413
-
1414
- /* ── 14.12 ER 图 (Entity Relationship) ── */
1415
- body.theme-custom .mermaid-preview svg .er .entityBox rect,
1416
- body.theme-custom .mermaid-preview svg .er .entityBox path {
1417
- fill: var(--mermaid-node-bkg) !important;
1418
- stroke: var(--mermaid-node-stroke) !important;
1419
- }
1420
- body.theme-custom .mermaid-preview svg .er text,
1421
- body.theme-custom .mermaid-preview svg .er .relationshipLabel {
1422
- fill: var(--mermaid-node-text) !important;
1423
- }
1424
- body.theme-custom .mermaid-preview svg .er .relationshipLine {
1425
- stroke: var(--mermaid-node-stroke) !important;
1426
- }
1427
-
1428
- /* ── 14.13 Git 图 ── */
1429
- body.theme-custom .mermaid-preview svg .git .commit rect,
1430
- body.theme-custom .mermaid-preview svg .git .commit circle {
1431
- fill: var(--mermaid-cscale9) !important;
1432
- stroke: var(--mermaid-node-stroke) !important;
1433
- }
1434
- body.theme-custom .mermaid-preview svg .git text,
1435
- body.theme-custom .mermaid-preview svg .git .branchLabel text {
1436
- fill: var(--mermaid-node-text) !important;
1437
- }
1438
- body.theme-custom .mermaid-preview svg .git .tag rect,
1439
- body.theme-custom .mermaid-preview svg .git .tag circle {
1440
- fill: var(--mermaid-secondary-color) !important;
1441
- stroke: var(--mermaid-node-stroke) !important;
1442
- }
1443
- body.theme-custom .mermaid-preview svg .git .branch rect {
1444
- fill: var(--mermaid-tertiary-color) !important;
1445
- stroke: var(--mermaid-line-color) !important;
1446
- }
1447
- body.theme-custom .mermaid-preview svg .git .commit-line,
1448
- body.theme-custom .mermaid-preview svg .git .branch-line {
1449
- stroke: var(--mermaid-node-stroke) !important;
1450
- }
1451
-
1452
- /* ── 14.14 用户旅程图 (User Journey) ── */
1453
- body.theme-custom .mermaid-preview svg .journey .task rect {
1454
- fill: var(--mermaid-node-bkg) !important;
1455
- stroke: var(--mermaid-node-stroke) !important;
1456
- }
1457
- body.theme-custom .mermaid-preview svg .journey text {
1458
- fill: var(--mermaid-node-text) !important;
1459
- }
1460
-
1461
- /* ── 14.15 时间线 (Timeline) ── */
1462
- body.theme-custom .mermaid-preview svg .timeline rect {
1463
- fill: var(--mermaid-node-bkg) !important;
1464
- stroke: var(--mermaid-node-stroke) !important;
1465
- }
1466
- body.theme-custom .mermaid-preview svg .timeline text {
1467
- fill: var(--mermaid-node-text) !important;
1468
- }
1469
- body.theme-custom .mermaid-preview svg .timeline .period rect {
1470
- fill: var(--mermaid-cluster-fill) !important;
1471
- stroke: var(--mermaid-cluster-stroke) !important;
1472
- }
1473
-
1474
- /* ── 14.16 思维导图 (Mindmap) ── */
1475
- body.theme-custom .mermaid-preview svg .mindmap-node rect,
1476
- body.theme-custom .mermaid-preview svg .mindmap-node circle,
1477
- body.theme-custom .mermaid-preview svg .mindmap-node ellipse,
1478
- body.theme-custom .mermaid-preview svg .mindmap-node polygon,
1479
- body.theme-custom .mermaid-preview svg .mindmap-node path {
1480
- fill: var(--mermaid-node-bkg) !important;
1481
- stroke: var(--mermaid-node-stroke) !important;
1482
- }
1483
- body.theme-custom .mermaid-preview svg .mindmap-node text,
1484
- body.theme-custom .mermaid-preview svg .mindmap-node .nodeLabel text,
1485
- body.theme-custom .mermaid-preview svg .mindmap-node .nodeLabel span {
1486
- fill: var(--mermaid-node-text) !important;
1487
- color: var(--mermaid-node-text) !important;
1488
- }
1489
- body.theme-custom .mermaid-preview svg .mindmap-edge {
1490
- stroke: var(--mermaid-node-stroke) !important;
1491
- }
1492
-
1493
- /* ── 14.17 C4 架构图 ── */
1494
- body.theme-custom .mermaid-preview svg .c4 .person rect,
1495
- body.theme-custom .mermaid-preview svg .c4 .person path,
1496
- body.theme-custom .mermaid-preview svg .c4 .system rect,
1497
- body.theme-custom .mermaid-preview svg .c4 .system path,
1498
- body.theme-custom .mermaid-preview svg .c4 .container rect,
1499
- body.theme-custom .mermaid-preview svg .c4 .container path,
1500
- body.theme-custom .mermaid-preview svg .c4 .boundary rect,
1501
- body.theme-custom .mermaid-preview svg .c4 .boundary path {
1502
- stroke: var(--mermaid-node-stroke) !important;
1503
- }
1504
- body.theme-custom .mermaid-preview svg .c4 text,
1505
- body.theme-custom .mermaid-preview svg .c4 span {
1506
- fill: var(--mermaid-node-text) !important;
1507
- color: var(--mermaid-node-text) !important;
1508
- }
1509
- body.theme-custom .mermaid-preview svg .person rect,
1510
- body.theme-custom .mermaid-preview svg .person path {
1511
- fill: var(--mermaid-person-bkg) !important;
1512
- stroke: var(--mermaid-node-stroke) !important;
1513
- }
1514
- body.theme-custom .mermaid-preview svg .person-man text {
1515
- fill: var(--mermaid-node-text) !important;
1516
- }
1517
- body.theme-custom .mermaid-preview svg .person-man span {
1518
- color: var(--mermaid-node-text) !important;
1519
- }
1520
-
1521
- /* ── 14.18 XY Chart / 柱状图 ── */
1522
- body.theme-custom .mermaid-preview svg .xychart .axis text {
1523
- fill: var(--mermaid-axis-text) !important;
1524
- }
1525
- body.theme-custom .mermaid-preview svg .xychart .axis line,
1526
- body.theme-custom .mermaid-preview svg .xychart .axis path {
1527
- stroke: var(--mermaid-node-stroke) !important;
1528
- }
1529
- body.theme-custom .mermaid-preview svg .xychart .plot rect,
1530
- body.theme-custom .mermaid-preview svg .xychart .plot line {
1531
- stroke: var(--mermaid-node-stroke) !important;
1532
- }
1533
- body.theme-custom .mermaid-preview svg .xychart .titleText {
1534
- fill: var(--mermaid-node-text) !important;
1535
- }
1536
-
1537
- /* ── 14.19 四象限图 (Quadrant Chart) ── */
1538
- body.theme-custom .mermaid-preview svg .quadrant rect {
1539
- stroke: var(--mermaid-node-stroke) !important;
1540
- }
1541
- body.theme-custom .mermaid-preview svg .quadrant text,
1542
- body.theme-custom .mermaid-preview svg .quadrant .titleText {
1543
- fill: var(--mermaid-node-text) !important;
1544
- }
1545
- body.theme-custom .mermaid-preview svg .quadrant .axis text {
1546
- fill: var(--mermaid-axis-text) !important;
1547
- }
1548
- body.theme-custom .mermaid-preview svg .quadrant .axis line,
1549
- body.theme-custom .mermaid-preview svg .quadrant .axis path {
1550
- stroke: var(--mermaid-node-stroke) !important;
1551
- }
1552
- body.theme-custom .mermaid-preview svg .quadrant .point {
1553
- fill: var(--mermaid-node-stroke) !important;
1554
- stroke: var(--mermaid-node-stroke) !important;
1555
- }
1556
-
1557
- /* ── 14.20 Sankey 图 ── */
1558
- body.theme-custom .mermaid-preview svg .sankey .link {
1559
- stroke: var(--mermaid-node-stroke) !important;
1560
- }
1561
- body.theme-custom .mermaid-preview svg .sankey text {
1562
- fill: var(--mermaid-node-text) !important;
1563
- }
1564
-
1565
- /* ── 14.21 图表标题加粗(font-family/font-size 已在 14.1 统一定义) ── */
1566
- body.theme-custom .mermaid-preview svg .pieTitleText,
1567
- body.theme-custom .mermaid-preview svg .xychart .titleText,
1568
- body.theme-custom .mermaid-preview svg .quadrant .titleText {
1569
- font-weight: 700 !important;
1570
- }
1571
-
1572
- /* ── 14.22 Mermaid 源码编辑器 ── */
1573
- body.theme-custom .mermaid-source {
1574
- width: 100%;
1575
- min-height: 100px;
1576
- border: 1px solid var(--mermaid-node-stroke);
1577
- border-radius: 0;
1578
- padding: 12px;
1579
- font-size: 10.5pt;
1580
- font-family: "Courier New", "Consolas", monospace;
1581
- color: var(--text-color);
1582
- background: var(--surface-color);
1583
- outline: none;
1584
- resize: vertical;
1585
- line-height: 1.5;
1586
- white-space: pre-wrap;
1587
- }
1588
- body.theme-custom .mermaid-source:focus {
1589
- border-color: var(--mermaid-node-text);
1590
- }
1591
-
1592
- /* ── 15. 脚注(小五号 9pt) ── */
1593
- body.theme-custom .footnotes {
1594
- font-family: "SimSun", "Songti SC", "Source Han Serif SC", "Noto Serif SC", Georgia, serif;
1595
- font-size: 9pt;
1596
- color: var(--gray-9);
1597
- margin-top: 24pt;
1598
- border-top: 1px solid var(--gray-9);
1599
- padding-top: 12pt;
1600
- }
1601
-
1602
- /* ── 15.1 摘要(黑体 五号,"摘要:"加粗,内容宋体 五号) ── */
1603
- body.theme-custom p:has(strong):first-of-type,
1604
- body.theme-custom #write > p:first-child strong {
1605
- font-family: "SimHei", "Heiti SC", "Source Han Sans SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;
1606
- font-size: 10.5pt;
1607
- font-weight: 700;
1608
- }
1609
-
1610
- /* ── 15.2 关键词 / 15.3 参考文献(条目宋体 小五号,悬挂缩进) ── */
1611
- body.theme-custom .references,
1612
- body.theme-custom [class*="reference"] {
1613
- font-family: "SimSun", "Songti SC", "Source Han Serif SC", "Noto Serif SC", Georgia, serif;
1614
- font-size: 9pt;
1615
- line-height: 1.5;
1616
- }
1617
- body.theme-custom .references li,
1618
- body.theme-custom [class*="reference"] li {
1619
- text-indent: -2em;
1620
- padding-left: 2em;
1621
- margin-bottom: 4pt;
1622
- }
1623
-
1624
- /* ── 16. 打印优化(GB/T 7713 页面设置,力求与屏幕显示一致) ── */
1625
- @media print {
1626
- @page {
1627
- size: A4;
1628
- margin: 25mm 25mm 25mm 30mm;
1629
-
1630
- @bottom-center {
1631
- content: counter(page);
1632
- font-family: "SimSun", "Songti SC", serif;
1633
- font-size: 9pt;
1634
- color: var(--gray-9);
1635
- }
1636
- }
1637
-
1638
- html, body {
1639
- background: var(--gray-0) !important;
1640
- color: var(--gray-9) !important;
1641
- font-size: 12pt !important;
1642
- line-height: 1.5 !important;
1643
- -webkit-print-color-adjust: exact !important;
1644
- print-color-adjust: exact !important;
1645
- }
1646
-
1647
- #titlebar, #slides-btn, #agent-dot {
1648
- display: none !important;
1649
- }
1650
-
1651
- #editor {
1652
- height: auto !important;
1653
- overflow: visible !important;
1654
- padding: 0 !important;
1655
- }
1656
-
1657
- #write {
1658
- max-width: none !important;
1659
- padding: 0 !important;
1660
- margin: 0 !important;
1661
- }
1662
-
1663
- /* ── 标题保持黑体 ── */
1664
- h1, h2, h3, h4, h5, h6 {
1665
- font-family: "SimHei", "Heiti SC", "Source Han Sans SC", "Noto Sans SC", "Microsoft YaHei", sans-serif !important;
1666
- color: var(--gray-9) !important;
1667
- }
1668
-
1669
- /* ── 正文保留宋体 + 首行缩进 ── */
1670
- p {
1671
- font-family: "SimSun", "Songti SC", "Source Han Serif SC", "Noto Serif SC", serif !important;
1672
- color: var(--gray-9) !important;
1673
- text-indent: 2em !important;
1674
- }
1675
-
1676
- /* ── 链接 ── */
1677
- a {
1678
- color: var(--gray-9) !important;
1679
- text-decoration: none !important;
1680
- border-bottom: 1px solid var(--gray-9) !important;
1681
- }
1682
-
1683
- /* ── 引用块 ── */
1684
- blockquote {
1685
- background: var(--gray-1) !important;
1686
- border-left: 3px solid var(--gray-9) !important;
1687
- color: var(--gray-9) !important;
1688
- font-size: 10.5pt !important;
1689
- }
1690
-
1691
- /* ── 内联代码(无边框,浅灰底) ── */
1692
- code {
1693
- background: var(--gray-3) !important;
1694
- color: var(--gray-9) !important;
1695
- border: none !important;
1696
- border-radius: 0 !important;
1697
- padding: 1px 6px !important;
1698
- font-family: "Courier New", "Consolas", monospace !important;
1699
- }
1700
-
1701
- /* ── 代码块(浅灰底,直角,无边框) ── */
1702
- pre {
1703
- background: var(--gray-2) !important;
1704
- color: var(--gray-9) !important;
1705
- border: none !important;
1706
- border-radius: 0 !important;
1707
- font-size: 10.5pt !important;
1708
- line-height: 1.5 !important;
1709
- font-family: "Courier New", "Consolas", monospace !important;
1710
- }
1711
- pre code {
1712
- background: transparent !important;
1713
- border: none !important;
1714
- padding: 0 !important;
1715
- }
1716
-
1717
- /* ── 表格:四边 1px 实线 ── */
1718
- table {
1719
- border-collapse: collapse !important;
1720
- border-top: 1px solid var(--gray-9) !important;
1721
- border-bottom: 1px solid var(--gray-9) !important;
1722
- border-left: 1px solid var(--gray-9) !important;
1723
- border-right: 1px solid var(--gray-9) !important;
1724
- font-size: 10.5pt !important;
1725
- }
1726
- table th {
1727
- border: none !important;
1728
- border-bottom: 0.75pt solid var(--gray-9) !important;
1729
- background: transparent !important;
1730
- -webkit-print-color-adjust: exact !important;
1731
- print-color-adjust: exact !important;
1732
- font-family: "SimHei", "Heiti SC", "Source Han Sans SC", "Noto Sans SC", "Microsoft YaHei", sans-serif !important;
1733
- font-weight: 700 !important;
1734
- font-size: 16px !important;
1735
- color: var(--gray-9) !important;
1736
- }
1737
- table td {
1738
- border: none !important;
1739
- font-family: "SimSun", "Songti SC", "Source Han Serif SC", "Noto Serif SC", serif !important;
1740
- color: var(--gray-9) !important;
1741
- }
1742
-
1743
- /* ── 列表:强调文字采用黑体加粗16px ── */
1744
- ul, ol {
1745
- font-family: "SimSun", "Songti SC", "Source Han Serif SC", "Noto Serif SC", serif !important;
1746
- }
1747
- ul strong, ol strong,
1748
- li strong, li b,
1749
- strong, b {
1750
- font-family: "SimHei", "Heiti SC", "Source Han Sans SC", "Noto Sans SC", "Microsoft YaHei", sans-serif !important;
1751
- font-weight: 700 !important;
1752
- font-size: 16px !important;
1753
- }
1754
-
1755
- /* ── 数学公式 ── */
1756
- .math-inline, .math-block {
1757
- color: var(--gray-9) !important;
1758
- -webkit-print-color-adjust: exact !important;
1759
- print-color-adjust: exact !important;
1760
- }
1761
-
1762
- /* ── Mermaid:保留屏幕配色,直角容器 ── */
1763
- body.theme-custom .mermaid-block,
1764
- body.theme-custom .mermaid-preview,
1765
- .md-diagram-panel.md-mermaid {
1766
- background: var(--gray-0) !important;
1767
- border: 1px solid var(--gray-5) !important;
1768
- border-radius: 0 !important;
1769
- -webkit-print-color-adjust: exact !important;
1770
- print-color-adjust: exact !important;
1771
- }
1772
- body.theme-custom .mermaid-preview svg,
1773
- body.theme-custom .mermaid-preview svg * {
1774
- -webkit-print-color-adjust: exact !important;
1775
- print-color-adjust: exact !important;
1776
- }
1777
- body.theme-custom .mermaid-block + p {
1778
- font-family: "SimSun", "Songti SC", "Source Han Serif SC", "Noto Serif SC", Georgia, serif !important;
1779
- font-size: 10.5pt !important;
1780
- text-align: center !important;
1781
- color: var(--gray-9) !important;
1782
- }
1783
-
1784
- /* ── 脚注与参考文献 ── */
1785
- .footnotes {
1786
- border-top: 1px solid var(--gray-9) !important;
1787
- font-size: 9pt !important;
1788
- }
1789
-
1790
- h1 { page-break-before: avoid; }
1791
- h2, h3, h4, h5, h6 { page-break-after: avoid; }
1792
- table, figure, img { page-break-inside: avoid; }
1793
- p { orphans: 3; widows: 3; }
1794
- }
1795
-
1796
- /* ── 17. 滚动条(默认浏览器样式,置于屏幕最右侧)── */
1797
- body.theme-custom { scrollbar-width: auto; scrollbar-color: var(--gray-8); }
1798
-
1799
- /* ── 18. 源码编辑模式 ── */
1800
- body.theme-custom #source-editor {
1801
- font-family: "Courier New", "Consolas", "Source Code Pro", monospace;
1802
- font-size: 12pt;
1803
- line-height: 1.5;
1804
- background: var(--gray-0);
1805
- color: var(--gray-9);
1806
- =======
1807
- font-family: var(--font-code);
1808
- font-size: 14px;
1809
- line-height: var(--line-height-code);
1810
- background: var(--code-block-bg) !important;
1811
- color: var(--code-block-text) !important;
1812
- padding: 14px 18px;
1813
- border-radius: var(--radius-sm);
1814
- margin: 16px 0;
1815
- overflow-x: auto;
1816
- border: 1px solid var(--border-color);
1817
- }
1818
- body.theme-custom #editor .ProseMirror pre code {
1819
- background: transparent !important;
1820
- color: var(--code-block-text) !important;
1821
- padding: 0; margin: 0; border-radius: 0; border: none;
1822
- }
1823
-
1824
- /* ── 5.10 代码语法高亮(黑白打印友好) ── */
1825
- .cm-s-inner { font-family: var(--font-code); font-size: 14px; line-height: var(--line-height-code); }
1826
-
1827
- body.theme-custom .token.comment, body.theme-custom .token.prolog,
1828
- body.theme-custom .token.doctype, body.theme-custom .token.cdata,
1829
- .cm-s-inner .cm-comment, .cm-s-inner .cm-quote, .cm-s-inner .cm-hr { color: var(--text-dim); font-style: italic; }
1830
-
1831
- body.theme-custom .token.punctuation, .cm-s-inner .cm-meta { color: var(--text-muted); }
1832
-
1833
- body.theme-custom .token.keyword, body.theme-custom .token.important,
1834
- body.theme-custom .token.selector, body.theme-custom .token.important,
1835
- .cm-s-inner .cm-keyword, .cm-s-inner .cm-attribute { color: var(--text-color); font-weight: 700; }
1836
-
1837
- body.theme-custom .token.property, body.theme-custom .token.tag,
1838
- body.theme-custom .token.boolean, body.theme-custom .token.number,
1839
- body.theme-custom .token.constant, body.theme-custom .token.symbol,
1840
- body.theme-custom .token.attr-name, .cm-s-inner .cm-property { color: var(--text-muted); }
1841
-
1842
- body.theme-custom .token.string, body.theme-custom .token.char,
1843
- body.theme-custom .token.attr-value, .cm-s-inner .cm-string { color: var(--text-color); }
1844
-
1845
- body.theme-custom .token.regex, body.theme-custom .token.variable,
1846
- .cm-s-inner .cm-variable-2, .cm-s-inner .cm-variable-3 { color: var(--text-muted); }
1847
-
1848
- body.theme-custom .token.operator, body.theme-custom .token.entity,
1849
- body.theme-custom .token.url, .cm-s-inner .cm-operator { color: var(--text-color); }
1850
-
1851
- body.theme-custom .token.atrule, body.theme-custom .token.attr-value,
1852
- .cm-s-inner .cm-atom, .cm-s-inner .cm-number { color: var(--text-muted); }
1853
-
1854
- body.theme-custom .token.function, .cm-s-inner .cm-def { color: var(--text-color); font-weight: 700; }
1855
-
1856
- body.theme-custom .token.class-name, .cm-s-inner .cm-variable { color: var(--text-color); }
1857
-
1858
- body.theme-custom .token.deleted { color: var(--text-dim); }
1859
- body.theme-custom .token.inserted { color: var(--text-color); }
1860
-
1861
- /* ── 5.11 表格:三线表规范 ── */
1862
- body.theme-custom table {
1863
- width: 100%;
1864
- border-collapse: collapse;
1865
- border-top: 2px solid var(--table-border);
1866
- border-bottom: 2px solid var(--table-border);
1867
- border-left: none;
1868
- border-right: none;
1869
- font-size: 14px;
1870
- line-height: 1.5;
1871
- margin: 18px auto;
1872
- }
1873
-
1874
- body.theme-custom table th {
1875
- border: none;
1876
- border-bottom: 2px solid var(--table-border);
1877
- background: var(--table-header-bg);
1878
- font-family: var(--font-heading);
1879
- font-size: 14px;
1880
- font-weight: 700;
1881
- color: var(--table-header-text);
1882
- padding: 8px 10px;
1883
- text-align: center;
1884
- text-indent: 0;
1885
- vertical-align: middle;
1886
- }
1887
-
1888
- body.theme-custom table td {
1889
- border: none;
1890
- font-family: var(--font-body);
1891
- font-size: 14px;
1892
- color: var(--text-color);
1893
- padding: 8px 10px;
1894
- text-align: left;
1895
- text-indent: 0;
1896
- vertical-align: top;
1897
- }
1898
-
1899
- body.theme-custom table p, body.theme-custom table td p {
1900
- font-family: var(--font-body);
1901
- font-size: 14px;
1902
- margin: 0;
1903
- padding: 0;
1904
- text-align: left;
1905
- text-indent: 0;
1906
- line-height: 1.4;
1907
- }
1908
-
1909
- body.theme-custom table strong { font-weight: 700; font-family: inherit; }
1910
-
1911
- /* ── 5.12 图片 ── */
1912
- body.theme-custom img { max-width: 100%; border-radius: var(--radius-sm); }
1913
- body.theme-custom .md-image { margin: 16px 0; text-align: center; }
1914
- body.theme-custom .md-image img { max-width: 100%; height: auto; }
1915
- body.theme-custom .md-image .md-image-caption { font-size: 14px; color: var(--text-muted); margin-top: 8px; text-align: center; }
1916
-
1917
- /* ── 5.13 数学公式 ── */
1918
- body.theme-custom .math-inline, body.theme-custom .math-block {
1919
- color: var(--text-color);
1920
- font-family: "Times New Roman", "SimSun", serif;
1921
- }
1922
-
1923
- body.theme-custom .math-block {
1924
- margin: 16px 0;
1925
- text-align: center;
1926
- overflow-x: auto;
1927
- }
1928
-
1929
- /* ── 5.14 Mermaid 图表 ── */
1930
- body.theme-custom .mermaid-block,
1931
- body.theme-custom .mermaid-preview,
1932
- .md-diagram-panel.md-mermaid {
1933
- background: var(--mermaid-background);
1934
- border: 1px solid var(--mermaid-border-color);
1935
- border-radius: var(--mermaid-border-radius);
1936
- padding: var(--mermaid-padding);
1937
- margin: 16px 0;
1938
- font-family: var(--mermaid-font-family);
1939
- font-size: var(--mermaid-font-size);
1940
- }
1941
-
1942
- body.theme-custom .mermaid-preview svg { max-width: 100%; height: auto; }
1943
-
1944
- body.theme-custom .mermaid-block + p {
1945
- font-family: var(--font-body);
1946
- font-size: 14px;
1947
- text-align: center;
1948
- color: var(--text-color);
1949
- margin-top: 8px;
1950
- }
1951
-
1952
- /* ── 5.15 脚注 ── */
1953
- body.theme-custom .footnotes {
1954
- border-top: 1px solid var(--border-color);
1955
- font-size: 12px;
1956
- margin-top: 32px;
1957
- padding-top: 16px;
1958
- }
1959
-
1960
- body.theme-custom .footnotes .footnote { margin: 8px 0; }
1961
- body.theme-custom .footnotes .footnote-ref { font-size: 12px; }
1962
-
1963
- /* ── 5.16 响应式 ── */
1964
- @media only screen and (max-width: 768px) {
1965
- body.theme-custom #editor { padding: 20px; }
1966
- body.theme-custom h1 { font-size: calc(var(--font-size-root) * 1.25); }
1967
- body.theme-custom h2 { font-size: calc(var(--font-size-root) * 1.1); }
1968
- body.theme-custom .mermaid-block { padding: 12px; }
1969
- body.theme-custom .mermaid-preview svg { max-width: 100% !important; height: auto !important; }
1970
- }
1971
-
1972
- /* ═══════════════════════════════════════════════════════════════
1973
- SECTION 6 — 打印 / 导出
1974
- 原则:屏幕样式的完整镜像。每个屏幕属性都必须在 print 中显式声明。
1975
- 学术论文印刷:保留黑体标题 + 宋体正文 + 三线表 + 纯白底色
1976
- ═══════════════════════════════════════════════════════════════ */
1977
- @media print {
1978
- @page {
1979
- size: A4;
1980
- margin: 25mm 25mm 25mm 30mm;
1981
-
1982
- @bottom-center {
1983
- content: counter(page);
1984
- font-family: "SimSun", "Songti SC", serif;
1985
- font-size: 12px;
1986
- color: var(--gray-9);
1987
- }
1988
- }
1989
-
1990
- /* ── 6.0 变量重声明 ── */
1991
- body.theme-custom {
1992
- --seed-surface: #ffffff;
1993
- --seed-panel: #f5f5f5;
1994
- --seed-panel-alt: #fafafa;
1995
- --seed-ink: #111111;
1996
- --seed-ink-muted: #333333;
1997
- --seed-ink-dim: #666666;
1998
- --seed-border: #111111;
1999
- --seed-border-light: #cccccc;
2000
- --gray-0: #ffffff;
2001
- --gray-1: #fafafa;
2002
- --gray-2: #f5f5f5;
2003
- --gray-3: #eeeeee;
2004
- --gray-4: #e0e0e0;
2005
- --gray-5: #cccccc;
2006
- --gray-6: #999999;
2007
- --gray-7: #666666;
2008
- --gray-8: #333333;
2009
- --gray-9: #111111;
2010
- --font-size-root: 16px;
2011
- --line-height-body: 1.5;
2012
- --line-height-heading: 1.35;
2013
- --line-height-code: 1.5;
2014
- --font-scale-h1: 1.375;
2015
- --font-scale-h2: 1.125;
2016
- --font-scale-h3: 1.0;
2017
- --font-scale-h4: 1.0;
2018
- --font-scale-h5: 0.875;
2019
- --font-scale-h6: 0.875;
2020
- --content-width: 210mm;
2021
- --font-size-mermaid: 12px;
2022
- --radius-sm: 0px;
2023
- --radius-md: 0px;
2024
- --radius-lg: 0px;
2025
- --page-margin-top: 25mm;
2026
- --page-margin-bottom: 25mm;
2027
- --page-margin-left: 30mm;
2028
- --page-margin-right: 25mm;
2029
- --bg-color: var(--seed-surface);
2030
- --surface-color: var(--seed-panel);
2031
- --surface-alt: var(--seed-panel-alt);
2032
- --text-color: var(--seed-ink);
2033
- --heading-color: var(--seed-ink);
2034
- --text-muted: var(--seed-ink-muted);
2035
- --text-dim: var(--seed-ink-dim);
2036
- --link-color: var(--seed-ink);
2037
- --accent-color: var(--seed-ink);
2038
- --accent-dark: var(--seed-ink);
2039
- --accent-light: var(--gray-4);
2040
- --selection-bg: rgba(0, 0, 0, 0.12);
2041
- --border-color: var(--seed-border);
2042
- --blockquote-border: var(--seed-ink);
2043
- --hr-color: var(--seed-ink);
2044
- --code-bg: var(--gray-3);
2045
- --code-color: var(--seed-ink);
2046
- --code-block-bg: var(--seed-panel);
2047
- --code-block-text: var(--seed-ink);
2048
- --code-block-color: var(--seed-ink);
2049
- --blockquote-bg: var(--seed-panel-alt);
2050
- --table-header-bg: transparent;
2051
- --table-header-text: var(--seed-ink);
2052
- --table-border: var(--seed-ink);
2053
- --scrollbar-thumb: var(--gray-5);
2054
- --scrollbar-thumb-hover: var(--gray-6);
2055
- --font-body: "SimSun", "Songti SC", "Source Han Serif SC", "Noto Serif SC",
2056
- Georgia, "Times New Roman", serif;
2057
- --font-heading: "SimHei", "Heiti SC", "Source Han Sans SC", "Noto Sans SC",
2058
- "Microsoft YaHei", "Arial", sans-serif;
2059
- --font-code: "Courier New", "Consolas", "Source Code Pro", monospace;
2060
- --font-mermaid: var(--font-heading);
2061
- --mermaid-background: var(--seed-surface);
2062
- --mermaid-border-color: var(--gray-5);
2063
- --mermaid-border-radius: var(--radius-md);
2064
- --mermaid-padding: 20px;
2065
- --mermaid-font-family: var(--font-mermaid);
2066
- --mermaid-font-size: var(--font-size-mermaid);
2067
- --mermaid-node-fill: var(--gray-3);
2068
- --mermaid-node-bkg: var(--gray-2);
2069
- --mermaid-node-stroke: var(--gray-8);
2070
- --mermaid-node-stroke-width: 1px;
2071
- --mermaid-node-text: var(--seed-ink);
2072
- --mermaid-edge-stroke: var(--gray-8);
2073
- --mermaid-edge-stroke-width: 1px;
2074
- --mermaid-cluster-fill: var(--gray-1);
2075
- --mermaid-cluster-stroke: var(--gray-7);
2076
- --mermaid-label-text: var(--seed-ink);
2077
- --mermaid-edge-label-text: var(--seed-ink);
2078
- --mermaid-edge-label-bg: var(--seed-surface);
2079
- --mermaid-title-text: var(--seed-ink);
2080
- --mermaid-axis-text: var(--gray-7);
2081
- --mermaid-highlight: var(--gray-8);
2082
- --mermaid-person-stroke: var(--gray-8);
2083
- --mermaid-person-bkg: var(--gray-2);
2084
- --mermaid-label-offset-y: 0px;
2085
- --mermaid-cscale0: var(--gray-6);
2086
- --mermaid-cscale1: var(--gray-7);
2087
- --mermaid-cscale2: var(--gray-6);
2088
- --mermaid-cscale3: var(--gray-8);
2089
- --mermaid-cscale4: var(--gray-6);
2090
- --mermaid-cscale5: var(--gray-7);
2091
- --mermaid-cscale6: var(--gray-8);
2092
- --mermaid-cscale7: var(--gray-6);
2093
- --mermaid-cscale8: var(--gray-7);
2094
- --mermaid-cscale9: var(--gray-6);
2095
- --mermaid-cscale10: var(--gray-8);
2096
- --mermaid-cscale11: var(--gray-7);
2097
- }
2098
-
2099
- /* ── 6.1 根元素:字号 + 宋体 + 两端对齐 + 底色 ── */
2100
- html { font-size: var(--font-size-root) !important; }
2101
- html, body, body.theme-custom {
2102
- background: var(--seed-surface) !important;
2103
- color: var(--seed-ink) !important;
2104
- font-family: var(--font-body) !important;
2105
- font-size: var(--font-size-root) !important;
2106
- line-height: var(--line-height-body) !important;
2107
- text-align: justify !important;
2108
- -webkit-print-color-adjust: exact !important;
2109
- print-color-adjust: exact !important;
2110
- }
2111
-
2112
- /* ── 6.2 编辑区 ── */
2113
- #titlebar, #slides-btn, #agent-dot { display: none !important; }
2114
- #editor { height: auto !important; overflow: visible !important; padding: 0 !important; }
2115
- #write { max-width: none !important; padding: 0 !important; margin: 0 !important; }
2116
-
2117
- /* ── 6.3 标题:黑体,GB/T 7713 学术论文规范 ── */
2118
- body.theme-custom h1, body.theme-custom h2, body.theme-custom h3,
2119
- body.theme-custom h4, body.theme-custom h5, body.theme-custom h6 {
2120
- font-family: var(--font-heading) !important;
2121
- color: var(--heading-color) !important;
2122
- font-weight: 700 !important;
2123
- line-height: var(--line-height-heading) !important;
2124
- text-indent: 0 !important;
2125
- border-bottom: none !important;
2126
- padding-bottom: 0 !important;
2127
- -webkit-print-color-adjust: exact !important;
2128
- print-color-adjust: exact !important;
2129
- }
2130
-
2131
- body.theme-custom h1 {
2132
- font-size: calc(var(--font-size-root) * var(--font-scale-h1)) !important;
2133
- text-align: center !important;
2134
- margin-top: 32px !important;
2135
- margin-bottom: 24px !important;
2136
- }
2137
-
2138
- body.theme-custom h2 {
2139
- font-size: calc(var(--font-size-root) * var(--font-scale-h2)) !important;
2140
- margin-top: 26px !important;
2141
- margin-bottom: 14px !important;
2142
- }
2143
-
2144
- body.theme-custom h3 {
2145
- font-size: calc(var(--font-size-root) * var(--font-scale-h3)) !important;
2146
- margin-top: 18px !important;
2147
- margin-bottom: 10px !important;
2148
- }
2149
-
2150
- body.theme-custom h4 {
2151
- font-size: calc(var(--font-size-root) * var(--font-scale-h4)) !important;
2152
- margin-top: 18px !important;
2153
- margin-bottom: 8px !important;
2154
- }
2155
-
2156
- body.theme-custom h5 {
2157
- font-size: calc(var(--font-size-root) * var(--font-scale-h5)) !important;
2158
- margin-top: 16px !important;
2159
- margin-bottom: 6px !important;
2160
- }
2161
-
2162
- body.theme-custom h6 {
2163
- font-size: calc(var(--font-size-root) * var(--font-scale-h6)) !important;
2164
- color: var(--text-muted) !important;
2165
- margin-top: 14px !important;
2166
- margin-bottom: 6px !important;
2167
- }
2168
-
2169
- /* ── 6.4 正文:宋体,首行缩进 2em ── */
2170
- body.theme-custom p {
2171
- font-family: var(--font-body) !important;
2172
- color: var(--text-color) !important;
2173
- font-size: var(--font-size-root) !important;
2174
- text-indent: 2em !important;
2175
- line-height: var(--line-height-body) !important;
2176
- text-align: justify !important;
2177
- margin: 0 !important;
2178
- }
2179
-
2180
- /* ── 6.5 内联强调 ── */
2181
- body.theme-custom strong {
2182
- color: var(--text-color) !important;
2183
- font-weight: 700 !important;
2184
- -webkit-print-color-adjust: exact !important;
2185
- print-color-adjust: exact !important;
2186
- }
2187
- body.theme-custom em {
2188
- font-style: italic !important;
2189
- color: var(--text-color) !important;
2190
- }
2191
-
2192
- /* ── 6.6 链接 ── */
2193
- body.theme-custom a {
2194
- color: var(--link-color) !important;
2195
- text-decoration: none !important;
2196
- border-bottom: 1px solid var(--link-color) !important;
2197
- }
2198
-
2199
- /* ── 6.7 引用块 ── */
2200
- body.theme-custom blockquote {
2201
- background: var(--blockquote-bg) !important;
2202
- border-left: 3px solid var(--blockquote-border) !important;
2203
- color: var(--text-color) !important;
2204
- font-family: var(--font-body) !important;
2205
- font-size: 14px !important;
2206
- margin: 10px 0 !important;
2207
- padding: 10px 16px 10px 20px !important;
2208
- -webkit-print-color-adjust: exact !important;
2209
- print-color-adjust: exact !important;
2210
- }
2211
- body.theme-custom blockquote p {
2212
- margin: 4px 0 !important;
2213
- text-indent: 0 !important;
2214
- }
2215
-
2216
- /* ── 6.8 分割线 ── */
2217
- body.theme-custom hr {
2218
- border: none !important;
2219
- border-top: 1px solid var(--hr-color) !important;
2220
- margin: 32px 0 !important;
2221
- }
2222
-
2223
- /* ── 6.9 列表:GB/T 7713 学术论文规范 ── */
2224
- body.theme-custom ul, body.theme-custom ol {
2225
- margin: 6px 0 6px 2em !important;
2226
- padding-left: 1.5em !important;
2227
- list-style: none !important;
2228
- }
2229
- body.theme-custom ul ul, body.theme-custom ul ol,
2230
- body.theme-custom ol ul, body.theme-custom ol ol {
2231
- margin: 0 !important;
2232
- padding-left: 1.5em !important;
2233
- list-style: none !important;
2234
- }
2235
-
2236
- body.theme-custom li {
2237
- font-family: var(--font-body) !important;
2238
- font-size: var(--font-size-root) !important;
2239
- line-height: 1.6 !important;
2240
- color: var(--text-color) !important;
2241
- text-indent: 0 !important;
2242
- list-style: none !important;
2243
- padding: 2px 0 !important;
2244
- }
2245
- body.theme-custom li > p {
2246
- display: inline !important;
2247
- margin: 0 !important;
2248
- padding: 0 !important;
2249
- text-indent: 0 !important;
2250
- }
2251
- body.theme-custom li strong {
2252
- font-family: inherit !important;
2253
- font-weight: 700 !important;
2254
- }
2255
- body.theme-custom li::before {
2256
- display: inline !important;
2257
- margin-right: 0.35em !important;
2258
- }
2259
-
2260
- body.theme-custom ol { counter-reset: ol-lv1 !important; }
2261
- body.theme-custom ol > li { counter-increment: ol-lv1 !important; }
2262
- body.theme-custom ol > li::before { content: counter(ol-lv1) "." !important; }
2263
- body.theme-custom ol > li > ol { counter-reset: ol-lv2 !important; }
2264
- body.theme-custom ol > li > ol > li { counter-increment: ol-lv2 !important; }
2265
- body.theme-custom ol > li > ol > li::before { content: "(" counter(ol-lv2) ")" !important; }
2266
- body.theme-custom ol > li > ol > li > ol { counter-reset: ol-lv3 !important; }
2267
- body.theme-custom ol > li > ol > li > ol > li { counter-increment: ol-lv3 !important; }
2268
- body.theme-custom ol > li > ol > li > ol > li::before { content: counter(ol-lv3, cjk-ideographic) "" !important; }
2269
-
2270
- body.theme-custom ul { counter-reset: ul-lv1 !important; }
2271
- body.theme-custom ul > li { counter-increment: ul-lv1 !important; }
2272
- body.theme-custom ul > li::before { content: "\25A0\00A0" !important; }
2273
- body.theme-custom ul > li > ul { counter-reset: ul-lv2 !important; }
2274
- body.theme-custom ul > li > ul > li { counter-increment: ul-lv2 !important; }
2275
- body.theme-custom ul > li > ul > li::before { content: "\25CF\00A0" !important; }
2276
- body.theme-custom ul > li > ul > li > ul { counter-reset: ul-lv3 !important; }
2277
- body.theme-custom ul > li > ul > li > ul > li { counter-increment: ul-lv3 !important; }
2278
- body.theme-custom ul > li > ul > li > ul > li::before { content: "\25CB\00A0" !important; }
2279
- body.theme-custom ul ul ul ul > li::before { content: "\25C6\00A0" !important; }
2280
-
2281
- /* ── 6.10 内联代码 ── */
2282
- body.theme-custom code {
2283
- background: var(--code-bg) !important;
2284
- color: var(--code-color) !important;
2285
- border: none !important;
2286
- border-radius: 0 !important;
2287
- padding: 1px 6px !important;
2288
- font-family: var(--font-code) !important;
2289
- font-size: 0.88em !important;
2290
- -webkit-print-color-adjust: exact !important;
2291
- print-color-adjust: exact !important;
2292
- }
2293
-
2294
- /* ── 6.11 代码块 ── */
2295
- body.theme-custom pre {
2296
- background: var(--code-block-bg) !important;
2297
- color: var(--code-block-text) !important;
2298
- border: 1px solid var(--border-color) !important;
2299
- border-radius: 0 !important;
2300
- font-size: 14px !important;
2301
- line-height: var(--line-height-code) !important;
2302
- font-family: var(--font-code) !important;
2303
- padding: 14px 18px !important;
2304
- margin: 16px 0 !important;
2305
- -webkit-print-color-adjust: exact !important;
2306
- print-color-adjust: exact !important;
2307
- }
2308
- body.theme-custom pre code {
2309
- background: transparent !important;
2310
- color: inherit !important;
2311
- border: none !important;
2312
- padding: 0 !important;
2313
- margin: 0 !important;
2314
- border-radius: 0 !important;
2315
- }
2316
-
2317
- /* ── 6.12 表格:三线表规范 ── */
2318
- body.theme-custom table {
2319
- width: 100% !important;
2320
- border-collapse: collapse !important;
2321
- border-top: 2px solid var(--table-border) !important;
2322
- border-bottom: 2px solid var(--table-border) !important;
2323
- border-left: none !important;
2324
- border-right: none !important;
2325
- font-size: 14px !important;
2326
- line-height: 1.5 !important;
2327
- margin: 18px auto !important;
2328
- }
2329
- body.theme-custom table th {
2330
- border: none !important;
2331
- border-bottom: 2px solid var(--table-border) !important;
2332
- background: var(--table-header-bg) !important;
2333
- -webkit-print-color-adjust: exact !important;
2334
- print-color-adjust: exact !important;
2335
- font-family: var(--font-heading) !important;
2336
- font-size: 14px !important;
2337
- font-weight: 700 !important;
2338
- color: var(--table-header-text) !important;
2339
- padding: 8px 10px !important;
2340
- text-align: center !important;
2341
- text-indent: 0 !important;
2342
- vertical-align: middle !important;
2343
- }
2344
- body.theme-custom table td {
2345
- border: none !important;
2346
- font-family: var(--font-body) !important;
2347
- font-size: 14px !important;
2348
- color: var(--text-color) !important;
2349
- padding: 8px 10px !important;
2350
- text-align: left !important;
2351
- text-indent: 0 !important;
2352
- vertical-align: top !important;
2353
- }
2354
- body.theme-custom table p, body.theme-custom table td p {
2355
- font-family: var(--font-body) !important;
2356
- font-size: 14px !important;
2357
- margin: 0 !important;
2358
- padding: 0 !important;
2359
- text-align: left !important;
2360
- text-indent: 0 !important;
2361
- line-height: 1.4 !important;
2362
- }
2363
- body.theme-custom table strong {
2364
- font-weight: 700 !important;
2365
- font-family: inherit !important;
2366
- }
2367
-
2368
- /* ── 6.13 数学公式 ── */
2369
- body.theme-custom .math-inline, body.theme-custom .math-block {
2370
- color: var(--text-color) !important;
2371
- -webkit-print-color-adjust: exact !important;
2372
- print-color-adjust: exact !important;
2373
- }
2374
-
2375
- /* ── 6.14 Mermaid 图表 ── */
2376
- body.theme-custom .mermaid-block,
2377
- body.theme-custom .mermaid-preview,
2378
- .md-diagram-panel.md-mermaid {
2379
- background: var(--mermaid-background) !important;
2380
- border: 1px solid var(--mermaid-border-color) !important;
2381
- border-radius: 0 !important;
2382
- -webkit-print-color-adjust: exact !important;
2383
- print-color-adjust: exact !important;
2384
- }
2385
- body.theme-custom .mermaid-preview svg,
2386
- body.theme-custom .mermaid-preview svg * {
2387
- -webkit-print-color-adjust: exact !important;
2388
- print-color-adjust: exact !important;
2389
- }
2390
- body.theme-custom .mermaid-block + p {
2391
- font-family: var(--font-body) !important;
2392
- font-size: 14px !important;
2393
- text-align: center !important;
2394
- color: var(--text-color) !important;
2395
- }
2396
-
2397
- /* ── 6.15 脚注 ── */
2398
- body.theme-custom .footnotes {
2399
- border-top: 1px solid var(--border-color) !important;
2400
- font-size: 12px !important;
2401
- }
2402
-
2403
- /* ── 6.16 分页控制 ── */
2404
- body.theme-custom h1 { page-break-before: avoid; }
2405
- body.theme-custom h2, body.theme-custom h3, body.theme-custom h4,
2406
- body.theme-custom h5, body.theme-custom h6 { page-break-after: avoid; }
2407
- body.theme-custom table, body.theme-custom figure, body.theme-custom img { page-break-inside: avoid; }
2408
- body.theme-custom p { orphans: 3; widows: 3; }
2409
-
2410
- /* ── 6.17 防止内容溢出 ── */
2411
- body.theme-custom pre, body.theme-custom .md-fences,
2412
- body.theme-custom .mermaid-block, body.theme-custom .md-diagram-panel {
2413
- overflow: visible !important;
2414
- white-space: pre-wrap !important;
2415
- word-wrap: break-word !important;
2416
- }
2417
- }
2418
-
2419
- /* ── 5.17 滚动条 ── */
2420
- body.theme-custom { scrollbar-width: auto; scrollbar-color: var(--scrollbar-thumb); }
2421
-
2422
- /* ── 5.18 源码编辑模式 ── */
2423
- body.theme-custom #source-editor {
2424
- font-family: var(--font-code);
2425
- font-size: var(--font-size-root);
2426
- line-height: var(--line-height-code);
2427
- background: var(--bg-color);
2428
- color: var(--text-color);
2429
- >>>>>>> 03f391d7d49b3b6760b57f5eaed15d463308f22a
2430
- }
1
+ /*
2
+ * ColaMD 主题:Academic Style(学术论文)
3
+ * 风格:纯白底 + 纯黑正文 + 灰度图表,遵循 GB/T 7713 中文学术论文排版
4
+ * 宋体正文 + 黑体标题 + 三线表 + 首行缩进 2 字符
5
+ * 契约:ColaMD Extend 2.7(CodeMirror 6 + Pele)
6
+ *
7
+ * 迁移说明:编辑器换成 CodeMirror 6 后,标题是一「行」带类,引用/代码块是每行
8
+ * 一个 div,旧的文档容器与元素级结构选择器全部失效。
9
+ * 这里保留能落在行级的版式:黑体标题、宋体正文、首行缩进、三线表、左竖线引用、
10
+ * 黑白代码块;A4 页边距、分页控制、图题/脚注/参考文献等文档级结构交给上游
11
+ * document.css。
12
+ */
13
+
14
+ :root {
15
+ /* ── 1.1 Seed Palette(印刷灰度,10 级亮度感知) ── */
16
+ --seed-accent: #111111;
17
+ --seed-accent-light: #e0e0e0;
18
+ --seed-accent-dark: #000000;
19
+ --seed-surface: #ffffff;
20
+ --seed-panel: #f5f5f5;
21
+ --seed-panel-alt: #e8e8e8;
22
+ --seed-ink: #111111;
23
+ --seed-ink-muted: #333333;
24
+ --seed-ink-dim: #666666;
25
+ --seed-border: #cccccc;
26
+ --seed-border-strong: #111111;
27
+
28
+ /* ── 1.2 Semantic Colors(活变量) ── */
29
+ --bg-color: var(--seed-surface);
30
+ --text-color: var(--seed-ink);
31
+ --text-secondary: var(--seed-ink-muted);
32
+ --text-muted: var(--seed-ink-dim);
33
+ --border-color: var(--seed-border);
34
+ --link-color: var(--seed-accent);
35
+
36
+ --code-bg: var(--seed-panel-alt);
37
+ --code-block-bg: var(--seed-panel);
38
+ --code-block-text: var(--seed-ink);
39
+
40
+ --blockquote-border: var(--seed-ink);
41
+ --blockquote-bg: #fafafa;
42
+ --table-header-bg: transparent;
43
+
44
+ --selection-bg: rgba(0, 0, 0, 0.12);
45
+ --highlight-bg: var(--seed-accent-light);
46
+
47
+ /* ── 1.3 Typography & Metrics(活变量) ── */
48
+ --font-body: "SimSun", "Songti SC", "Source Han Serif SC", "Noto Serif SC", Georgia, "Times New Roman", serif;
49
+ --font-mono: "Courier New", "Consolas", "Source Code Pro", monospace;
50
+ --editor-font-size: 16px;
51
+ --editor-column-width: 780px;
52
+
53
+ /* ── 1.4 Pele 图表:白底黑线的印刷灰度 ── */
54
+ --pele-bg: var(--code-block-bg);
55
+ --pele-fg: var(--code-block-text);
56
+ --pele-muted: var(--seed-ink-dim);
57
+ --pele-line: var(--seed-ink);
58
+ --pele-surface: var(--seed-panel-alt);
59
+ --pele-surface-alt: var(--seed-border);
60
+ --pele-border: var(--seed-ink);
61
+ --pele-accent: var(--seed-ink);
62
+ --pele-radius: 0px;
63
+ }
64
+
65
+ /* ═══════════════════════════════════════════════════════════
66
+ SECTION 2 — 编辑器 DOM(#editor .cm-content + .cm-md-*)
67
+ ═══════════════════════════════════════════════════════════ */
68
+
69
+ /* ── 2.0 正文:宋体、1.5 倍行距、两端对齐 ── */
70
+ #editor .cm-content {
71
+ font-family: var(--font-body);
72
+ font-size: var(--editor-font-size);
73
+ line-height: 1.5;
74
+ text-align: justify;
75
+ }
76
+
77
+ /* ── 2.1 标题:黑体,GB/T 7713 字号阶梯 ──
78
+ 三号/四号/小四号按 16px 基准折算为 em,纵向节奏用 padding 而非 margin,
79
+ 避免 CM6 逐行测量时行高抖动。 */
80
+ #editor .cm-content .cm-md-atxheading1,
81
+ #editor .cm-content .cm-md-atxheading2,
82
+ #editor .cm-content .cm-md-atxheading3,
83
+ #editor .cm-content .cm-md-atxheading4,
84
+ #editor .cm-content .cm-md-atxheading5,
85
+ #editor .cm-content .cm-md-atxheading6 {
86
+ font-family: "SimHei", "Heiti SC", "Source Han Sans SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;
87
+ color: var(--text-color);
88
+ font-weight: 700;
89
+ line-height: 1.35;
90
+ text-align: left;
91
+ padding-top: 0.7em;
92
+ }
93
+
94
+ /* 论文题目:三号,居中,段前后各留一行 */
95
+ #editor .cm-content .cm-md-atxheading1 {
96
+ font-size: 1.375em;
97
+ text-align: center;
98
+ padding-top: 1.2em;
99
+ padding-bottom: 0.8em;
100
+ }
101
+ /* 一级节:四号,左对齐 */
102
+ #editor .cm-content .cm-md-atxheading2 {
103
+ font-size: 1.125em;
104
+ padding-top: 0.9em;
105
+ padding-bottom: 0.45em;
106
+ }
107
+ /* 二、三级节:小四号,左对齐 */
108
+ #editor .cm-content .cm-md-atxheading3,
109
+ #editor .cm-content .cm-md-atxheading4 {
110
+ font-size: 1em;
111
+ }
112
+ /* 五、六级:五号,末级标题转灰 */
113
+ #editor .cm-content .cm-md-atxheading5,
114
+ #editor .cm-content .cm-md-atxheading6 {
115
+ font-size: 0.875em;
116
+ }
117
+ #editor .cm-content .cm-md-atxheading6 { color: var(--text-secondary); }
118
+
119
+ /* ── 2.2 行内:学术风不用彩色,强调靠加粗 ── */
120
+ #editor .cm-content .cm-md-strong {
121
+ color: var(--text-color);
122
+ font-weight: 700;
123
+ }
124
+ #editor .cm-content .cm-md-em { font-style: italic; color: var(--text-color); }
125
+ #editor .cm-content .cm-md-strike { color: var(--text-muted); text-decoration: line-through; }
126
+ #editor .cm-content .cm-md-highlight {
127
+ background: var(--highlight-bg);
128
+ padding: 1px 3px;
129
+ border-radius: 0;
130
+ }
131
+
132
+ /* 链接:黑字 + 下划线(印刷友好) */
133
+ #editor .cm-content .cm-md-link {
134
+ color: var(--link-color);
135
+ text-decoration: none;
136
+ border-bottom: 1px solid var(--link-color);
137
+ }
138
+ #editor .cm-content .cm-md-url {
139
+ color: var(--text-muted);
140
+ border-bottom: none;
141
+ font-size: 0.9em;
142
+ }
143
+
144
+ /* 标记字符:# > - 围栏,压淡 */
145
+ #editor .cm-content .cm-md-marker,
146
+ #editor .cm-content .cm-md-quotemark {
147
+ color: var(--text-muted);
148
+ }
149
+ #editor .cm-content .cm-md-listmark {
150
+ color: var(--text-color);
151
+ font-weight: 700;
152
+ }
153
+
154
+ /* ── 2.3 内联代码:浅灰底、等宽、直角 ── */
155
+ #editor .cm-content .cm-md-inlinecode {
156
+ font-family: var(--font-mono);
157
+ font-size: 0.88em;
158
+ background: var(--code-bg);
159
+ color: var(--text-color);
160
+ padding: 1px 5px;
161
+ border-radius: 0;
162
+ }
163
+
164
+ /* ── 2.4 引用块:浅灰底 + 左侧黑竖线(每行一个 div,禁纵向 padding) ── */
165
+ #editor .cm-content .cm-md-blockquote {
166
+ background: var(--blockquote-bg);
167
+ color: var(--text-secondary);
168
+ border-left: 3px solid var(--blockquote-border);
169
+ padding-left: 22px;
170
+ padding-right: 16px;
171
+ font-size: 0.95em;
172
+ line-height: 1.6;
173
+ }
174
+
175
+ /* ── 2.5 代码块:浅灰底黑字,左侧黑条 + 首末行上下细线 ──
176
+ 逐行 div 不能给整块加边框/纵向 padding,否则每行都会重画一遍。 */
177
+ #editor .cm-content .cm-md-codeblock {
178
+ font-family: var(--font-mono);
179
+ font-size: 0.875em;
180
+ line-height: 1.6;
181
+ background: var(--code-block-bg);
182
+ color: var(--code-block-text);
183
+ border-left: 3px solid var(--seed-ink);
184
+ padding-left: 18px;
185
+ padding-right: 18px;
186
+ }
187
+ #editor .cm-content .cm-md-codeblock-first {
188
+ border-top: 1px solid var(--seed-ink);
189
+ border-radius: 0;
190
+ }
191
+ #editor .cm-content .cm-md-codeblock-last {
192
+ border-bottom: 1px solid var(--seed-ink);
193
+ border-radius: 0;
194
+ }
195
+
196
+ /* ── 2.6 表格:GB/T 7713 三线表(顶线 / 表头线 / 底线,无竖线) ── */
197
+ #editor .cm-content .cm-md-table-widget {
198
+ border-top: 1.5px solid var(--seed-ink);
199
+ border-bottom: 1.5px solid var(--seed-ink);
200
+ }
201
+ #editor .cm-content .cm-md-table-widget th,
202
+ #editor .cm-content .cm-md-table-widget td {
203
+ border: none;
204
+ padding: 8px 12px;
205
+ font-size: 0.875em;
206
+ line-height: 1.5;
207
+ }
208
+ #editor .cm-content .cm-md-table-widget th {
209
+ background: var(--table-header-bg);
210
+ color: var(--text-color);
211
+ font-family: "SimHei", "Heiti SC", "Source Han Sans SC", "Noto Sans SC", sans-serif;
212
+ font-weight: 700;
213
+ text-align: center;
214
+ vertical-align: middle;
215
+ border-bottom: 1px solid var(--seed-ink);
216
+ }
217
+ #editor .cm-content .cm-md-table-widget td {
218
+ color: var(--text-color);
219
+ text-align: left;
220
+ vertical-align: top;
221
+ }
222
+
223
+ /* ── 2.7 分隔线:细黑线,大留白 ── */
224
+ #editor .cm-content .cm-md-hr {
225
+ border-top: 1px solid var(--seed-ink);
226
+ margin: 2em 0;
227
+ }
228
+
229
+ /* ── 2.8 中文首行缩进:段落缩进落在 .cm-line,结构行归零 ── */
230
+ #editor .cm-content .cm-line { text-indent: 2em; }
231
+
232
+ #editor .cm-content .cm-md-atxheading1,
233
+ #editor .cm-content .cm-md-atxheading2,
234
+ #editor .cm-content .cm-md-atxheading3,
235
+ #editor .cm-content .cm-md-atxheading4,
236
+ #editor .cm-content .cm-md-atxheading5,
237
+ #editor .cm-content .cm-md-atxheading6,
238
+ #editor .cm-content .cm-md-blockquote,
239
+ #editor .cm-content .cm-md-codeblock,
240
+ #editor .cm-content .cm-md-hr,
241
+ #editor .cm-content .cm-md-mermaid,
242
+ #editor .cm-content .cm-md-li-0,
243
+ #editor .cm-content .cm-md-li-1,
244
+ #editor .cm-content .cm-md-li-2,
245
+ #editor .cm-content .cm-md-li-3,
246
+ #editor .cm-content .cm-md-li-4,
247
+ #editor .cm-content .cm-md-li-5,
248
+ #editor .cm-content .cm-md-li-6 {
249
+ text-indent: 0;
250
+ }
251
+
252
+ /* ═══════════════════════════════════════════════════════════
253
+ SECTION 3 — 导出 HTML(.colamd-document,只补配色)
254
+ 结构(页边距、标题层级、列表缩进)由上游 document.css 提供。
255
+ ═══════════════════════════════════════════════════════════ */
256
+
257
+ .colamd-document {
258
+ font-family: var(--font-body);
259
+ font-size: var(--editor-font-size);
260
+ line-height: 1.5;
261
+ text-align: justify;
262
+ background: var(--bg-color);
263
+ color: var(--text-color);
264
+ }
265
+
266
+ .colamd-document h1,
267
+ .colamd-document h2,
268
+ .colamd-document h3,
269
+ .colamd-document h4,
270
+ .colamd-document h5,
271
+ .colamd-document h6 {
272
+ font-family: "SimHei", "Heiti SC", "Source Han Sans SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;
273
+ color: var(--text-color);
274
+ font-weight: 700;
275
+ line-height: 1.35;
276
+ }
277
+ .colamd-document h1 { font-size: 1.375em; text-align: center; }
278
+ .colamd-document h2 { font-size: 1.125em; }
279
+ .colamd-document h3,
280
+ .colamd-document h4 { font-size: 1em; }
281
+ .colamd-document h5,
282
+ .colamd-document h6 { font-size: 0.875em; }
283
+ .colamd-document h6 { color: var(--text-secondary); }
284
+
285
+ .colamd-document strong { color: var(--text-color); }
286
+ .colamd-document em { color: var(--text-color); }
287
+ .colamd-document a {
288
+ color: var(--link-color);
289
+ text-decoration: none;
290
+ border-bottom: 1px solid var(--link-color);
291
+ }
292
+ .colamd-document code {
293
+ background: var(--code-bg);
294
+ color: var(--text-color);
295
+ font-family: var(--font-mono);
296
+ border-radius: 0;
297
+ }
298
+ .colamd-document pre {
299
+ background: var(--code-block-bg);
300
+ border-left: 3px solid var(--seed-ink);
301
+ border-radius: 0;
302
+ }
303
+ .colamd-document pre code {
304
+ background: transparent;
305
+ color: var(--code-block-text);
306
+ }
307
+ .colamd-document blockquote {
308
+ background: var(--blockquote-bg);
309
+ color: var(--text-secondary);
310
+ border-left: 3px solid var(--blockquote-border);
311
+ }
312
+ .colamd-document mark { background: var(--highlight-bg); }
313
+ .colamd-document th {
314
+ background: var(--table-header-bg);
315
+ color: var(--text-color);
316
+ font-family: "SimHei", "Heiti SC", "Source Han Sans SC", "Noto Sans SC", sans-serif;
317
+ border-bottom: 1px solid var(--seed-ink);
318
+ }
319
+ .colamd-document hr { border-top-color: var(--seed-ink); }
320
+
321
+ .colamd-document p { text-indent: 2em; }
322
+ .colamd-document li p,
323
+ .colamd-document td p,
324
+ .colamd-document th p,
325
+ .colamd-document blockquote p {
326
+ text-indent: 0;
327
+ }
328
+
329
+ /* ═══════════════════════════════════════════════════════════
330
+ SECTION 4 — 打印
331
+ 2.7 直接对当前窗口 printToPDF,屏幕规则原样生效,这里只补保真。
332
+ ═══════════════════════════════════════════════════════════ */
333
+
334
+ @media print {
335
+ html,
336
+ body {
337
+ background: var(--bg-color);
338
+ color: var(--text-color);
339
+ -webkit-print-color-adjust: exact;
340
+ print-color-adjust: exact;
341
+ }
342
+ }