ezx 0.0.3 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +56 -10
- package/dist/preprocessor.d.ts +2 -0
- package/dist/preprocessor.d.ts.map +1 -1
- package/dist/preprocessor.js +57 -58
- package/dist/preprocessor.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -25,30 +25,74 @@ pwd
|
|
|
25
25
|
|
|
26
26
|
### 2. File Extraction
|
|
27
27
|
|
|
28
|
-
Extract code blocks to files using
|
|
28
|
+
Extract code blocks to files using a preceding blockquote with the file path. The file path is wrapped in backticks within the blockquote, and an optional emoji can be added for visual clarity.
|
|
29
29
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
```markdown
|
|
31
|
+
> `package.json`
|
|
32
|
+
|
|
33
|
+
```json
|
|
33
34
|
{
|
|
34
35
|
"name": "my-project",
|
|
35
36
|
"version": "1.0.0"
|
|
36
37
|
}
|
|
38
|
+
```
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Or with an optional emoji:
|
|
42
|
+
|
|
43
|
+
```markdown
|
|
44
|
+
> 📄 `package.json`
|
|
45
|
+
|
|
46
|
+
```json
|
|
47
|
+
{
|
|
48
|
+
"name": "my-project"
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
**JSON:**
|
|
54
|
+
> `my-project/package.json`
|
|
55
|
+
|
|
56
|
+
```json
|
|
57
|
+
{
|
|
58
|
+
"name": "my-project",
|
|
59
|
+
"version": "1.0.0"
|
|
60
|
+
}
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
**TypeScript/JavaScript:**
|
|
64
|
+
> `my-project/index.ts`
|
|
65
|
+
|
|
66
|
+
```typescript
|
|
67
|
+
console.log("Hello world")
|
|
37
68
|
```
|
|
38
69
|
|
|
39
70
|
**Bash/Shell:**
|
|
71
|
+
> `my-project/.npmrc`
|
|
72
|
+
|
|
40
73
|
```bash
|
|
41
|
-
# file: my-project/.npmrc
|
|
42
74
|
shared-workspace-lockfile=false
|
|
43
75
|
```
|
|
44
76
|
|
|
45
77
|
**Markdown:**
|
|
78
|
+
> `my-project/README.md`
|
|
79
|
+
|
|
46
80
|
```markdown
|
|
47
|
-
<!-- file: my-project/README.md -->
|
|
48
81
|
# My Project
|
|
49
82
|
```
|
|
50
83
|
|
|
51
|
-
**Any language:** The file directive works with any language, including unknown languages,
|
|
84
|
+
**Any language:** The file directive works with any language, including unknown languages, because it's specified in a preceding blockquote, not inside the code content.
|
|
85
|
+
|
|
86
|
+
**Note:** zx executes all code blocks in markdown files. If you have code blocks that are for documentation only (examples to show users, not to run or write as files), add the `no-eval` flag to prevent execution:
|
|
87
|
+
|
|
88
|
+
```markdown
|
|
89
|
+
```typescript no-eval
|
|
90
|
+
interface User {
|
|
91
|
+
name: string;
|
|
92
|
+
age: number;
|
|
93
|
+
}
|
|
94
|
+
```
|
|
95
|
+
```
|
|
52
96
|
|
|
53
97
|
File extraction blocks are transformed to bash heredoc commands that execute in order with the rest of the markdown. If a directory context is active, the heredoc command will prepend `cd`:
|
|
54
98
|
|
|
@@ -136,8 +180,9 @@ cd my-app
|
|
|
136
180
|
npm init -y
|
|
137
181
|
\`\`\`
|
|
138
182
|
|
|
139
|
-
|
|
140
|
-
|
|
183
|
+
> `my-app/package.json`
|
|
184
|
+
|
|
185
|
+
\`\`\`json
|
|
141
186
|
{
|
|
142
187
|
"name": "my-app",
|
|
143
188
|
"version": "1.0.0",
|
|
@@ -147,8 +192,9 @@ npm init -y
|
|
|
147
192
|
}
|
|
148
193
|
\`\`\`
|
|
149
194
|
|
|
195
|
+
> `my-app/index.ts`
|
|
196
|
+
|
|
150
197
|
\`\`\`typescript
|
|
151
|
-
// file: my-app/index.ts
|
|
152
198
|
console.log('Hello from ezx!')
|
|
153
199
|
\`\`\`
|
|
154
200
|
|
package/dist/preprocessor.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preprocessor.d.ts","sourceRoot":"","sources":["../src/preprocessor.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,SAAS;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"preprocessor.d.ts","sourceRoot":"","sources":["../src/preprocessor.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,SAAS;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,MAAM,WAAW,cAAc;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,gBAAgB;IAChC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,cAAc,EAAE,cAAc,EAAE,CAAC;CACjC;AA8GD;;GAEG;AACH,wBAAgB,kBAAkB,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAM,GAC1B,gBAAgB,CAwKlB;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC7B,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAM,GAC1B,gBAAgB,CAGlB"}
|
package/dist/preprocessor.js
CHANGED
|
@@ -1,6 +1,26 @@
|
|
|
1
1
|
import { readFileSync } from 'node:fs';
|
|
2
|
+
/**
|
|
3
|
+
* Extract file path from a blockquote line
|
|
4
|
+
* Supports: > `path/to/file.json` or > 📄 `path/to/file.json`
|
|
5
|
+
*/
|
|
6
|
+
function extractFilePathFromBlockquote(line) {
|
|
7
|
+
const trimmed = line.trim();
|
|
8
|
+
// Match blockquote followed by optional emoji and backtick-wrapped path
|
|
9
|
+
// e.g., > `package.json` or > 📄 `package.json` or > file: package.json
|
|
10
|
+
const match = trimmed.match(/^>\s*(?:[\p{Emoji}]?\s*)?`([^`]+)`/u);
|
|
11
|
+
if (match) {
|
|
12
|
+
return match[1].trim();
|
|
13
|
+
}
|
|
14
|
+
// Also support: > file: package.json (for backward compatibility with comment style)
|
|
15
|
+
const fileMatch = trimmed.match(/^>\s*(?:[\p{Emoji}]?\s*)?file[:=]\s*(.+)$/iu);
|
|
16
|
+
if (fileMatch) {
|
|
17
|
+
return fileMatch[1].trim();
|
|
18
|
+
}
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
2
21
|
/**
|
|
3
22
|
* Parse markdown and extract all code blocks with their line numbers
|
|
23
|
+
* Also extracts file path from preceding blockquote if present
|
|
4
24
|
*/
|
|
5
25
|
function parseCodeBlocks(markdown) {
|
|
6
26
|
const codeBlocks = [];
|
|
@@ -8,20 +28,26 @@ function parseCodeBlocks(markdown) {
|
|
|
8
28
|
let inCodeBlock = false;
|
|
9
29
|
let currentBlock = {};
|
|
10
30
|
let blockStartLine = 0;
|
|
31
|
+
let precedingBlockquoteLine;
|
|
32
|
+
let pendingFilePath;
|
|
11
33
|
for (let i = 0; i < lines.length; i++) {
|
|
12
34
|
const line = lines[i];
|
|
13
35
|
// Check for code block start
|
|
14
|
-
if (line.match(
|
|
36
|
+
if (line.match(/^```/)) {
|
|
15
37
|
if (!inCodeBlock) {
|
|
16
|
-
// Starting a new code block
|
|
17
|
-
const languageMatch = line.match(/^```(\w
|
|
38
|
+
// Starting a new code block - assign any pending file path
|
|
39
|
+
const languageMatch = line.match(/^```(\w*)/);
|
|
18
40
|
currentBlock = {
|
|
19
41
|
language: languageMatch?.[1] || '',
|
|
42
|
+
filePath: pendingFilePath,
|
|
43
|
+
precedingBlockquoteLine: precedingBlockquoteLine,
|
|
20
44
|
content: '',
|
|
21
45
|
startLine: i,
|
|
22
46
|
};
|
|
23
47
|
inCodeBlock = true;
|
|
24
48
|
blockStartLine = i;
|
|
49
|
+
precedingBlockquoteLine = undefined;
|
|
50
|
+
pendingFilePath = undefined; // Reset for next block
|
|
25
51
|
}
|
|
26
52
|
else {
|
|
27
53
|
// Ending the current code block
|
|
@@ -33,12 +59,22 @@ function parseCodeBlocks(markdown) {
|
|
|
33
59
|
content: currentBlock.content,
|
|
34
60
|
startLine: currentBlock.startLine,
|
|
35
61
|
endLine: i,
|
|
62
|
+
filePath: currentBlock.filePath,
|
|
63
|
+
precedingBlockquoteLine: currentBlock.precedingBlockquoteLine,
|
|
36
64
|
});
|
|
37
65
|
}
|
|
38
66
|
inCodeBlock = false;
|
|
39
67
|
currentBlock = {};
|
|
40
68
|
}
|
|
41
69
|
}
|
|
70
|
+
else if (!inCodeBlock) {
|
|
71
|
+
// Look for blockquote with file path (only outside code blocks)
|
|
72
|
+
const filePath = extractFilePathFromBlockquote(line);
|
|
73
|
+
if (filePath) {
|
|
74
|
+
precedingBlockquoteLine = i;
|
|
75
|
+
pendingFilePath = filePath;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
42
78
|
else if (inCodeBlock && currentBlock.content !== undefined) {
|
|
43
79
|
// Add line to current block content
|
|
44
80
|
currentBlock.content += (currentBlock.content ? '\n' : '') + line;
|
|
@@ -53,50 +89,6 @@ function isDirectorySetCommand(line) {
|
|
|
53
89
|
const trimmed = line.trim().toLowerCase();
|
|
54
90
|
return trimmed === '# set the current directory';
|
|
55
91
|
}
|
|
56
|
-
/**
|
|
57
|
-
* Check if a line contains a file extraction comment
|
|
58
|
-
*/
|
|
59
|
-
function isFileExtractionComment(line, commentToken) {
|
|
60
|
-
const trimmed = line.trim();
|
|
61
|
-
// For HTML/XML style comments, we need to remove the closing -->
|
|
62
|
-
let searchLine = trimmed;
|
|
63
|
-
if (commentToken === '<!--') {
|
|
64
|
-
searchLine = trimmed.replace(/-->.*$/, '');
|
|
65
|
-
}
|
|
66
|
-
const filePattern = new RegExp(`^${escapeRegExp(commentToken)}\\s*file:\\s*(.+)$`, 'i');
|
|
67
|
-
const match = searchLine.match(filePattern);
|
|
68
|
-
if (match) {
|
|
69
|
-
return match[1].trim();
|
|
70
|
-
}
|
|
71
|
-
return null;
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
|
-
* Escape special regex characters
|
|
75
|
-
*/
|
|
76
|
-
function escapeRegExp(string) {
|
|
77
|
-
return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Try to extract file path from a line using multiple comment patterns
|
|
81
|
-
*/
|
|
82
|
-
function tryExtractFilePath(line) {
|
|
83
|
-
// Common comment patterns to try, in order of preference
|
|
84
|
-
const commentPatterns = [
|
|
85
|
-
'//', // Most common
|
|
86
|
-
'#', // Shell/Python
|
|
87
|
-
'<!--', // HTML/XML/Markdown
|
|
88
|
-
'--', // SQL/Lua
|
|
89
|
-
';', // Assembly
|
|
90
|
-
];
|
|
91
|
-
const trimmed = line.trim();
|
|
92
|
-
for (const pattern of commentPatterns) {
|
|
93
|
-
const filePath = isFileExtractionComment(trimmed, pattern);
|
|
94
|
-
if (filePath) {
|
|
95
|
-
return filePath;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
return null;
|
|
99
|
-
}
|
|
100
92
|
/**
|
|
101
93
|
* Preprocess markdown file
|
|
102
94
|
*/
|
|
@@ -114,24 +106,20 @@ export function preprocessMarkdown(input, options = {}) {
|
|
|
114
106
|
// Process each code block
|
|
115
107
|
for (let i = 0; i < codeBlocks.length; i++) {
|
|
116
108
|
const block = codeBlocks[i];
|
|
117
|
-
const blockLines = block.content.split('\n');
|
|
118
109
|
const isBash = block.language === 'bash' || block.language === 'sh' || block.language === 'shell';
|
|
119
|
-
// Check if this is a file extraction block
|
|
120
|
-
|
|
121
|
-
const filePath = tryExtractFilePath(firstLine);
|
|
122
|
-
if (filePath) {
|
|
110
|
+
// Check if this is a file extraction block (file path from preceding blockquote)
|
|
111
|
+
if (block.filePath) {
|
|
123
112
|
// This is a file extraction block - transform to heredoc
|
|
124
|
-
|
|
125
|
-
const fileContent = blockLines.slice(1).join('\n').trim();
|
|
113
|
+
const fileContent = block.content.trim();
|
|
126
114
|
extractedFiles.push({
|
|
127
|
-
filePath: filePath,
|
|
115
|
+
filePath: block.filePath,
|
|
128
116
|
content: fileContent,
|
|
129
117
|
language: block.language,
|
|
130
118
|
});
|
|
131
119
|
// Mark this block for transformation to heredoc
|
|
132
120
|
// If we have a current directory, prepend it to the heredoc command
|
|
133
121
|
blocksToHeredoc.set(i, {
|
|
134
|
-
filePath: filePath,
|
|
122
|
+
filePath: block.filePath,
|
|
135
123
|
content: fileContent,
|
|
136
124
|
directoryPrefix: currentDirectory || undefined,
|
|
137
125
|
});
|
|
@@ -139,6 +127,7 @@ export function preprocessMarkdown(input, options = {}) {
|
|
|
139
127
|
}
|
|
140
128
|
// Check for directory set command in bash blocks
|
|
141
129
|
if (isBash) {
|
|
130
|
+
const blockLines = block.content.split('\n');
|
|
142
131
|
let justSetDirectory = false;
|
|
143
132
|
// First, check if this block has a directory set command
|
|
144
133
|
const hasDirectorySet = blockLines.some((line) => isDirectorySetCommand(line));
|
|
@@ -182,11 +171,21 @@ export function preprocessMarkdown(input, options = {}) {
|
|
|
182
171
|
}
|
|
183
172
|
// Build preprocessed markdown
|
|
184
173
|
const preprocessedLines = [];
|
|
185
|
-
|
|
174
|
+
// Track lines to skip (blockquote lines that contained file paths)
|
|
175
|
+
const linesToSkip = new Set();
|
|
176
|
+
for (const block of codeBlocks) {
|
|
177
|
+
if (block.precedingBlockquoteLine !== undefined && block.filePath) {
|
|
178
|
+
linesToSkip.add(block.precedingBlockquoteLine);
|
|
179
|
+
}
|
|
180
|
+
}
|
|
186
181
|
for (let i = 0; i < lines.length; i++) {
|
|
187
182
|
const line = lines[i];
|
|
183
|
+
// Skip blockquote lines that contained file paths (they were consumed)
|
|
184
|
+
if (linesToSkip.has(i)) {
|
|
185
|
+
continue;
|
|
186
|
+
}
|
|
188
187
|
// Check if this is the start of a code block
|
|
189
|
-
if (line.match(
|
|
188
|
+
if (line.match(/^```/)) {
|
|
190
189
|
const blockIndex = codeBlocks.findIndex((b) => b.startLine === i);
|
|
191
190
|
if (blockIndex !== -1) {
|
|
192
191
|
const block = codeBlocks[blockIndex];
|
package/dist/preprocessor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preprocessor.js","sourceRoot":"","sources":["../src/preprocessor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,YAAY,EAAC,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"preprocessor.js","sourceRoot":"","sources":["../src/preprocessor.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED