@bytechain.cn/colamd-themes 0.3.0 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.openclaw/skills/colamd-themes/SKILL.md +15 -124
- package/.trae/rules/colamd-themes.md +15 -124
- package/CHANGELOG.md +142 -3
- package/README.md +12 -1
- package/README_CN.md +12 -1
- package/RELEASENOTE.md +212 -0
- package/dist/cli.js +278 -2
- package/dist/cli.js.map +1 -1
- package/dist/export-cli.d.ts +1 -0
- package/dist/export-cli.js +208 -176
- package/dist/export-cli.js.map +1 -1
- package/dist/extractors/url-extractor.d.ts +6 -0
- package/dist/extractors/url-extractor.js +51 -2
- package/dist/extractors/url-extractor.js.map +1 -1
- package/dist/generator.d.ts +4 -0
- package/dist/generator.js +74 -7
- package/dist/generator.js.map +1 -1
- package/dist/renderer.d.ts +1 -1
- package/dist/renderer.js +87 -14
- package/dist/renderer.js.map +1 -1
- package/dist/theme-store.d.ts +7 -6
- package/dist/theme-store.js +84 -34
- package/dist/theme-store.js.map +1 -1
- package/dist/utils/cli-utils.d.ts +55 -0
- package/dist/utils/cli-utils.js +80 -0
- package/dist/utils/cli-utils.js.map +1 -0
- package/package.json +1 -1
- package/skills/colamd-themes/SKILL.md +30 -0
- package/src/cli.ts +289 -2
- package/src/export-cli.ts +248 -193
- package/src/extractors/url-extractor.ts +56 -2
- package/src/generator.ts +88 -7
- package/src/renderer.ts +96 -14
- package/src/theme-store.ts +93 -35
- package/src/utils/cli-utils.ts +84 -0
- package/.claude/skills/colamd-themes-preview.skill.md +0 -333
- package/.claude/skills/colamd-themes.skill.md +0 -155
- package/.hermes/skills/tools/colamd-themes/SKILL.md +0 -159
- package/.opencode/skills/colamd-themes/SKILL.md +0 -162
package/RELEASENOTE.md
CHANGED
|
@@ -1,5 +1,216 @@
|
|
|
1
1
|
# Release Notes
|
|
2
2
|
|
|
3
|
+
## Version 0.3.2 (2026-05-29) — Theme Authoring Guide 📝
|
|
4
|
+
|
|
5
|
+
> **AI agent skill enhancement**: Added comprehensive CSS pitfall quick reference for reliable theme generation.
|
|
6
|
+
|
|
7
|
+
### 📝 AI Agent Skill Update
|
|
8
|
+
|
|
9
|
+
**CSS Pitfall Quick Reference**
|
|
10
|
+
- Added 6-topic theme authoring guide to all AI agent skill definitions:
|
|
11
|
+
1. **Screen & Print Sync** — every SECTION 5 rule must mirror in SECTION 6 `@media print`
|
|
12
|
+
2. **Body Text First-Line Indent** — correct selector chain: `body.theme-custom p, body.theme-custom #write > p`
|
|
13
|
+
3. **Indent Exclusion** — prevent indent pollution in lists, tables, mermaid blocks, blockquotes, and figures
|
|
14
|
+
4. **List Indentation** — use `margin-left: 2em` instead of `padding-left`; include `#editor .ProseMirror` selectors
|
|
15
|
+
5. **Mermaid CJK Text Overflow** — ≤ 2 lines per node, `fontSize: 14px`, simplified text
|
|
16
|
+
6. **Mermaid classDef Inheritance** — must explicitly declare `fill / color / stroke`
|
|
17
|
+
- References `academic-paper.css` and `swiss-design.css` as canonical examples
|
|
18
|
+
- Skill files affected: `.claude/skills/`, `.opencode/skills/`, `.openclaw/skills/`, `.hermes/skills/`, `.trae/rules/`
|
|
19
|
+
|
|
20
|
+
### 🔧 Changes
|
|
21
|
+
|
|
22
|
+
- Consolidated all unreleased changes from v0.3.1 into this patch release
|
|
23
|
+
- Updated CHANGELOG and version links for the 0.3.2 release
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## Version 0.3.1 (2026-06-01) — Security & Stability Patch 🔒
|
|
28
|
+
|
|
29
|
+
> **Important**: This release contains critical security fixes and important stability improvements.
|
|
30
|
+
> **All users are strongly recommended to upgrade.**
|
|
31
|
+
|
|
32
|
+
### 🚨 Critical Security Fixes
|
|
33
|
+
|
|
34
|
+
**SSRF Vulnerability Patch (CVE-Level)**
|
|
35
|
+
- **Issue**: URL extractor was vulnerable to Server-Side Request Forgery attacks
|
|
36
|
+
- Attackers could force the server to access internal network resources
|
|
37
|
+
- Could expose sensitive internal services or cause denial-of-service
|
|
38
|
+
- **Fix**: Implemented comprehensive URL validation in [`url-extractor.ts`](src/extractors/url-extractor.ts):
|
|
39
|
+
- ✅ Protocol whitelist: Only `http:` and `https:` allowed
|
|
40
|
+
- ✅ Private network blocking: localhost, 10.x, 172.16-31.x, 192.168.x, 169.254.x
|
|
41
|
+
- ✅ Clear error messages for blocked attempts
|
|
42
|
+
- **Impact**: Prevents unauthorized internal network access; protects against SSRF attacks
|
|
43
|
+
|
|
44
|
+
**Input Validation Hardening**
|
|
45
|
+
- **Issue**: No validation on custom CSS theme files before processing
|
|
46
|
+
- Large files could cause memory exhaustion (OOM)
|
|
47
|
+
- Invalid file formats could crash the process
|
|
48
|
+
- **Fix**: Added multi-layer validation in [`theme-store.ts`](src/theme-store.ts):
|
|
49
|
+
- ✅ File extension check (must be `.css`)
|
|
50
|
+
- ✅ Size limit enforcement (1MB maximum)
|
|
51
|
+
- ✅ Content validity verification (minimum 10 characters)
|
|
52
|
+
- ✅ Sanitized filename extraction (removes special chars, limits length)
|
|
53
|
+
- **Impact**: Prevents OOM attacks; ensures graceful error handling
|
|
54
|
+
|
|
55
|
+
### 🐛 Major Bug Fixes
|
|
56
|
+
|
|
57
|
+
**PDF Export Theme Not Applied**
|
|
58
|
+
- **Symptom**: Custom themes were ignored when exporting to PDF; documents rendered with default styling only
|
|
59
|
+
- **Root Cause**: Puppeteer's `emulateMediaType("screen")` forced browser into screen mode, causing CSS `@media print { ... }` rules to be completely ignored
|
|
60
|
+
- **Fix**: Removed screen media type emulation in [`renderer.ts`](src/renderer.ts); allows default print mode where all `@media print` styles apply correctly
|
|
61
|
+
- **Result**: PDF exports now render with full theme fidelity — colors, fonts, backgrounds, spacing, and all visual styling correctly applied
|
|
62
|
+
|
|
63
|
+
**Puppeteer Resource Leak**
|
|
64
|
+
- **Symptom**: Zombie Chromium processes left running after export operations completed
|
|
65
|
+
- **Cause**: Page objects not explicitly closed before browser termination
|
|
66
|
+
- **Fix**: Explicit page cleanup in [`renderer.ts`](src/renderer.ts#L150-L155) close() method
|
|
67
|
+
- **Result**: Clean process shutdown; no resource leaks
|
|
68
|
+
|
|
69
|
+
**CLI Version Display Incorrect**
|
|
70
|
+
- **Symptom**: `colamd-themes --version` always showed "0.2.0" regardless of actual version
|
|
71
|
+
- **Cause**: Hardcoded version string in CLI initialization
|
|
72
|
+
- **Fix**: Dynamic version reading from [`package.json`](package.json) via [`getPackageVersion()`](src/cli.ts)
|
|
73
|
+
- **Result**: Accurate version display matching published package version
|
|
74
|
+
|
|
75
|
+
### ⚡ Performance Improvements
|
|
76
|
+
|
|
77
|
+
**Async I/O Migration**
|
|
78
|
+
- **Before**: Synchronous file operations (`readFileSync`, `writeFileSync`) blocked event loop during theme configuration
|
|
79
|
+
- **After**: All theme store operations now use async API (`fs/promises`)
|
|
80
|
+
- **Benefit**:
|
|
81
|
+
- Non-blocking configuration reads/writes
|
|
82
|
+
- Improved responsiveness during batch exports
|
|
83
|
+
- Better scalability for concurrent operations
|
|
84
|
+
- **Files Updated**: [`theme-store.ts`](src/theme-store.ts)
|
|
85
|
+
|
|
86
|
+
**Template Cache Management**
|
|
87
|
+
- **Before**: Single global template variable; recompiled on every call after first use; no size limits
|
|
88
|
+
- **After**: Sophisticated cache system with three-layer invalidation:
|
|
89
|
+
1. **LRU Eviction**: Maximum 10 cached templates (evicts oldest when full)
|
|
90
|
+
2. **TTL Expiration**: Automatic expiry after 30 minutes of inactivity
|
|
91
|
+
3. **mtime Detection**: Auto-invalidates when source template file is modified on disk
|
|
92
|
+
- **Benefit**:
|
|
93
|
+
- ~90% reduction in template compilations for repeated operations
|
|
94
|
+
- Stable memory usage in long-running processes
|
|
95
|
+
- Fresh templates automatically loaded after updates
|
|
96
|
+
- **Files Updated**: [`generator.ts`](src/generator.ts)
|
|
97
|
+
|
|
98
|
+
### 🛠️ Code Quality Enhancements
|
|
99
|
+
|
|
100
|
+
**Unified Error Handling System**
|
|
101
|
+
- **New Module**: [`cli-utils.ts`](src/utils/cli-utils.ts)
|
|
102
|
+
- **Features**:
|
|
103
|
+
- `CLIError` class: Structured errors with code, message, and cause chain
|
|
104
|
+
- `ErrorCode` enum: Standardized categories (FILE_NOT_FOUND, THEME_ERROR, RENDER_ERROR, INVALID_INPUT, UNKNOWN)
|
|
105
|
+
- Consistent error propagation across all commands
|
|
106
|
+
- **Impact**:
|
|
107
|
+
- Better debugging experience with detailed error context
|
|
108
|
+
- Consistent user-facing error messages
|
|
109
|
+
- Easier error tracking and logging
|
|
110
|
+
- Process exits with meaningful exit codes
|
|
111
|
+
|
|
112
|
+
**Code Deduplication**
|
|
113
|
+
- **Extracted Utilities**:
|
|
114
|
+
- `resolveInputPath(input)`: Validates existence, converts relative→absolute paths
|
|
115
|
+
- `resolveOutputPath(input, output?, ext?)`: Smart output path derivation
|
|
116
|
+
- `getDocumentTitle(filePath)`: Extracts clean document title from path
|
|
117
|
+
- **Impact**:
|
|
118
|
+
- Eliminated duplicate path resolution logic across 4+ command handlers
|
|
119
|
+
- Single source of truth reduces maintenance burden
|
|
120
|
+
- Consistent behavior across all export commands
|
|
121
|
+
|
|
122
|
+
### 📊 Metrics & Benchmarks
|
|
123
|
+
|
|
124
|
+
| Metric | v0.3.0 | v0.3.1 | Improvement |
|
|
125
|
+
|--------|--------|--------|-------------|
|
|
126
|
+
| **Security Vulnerabilities** | 2 Critical | 0 Known | ✅ Resolved |
|
|
127
|
+
| **Memory Usage (100 files)** | Unbounded | Stable | ✅ Predictable |
|
|
128
|
+
| **Template Compilations** | ~100 per batch | ~10 max | ⚡ 90% fewer |
|
|
129
|
+
| **Event Loop Blocking** | Frequent sync I/O | Minimal async ops | ⚡ Responsive |
|
|
130
|
+
| **Error Consistency** | Mixed patterns | Unified codes | ✅ Maintainable |
|
|
131
|
+
| **Zombie Processes** | Possible leak | Clean shutdown | ✅ Reliable |
|
|
132
|
+
|
|
133
|
+
### 🔧 Migration Guide
|
|
134
|
+
|
|
135
|
+
**For Most Users**: No action required! This is a drop-in replacement.
|
|
136
|
+
|
|
137
|
+
**Breaking Changes**: None — fully backward compatible.
|
|
138
|
+
|
|
139
|
+
**API Changes** (for programmatic usage):
|
|
140
|
+
```typescript
|
|
141
|
+
// Before (v0.3.0): Sync API
|
|
142
|
+
import { resolveTheme } from '@bytechain.cn/colamd-themes';
|
|
143
|
+
const theme = resolveTheme('elegant'); // Sync
|
|
144
|
+
|
|
145
|
+
// After (v0.3.1): Async API
|
|
146
|
+
import { resolveTheme } from '@bytechain.cn/colamd-themes';
|
|
147
|
+
const theme = await resolveTheme('elegant'); // Async
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**New Error Handling** (recommended):
|
|
151
|
+
```typescript
|
|
152
|
+
import { CLIError, ErrorCode } from '@bytechain.cn/colamd-themes';
|
|
153
|
+
|
|
154
|
+
try {
|
|
155
|
+
await exportHTML(document, { theme: 'custom' });
|
|
156
|
+
} catch (error) {
|
|
157
|
+
if (error instanceof CLIError) {
|
|
158
|
+
console.error(`Error ${error.code}: ${error.message}`);
|
|
159
|
+
// Handle specific error types
|
|
160
|
+
switch (error.code) {
|
|
161
|
+
case ErrorCode.FILE_NOT_FOUND: /* ... */ break;
|
|
162
|
+
case ErrorCode.THEME_ERROR: /* ... */ break;
|
|
163
|
+
case ErrorCode.RENDER_ERROR: /* ... */ break;
|
|
164
|
+
default: /* ... */ break;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### ✅ Testing Recommendations
|
|
171
|
+
|
|
172
|
+
After upgrading, verify these critical scenarios:
|
|
173
|
+
|
|
174
|
+
1. **Security Test**:
|
|
175
|
+
```bash
|
|
176
|
+
# Should be blocked (private network)
|
|
177
|
+
cthemes from-url "http://localhost:3000" --name test
|
|
178
|
+
|
|
179
|
+
# Should be blocked (invalid protocol)
|
|
180
|
+
cthemes from-url "ftp://example.com/file.css" --name test
|
|
181
|
+
|
|
182
|
+
# Should work (public HTTPS)
|
|
183
|
+
cthemes from-url "https://example.com" --name my-theme
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
2. **PDF Export Test**:
|
|
187
|
+
```bash
|
|
188
|
+
# Verify themes now apply correctly
|
|
189
|
+
cthemes export-pdf doc.md -t elegant -o test.pdf
|
|
190
|
+
open test.pdf # Check styling is applied
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
3. **Version Display Test**:
|
|
194
|
+
```bash
|
|
195
|
+
# Should show 0.3.1
|
|
196
|
+
cthemes --version
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
4. **Large File Protection Test**:
|
|
200
|
+
```bash
|
|
201
|
+
# Create a large CSS file (>1MB)
|
|
202
|
+
dd if=/dev/urandom of=large-theme.css bs=1024 count=1100
|
|
203
|
+
|
|
204
|
+
# Should fail gracefully
|
|
205
|
+
cthemes set-theme big --css large-theme.css
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### 📝 Full Changelog
|
|
209
|
+
|
|
210
|
+
For complete details on all changes, see [CHANGELOG.md](./CHANGELOG.md).
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
3
214
|
## Version 0.3.0 (2026-06-01)
|
|
4
215
|
|
|
5
216
|
### 📦 Package Name Change
|
|
@@ -169,6 +380,7 @@ open preview.html
|
|
|
169
380
|
|
|
170
381
|
- **Documentation**: [README.md](./README.md)
|
|
171
382
|
- **Chinese Documentation**: [README_CN.md](./README_CN.md)
|
|
383
|
+
- **Changelog**: [CHANGELOG.md](./CHANGELOG.md)
|
|
172
384
|
- **Issues**: [GitHub Issues](https://github.com/byteuser1977/ColaMD-themes/issues)
|
|
173
385
|
- **Contributing**: Pull requests welcome!
|
|
174
386
|
|
package/dist/cli.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
import { Command } from "commander";
|
|
3
3
|
import { existsSync, readdirSync, readFileSync } from "node:fs";
|
|
4
|
-
import { join, isAbsolute } from "node:path";
|
|
4
|
+
import { join, isAbsolute, dirname, resolve } from "node:path";
|
|
5
|
+
import { fileURLToPath } from "node:url";
|
|
6
|
+
import { execSync } from "node:child_process";
|
|
5
7
|
import chalk from "chalk";
|
|
6
8
|
import ora from "ora";
|
|
7
9
|
import { UrlExtractor } from "./extractors/url-extractor.js";
|
|
@@ -12,11 +14,196 @@ import { COLOR_SYSTEMS, getColorSystem } from "./color-systems.js";
|
|
|
12
14
|
import { MERMAID_PRESETS } from "./mermaid-presets.js";
|
|
13
15
|
import { validateSeedPalette, summarizeIssues } from "./validators.js";
|
|
14
16
|
import { registerExportCommands } from "./export-cli.js";
|
|
17
|
+
import { BUILTIN_THEMES } from "./theme-store.js";
|
|
18
|
+
/**
|
|
19
|
+
* Dynamically read version from package.json to avoid hardcoding.
|
|
20
|
+
* This ensures CLI --version always matches the published package version.
|
|
21
|
+
*/
|
|
22
|
+
function getPackageVersion() {
|
|
23
|
+
try {
|
|
24
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
25
|
+
const __dirname = dirname(__filename);
|
|
26
|
+
const pkgPath = join(__dirname, "../package.json");
|
|
27
|
+
const pkg = JSON.parse(readFileSync(pkgPath, "utf-8"));
|
|
28
|
+
return pkg.version ?? "0.0.0";
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return "0.0.0";
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/** Font stacks for each built-in theme — parsed dynamically from colamd.css. */
|
|
35
|
+
const THEME_FONTS = getBuiltinFontStacks();
|
|
36
|
+
/** Find the path to @bytechain.cn/colamd/dist/lib/colamd.css */
|
|
37
|
+
function findColamdCssPath() {
|
|
38
|
+
const candidates = [
|
|
39
|
+
resolve(dirname(new URL(import.meta.url).pathname), "../node_modules/@bytechain.cn/colamd/dist/lib/colamd.css"),
|
|
40
|
+
resolve(process.cwd(), "node_modules/@bytechain.cn/colamd/dist/lib/colamd.css"),
|
|
41
|
+
];
|
|
42
|
+
for (const p of candidates) {
|
|
43
|
+
if (existsSync(p))
|
|
44
|
+
return p;
|
|
45
|
+
}
|
|
46
|
+
return "";
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Parse font-family values for each built-in theme from colamd.css.
|
|
50
|
+
* Dynamic approach: reads `body.theme-{name} #editor .ProseMirror { font-family: ... }`
|
|
51
|
+
* instead of hardcoding font stacks.
|
|
52
|
+
*/
|
|
53
|
+
function getBuiltinFontStacks() {
|
|
54
|
+
const cssPath = findColamdCssPath();
|
|
55
|
+
if (!cssPath) {
|
|
56
|
+
// Fallback hardcoded defaults if colamd.css not found
|
|
57
|
+
return {
|
|
58
|
+
light: ["Noto Sans SC", "sans-serif"],
|
|
59
|
+
dark: ["Noto Sans SC", "sans-serif"],
|
|
60
|
+
elegant: ["LXGW WenKai", "Noto Serif SC", "serif"],
|
|
61
|
+
newsprint: ["Noto Serif SC", "serif"],
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
const css = readFileSync(cssPath, "utf-8");
|
|
65
|
+
const result = {};
|
|
66
|
+
const names = ["light", "dark", "elegant", "newsprint"];
|
|
67
|
+
for (const theme of names) {
|
|
68
|
+
// Match: body.theme-elegant #editor .ProseMirror { ... font-family: 'LXGW WenKai', ...; }
|
|
69
|
+
const re = new RegExp(`body\\.theme-${theme}\\s+#editor\\s+\\.ProseMirror\\s*\\{[^}]*font-family:\\s*([^;]+)`, "i");
|
|
70
|
+
const m = css.match(re);
|
|
71
|
+
if (m) {
|
|
72
|
+
const fonts = m[1].split(",").map((s) => s.trim().replace(/^['"]|['"]$/g, "").trim());
|
|
73
|
+
result[theme] = fonts;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
// Fill any missing themes with fallback
|
|
77
|
+
for (const theme of names) {
|
|
78
|
+
if (!result[theme]) {
|
|
79
|
+
result[theme] = ["sans-serif"];
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
return result;
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Check if a single font name is available on the system.
|
|
86
|
+
* Multi-platform: fc-match (Linux/macOS/WSL), PowerShell registry (Windows),
|
|
87
|
+
* system_profiler (macOS), universal directory scan fallback.
|
|
88
|
+
*/
|
|
89
|
+
function checkFont(fontName) {
|
|
90
|
+
// ── try fc-match first (Linux, WSL, macOS with fontconfig) ──
|
|
91
|
+
try {
|
|
92
|
+
const out = execSync(`fc-match "${fontName}" 2>/dev/null`, {
|
|
93
|
+
encoding: "utf8",
|
|
94
|
+
maxBuffer: 1024,
|
|
95
|
+
shell: "/bin/sh",
|
|
96
|
+
}).trim();
|
|
97
|
+
if (out && !out.startsWith("fontconfig error")) {
|
|
98
|
+
const parts = out.split(":").slice(1).join(":").trim();
|
|
99
|
+
if (parts)
|
|
100
|
+
return parts;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
catch { }
|
|
104
|
+
// ── Windows: PowerShell registry query ──
|
|
105
|
+
if (process.platform === "win32") {
|
|
106
|
+
try {
|
|
107
|
+
const safe = fontName.replace(/'/g, "''");
|
|
108
|
+
const ps = `$n='${safe}';$p=Get-ItemProperty 'HKLM:\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Fonts' 2>$null;foreach($v in $p.PSObject.Properties){if($v.Value -like"*$n*"){Write-Output $v.Value;exit 0}}`;
|
|
109
|
+
const out = execSync(`powershell -NoProfile -Command "${ps.replace(/"/g, '\\"')}"`, { encoding: "utf8", timeout: 5000 }).trim();
|
|
110
|
+
if (out && out !== "NOT_FOUND")
|
|
111
|
+
return out;
|
|
112
|
+
}
|
|
113
|
+
catch { }
|
|
114
|
+
}
|
|
115
|
+
// ── macOS: system_profiler (slow but reliable) ──
|
|
116
|
+
if (process.platform === "darwin") {
|
|
117
|
+
try {
|
|
118
|
+
const kw = fontName.toLowerCase();
|
|
119
|
+
const out = execSync(`system_profiler SPFontsDataType 2>/dev/null | grep -i "${kw}"`, { encoding: "utf8", maxBuffer: 1024 * 1024, timeout: 10000 }).trim();
|
|
120
|
+
if (out)
|
|
121
|
+
return out.split("\n")[0].trim();
|
|
122
|
+
}
|
|
123
|
+
catch { }
|
|
124
|
+
}
|
|
125
|
+
// ── Universal: scan known font directories ──
|
|
126
|
+
const fontDirs = [];
|
|
127
|
+
if (process.platform === "win32") {
|
|
128
|
+
const sysRoot = process.env.SystemRoot || "C:\\Windows";
|
|
129
|
+
fontDirs.push(join(sysRoot, "Fonts"));
|
|
130
|
+
}
|
|
131
|
+
else if (process.platform === "darwin") {
|
|
132
|
+
const home = process.env.HOME || "";
|
|
133
|
+
fontDirs.push("/Library/Fonts", "/System/Library/Fonts");
|
|
134
|
+
if (home)
|
|
135
|
+
fontDirs.push(join(home, "Library", "Fonts"));
|
|
136
|
+
}
|
|
137
|
+
else {
|
|
138
|
+
// Linux / WSL
|
|
139
|
+
fontDirs.push("/usr/share/fonts", "/usr/local/share/fonts");
|
|
140
|
+
const home = process.env.HOME || "";
|
|
141
|
+
if (home)
|
|
142
|
+
fontDirs.push(join(home, ".local", "share", "fonts"));
|
|
143
|
+
}
|
|
144
|
+
const kw = fontName.replace(/[()\[\]]/g, "").split(/\s+/).filter(Boolean);
|
|
145
|
+
if (kw.length === 0)
|
|
146
|
+
return null;
|
|
147
|
+
for (const dir of fontDirs) {
|
|
148
|
+
if (!existsSync(dir))
|
|
149
|
+
continue;
|
|
150
|
+
try {
|
|
151
|
+
const files = readdirSync(dir, { recursive: true });
|
|
152
|
+
const found = files.find((f) => {
|
|
153
|
+
const lower = typeof f === "string" ? f.toLowerCase() : "";
|
|
154
|
+
return /\.(ttf|ttc|otf|woff2?)$/i.test(lower) && kw.every((k) => lower.includes(k.toLowerCase()));
|
|
155
|
+
});
|
|
156
|
+
if (found)
|
|
157
|
+
return typeof found === "string" ? found : String(found);
|
|
158
|
+
}
|
|
159
|
+
catch { }
|
|
160
|
+
}
|
|
161
|
+
return null;
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Parse unique font-family names from a CSS string.
|
|
165
|
+
* Extracts font names from all `font-family: ...` declarations,
|
|
166
|
+
* filters out CSS variable references (var(--...)).
|
|
167
|
+
*/
|
|
168
|
+
function parseFontsFromCSS(css) {
|
|
169
|
+
const names = new Set();
|
|
170
|
+
const isKeyword = /^(inherit|initial|unset|revert)$/i;
|
|
171
|
+
// Match all font-family declarations
|
|
172
|
+
const re = /font-family:\s*([^;{}]+)/gi;
|
|
173
|
+
let match;
|
|
174
|
+
while ((match = re.exec(css)) !== null) {
|
|
175
|
+
const value = match[1];
|
|
176
|
+
// Split by comma, trim quotes, skip var() references
|
|
177
|
+
for (const part of value.split(",")) {
|
|
178
|
+
let name = part.trim().replace(/^['"]|['"]$/g, "").trim();
|
|
179
|
+
// Strip !important, trailing semicolons
|
|
180
|
+
name = name.replace(/\s*!important\s*$/i, "").trim();
|
|
181
|
+
if (name && !name.startsWith("var(") && !isKeyword.test(name)) {
|
|
182
|
+
names.add(name);
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return Array.from(names);
|
|
187
|
+
}
|
|
188
|
+
let configCache = null;
|
|
189
|
+
async function loadCustomThemes() {
|
|
190
|
+
if (configCache)
|
|
191
|
+
return configCache.themes;
|
|
192
|
+
try {
|
|
193
|
+
const { getConfig } = await import("./theme-store.js");
|
|
194
|
+
const config = await getConfig();
|
|
195
|
+
configCache = config;
|
|
196
|
+
return config.themes;
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
return {};
|
|
200
|
+
}
|
|
201
|
+
}
|
|
15
202
|
const program = new Command();
|
|
16
203
|
program
|
|
17
204
|
.name("colamd-themes")
|
|
18
205
|
.description("ColaMD Theme Development Tool — extract formatting and generate v3.0 paradigm CSS themes")
|
|
19
|
-
.version(
|
|
206
|
+
.version(getPackageVersion());
|
|
20
207
|
// ── Shared extract options builder ──
|
|
21
208
|
function addExtractOptions(cmd) {
|
|
22
209
|
return cmd
|
|
@@ -191,6 +378,95 @@ program
|
|
|
191
378
|
if (issues.filter((i) => i.level === "MUST" || i.level === "MUST_NOT").length > 0)
|
|
192
379
|
process.exit(1);
|
|
193
380
|
});
|
|
381
|
+
// ── check-fonts ──
|
|
382
|
+
program
|
|
383
|
+
.command("check-fonts")
|
|
384
|
+
.description("Check whether built-in/custom theme fonts are installed on this system")
|
|
385
|
+
.argument("[theme]", "Theme name (built-in, registered custom, or .css file path); omit to check all")
|
|
386
|
+
.action(async (theme) => {
|
|
387
|
+
const customThemes = await loadCustomThemes();
|
|
388
|
+
let fontSources = [];
|
|
389
|
+
if (theme) {
|
|
390
|
+
// 1. Check if it's a built-in theme
|
|
391
|
+
if (BUILTIN_THEMES.includes(theme)) {
|
|
392
|
+
fontSources.push({ name: theme, fonts: THEME_FONTS[theme] });
|
|
393
|
+
}
|
|
394
|
+
// 2. Check if it's a registered custom theme
|
|
395
|
+
else if (customThemes[theme]) {
|
|
396
|
+
const css = readFileSync(customThemes[theme], "utf-8");
|
|
397
|
+
const fonts = parseFontsFromCSS(css);
|
|
398
|
+
if (fonts.length === 0) {
|
|
399
|
+
console.log(chalk.yellow(` 主题 "${theme}" 中未找到 font-family 声明`));
|
|
400
|
+
}
|
|
401
|
+
fontSources.push({ name: `${theme} (custom)`, fonts });
|
|
402
|
+
}
|
|
403
|
+
// 3. Treat as direct CSS file path
|
|
404
|
+
else if (existsSync(theme) && theme.endsWith(".css")) {
|
|
405
|
+
const css = readFileSync(theme, "utf-8");
|
|
406
|
+
const fonts = parseFontsFromCSS(css);
|
|
407
|
+
if (fonts.length === 0) {
|
|
408
|
+
console.log(chalk.yellow(` 文件 ${theme} 中未找到 font-family 声明`));
|
|
409
|
+
}
|
|
410
|
+
fontSources.push({ name: theme, fonts });
|
|
411
|
+
}
|
|
412
|
+
// 4. Unknown
|
|
413
|
+
else {
|
|
414
|
+
console.error(chalk.red(`Unknown theme: "${theme}".\n Built-in: ${BUILTIN_THEMES.join(", ")}\n Registered: ${Object.keys(customThemes).join(", ") || "(none)"}`));
|
|
415
|
+
process.exit(1);
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
else {
|
|
419
|
+
// No argument: built-in themes + all registered custom themes
|
|
420
|
+
for (const t of Object.keys(THEME_FONTS)) {
|
|
421
|
+
fontSources.push({ name: t, fonts: THEME_FONTS[t] });
|
|
422
|
+
}
|
|
423
|
+
for (const [name, cssPath] of Object.entries(customThemes)) {
|
|
424
|
+
const css = readFileSync(cssPath, "utf-8");
|
|
425
|
+
const fonts = parseFontsFromCSS(css);
|
|
426
|
+
if (fonts.length > 0) {
|
|
427
|
+
fontSources.push({ name: `${name} (custom)`, fonts });
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
console.log(chalk.bold("══ 主题字体检查 ══"));
|
|
432
|
+
let total = 0;
|
|
433
|
+
let missing = 0;
|
|
434
|
+
for (const { name, fonts } of fontSources) {
|
|
435
|
+
if (fonts.length === 0)
|
|
436
|
+
continue;
|
|
437
|
+
console.log(`\n 主题:${chalk.cyan(name)}`);
|
|
438
|
+
for (const f of fonts) {
|
|
439
|
+
total++;
|
|
440
|
+
const result = checkFont(f);
|
|
441
|
+
if (result) {
|
|
442
|
+
console.log(` ${chalk.green("✔")} ${f} -> ${result}`);
|
|
443
|
+
}
|
|
444
|
+
else {
|
|
445
|
+
console.log(` ${chalk.red("✘")} ${f} -> 未找到`);
|
|
446
|
+
missing++;
|
|
447
|
+
}
|
|
448
|
+
}
|
|
449
|
+
}
|
|
450
|
+
console.log("");
|
|
451
|
+
if (missing > 0) {
|
|
452
|
+
console.log(`${chalk.yellow(`⚠ ${missing}/${total}`)} 个字体缺失,导出时可能回退到系统默认字体`);
|
|
453
|
+
console.log(" 建议安装:");
|
|
454
|
+
if (process.platform === "win32") {
|
|
455
|
+
console.log(" Windows: 从 https://github.com/lxgw/LxgwWenKai/releases 下载字体双击安装");
|
|
456
|
+
}
|
|
457
|
+
else if (process.platform === "darwin") {
|
|
458
|
+
console.log(" brew install --cask font-lxgw-wenkai");
|
|
459
|
+
console.log(" brew install --cask font-noto-serif-cjk-sc");
|
|
460
|
+
}
|
|
461
|
+
else {
|
|
462
|
+
console.log(" sudo apt-get install -y fonts-noto-cjk-extra # Linux/WSL");
|
|
463
|
+
}
|
|
464
|
+
process.exit(1);
|
|
465
|
+
}
|
|
466
|
+
else {
|
|
467
|
+
console.log(chalk.green("✔ 所有主题字体检查通过"));
|
|
468
|
+
}
|
|
469
|
+
});
|
|
194
470
|
// ── Export commands (set-theme, export-html, export-pdf, export) ──
|
|
195
471
|
registerExportCommands(program);
|
|
196
472
|
// ── Summary ──
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/export-cli.d.ts
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
* Export CLI commands: set-theme, export-html, export-pdf, export (batch).
|
|
3
3
|
*
|
|
4
4
|
* These are registered onto the main Commander program in cli.ts.
|
|
5
|
+
* Uses unified error handling via CLIError and shared utility functions.
|
|
5
6
|
*/
|
|
6
7
|
import { Command } from "commander";
|
|
7
8
|
/**
|