@writechoice/mint-cli 0.0.18 → 0.0.19
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 +51 -253
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,307 +2,105 @@
|
|
|
2
2
|
|
|
3
3
|
CLI tool for Mintlify documentation validation and utilities.
|
|
4
4
|
|
|
5
|
-
##
|
|
6
|
-
|
|
7
|
-
### Installation
|
|
5
|
+
## Installation
|
|
8
6
|
|
|
9
7
|
```bash
|
|
10
8
|
npm install -g @writechoice/mint-cli
|
|
11
9
|
npx playwright install chromium
|
|
12
10
|
```
|
|
13
11
|
|
|
14
|
-
|
|
12
|
+
## Quick Start
|
|
15
13
|
|
|
16
14
|
```bash
|
|
17
|
-
#
|
|
18
|
-
writechoice
|
|
15
|
+
# Generate a config.json with your docs URL
|
|
16
|
+
writechoice config
|
|
19
17
|
|
|
20
|
-
#
|
|
21
|
-
|
|
18
|
+
# Edit config.json and set your source URL
|
|
19
|
+
# "source": "https://docs.example.com"
|
|
22
20
|
|
|
23
|
-
#
|
|
21
|
+
# Then run any command without arguments
|
|
24
22
|
writechoice check parse
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
writechoice check links https://docs.example.com
|
|
28
|
-
|
|
29
|
-
# Validate with local development server
|
|
30
|
-
writechoice check links docs.example.com http://localhost:3000
|
|
31
|
-
|
|
32
|
-
# Fix broken anchor links
|
|
33
|
-
writechoice fix links
|
|
34
|
-
|
|
35
|
-
# Fix MDX parsing errors (void tags, stray angle brackets)
|
|
36
|
-
writechoice fix parse
|
|
37
|
-
|
|
38
|
-
# Generate config.json template
|
|
39
|
-
writechoice config
|
|
23
|
+
writechoice check links
|
|
24
|
+
writechoice metadata
|
|
40
25
|
```
|
|
41
26
|
|
|
42
27
|
## Commands
|
|
43
28
|
|
|
44
|
-
###
|
|
29
|
+
### Validate
|
|
45
30
|
|
|
46
|
-
|
|
31
|
+
| Command | Description |
|
|
32
|
+
|---|---|
|
|
33
|
+
| `writechoice check parse` | Validate MDX files for parsing errors |
|
|
34
|
+
| `writechoice check links [baseUrl]` | Validate internal links and anchors using Playwright |
|
|
47
35
|
|
|
48
|
-
|
|
49
|
-
writechoice config # Create config.json
|
|
50
|
-
writechoice config --force # Overwrite existing config.json
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
**Output:** Creates `config.json` in the current directory with placeholder values.
|
|
54
|
-
|
|
55
|
-
### `check parse`
|
|
36
|
+
### Fix
|
|
56
37
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
writechoice
|
|
61
|
-
writechoice
|
|
62
|
-
writechoice
|
|
63
|
-
|
|
38
|
+
| Command | Description |
|
|
39
|
+
|---|---|
|
|
40
|
+
| `writechoice fix parse` | Fix void tags and stray angle brackets |
|
|
41
|
+
| `writechoice fix links` | Fix broken anchor links from a validation report |
|
|
42
|
+
| `writechoice fix codeblocks` | Add/remove `expandable`, `lines`, `wrap` on code blocks |
|
|
43
|
+
| `writechoice fix images` | Wrap standalone images in `<Frame>` |
|
|
44
|
+
| `writechoice fix inlineimages` | Convert inline images to `<InlineImage>` |
|
|
45
|
+
| `writechoice fix h1` | Remove H1 headings that duplicate the frontmatter title |
|
|
64
46
|
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
### `check links`
|
|
68
|
-
|
|
69
|
-
Validates internal links and anchors using browser automation.
|
|
70
|
-
|
|
71
|
-
```bash
|
|
72
|
-
writechoice check links <baseUrl> [validationBaseUrl]
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
**Common options:**
|
|
76
|
-
- `-f, --file <path>` - Validate single file
|
|
77
|
-
- `-d, --dir <path>` - Validate specific directory
|
|
78
|
-
- `-o, --output <path>` - Base name for reports (default: `links_report`)
|
|
79
|
-
- `-c, --concurrency <number>` - Concurrent browser tabs (default: 25)
|
|
80
|
-
- `--quiet` - Suppress output
|
|
81
|
-
- `--dry-run` - Extract links without validating
|
|
82
|
-
|
|
83
|
-
**Output:** Both `links_report.json` and `links_report.md`
|
|
84
|
-
|
|
85
|
-
### `fix links`
|
|
86
|
-
|
|
87
|
-
Automatically fixes broken anchor links based on validation reports.
|
|
88
|
-
|
|
89
|
-
```bash
|
|
90
|
-
writechoice fix links # Use default report
|
|
91
|
-
writechoice fix links -r custom_report.json # Use custom report
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
**Common options:**
|
|
95
|
-
- `-r, --report <path>` - Path to JSON report (default: `links_report.json`)
|
|
96
|
-
- `--quiet` - Suppress output
|
|
97
|
-
|
|
98
|
-
**Note:** Requires JSON report from `check links` command.
|
|
99
|
-
|
|
100
|
-
### `fix parse`
|
|
101
|
-
|
|
102
|
-
Automatically fixes common MDX parsing errors: void HTML tags not self-closed and stray angle brackets in text.
|
|
103
|
-
|
|
104
|
-
```bash
|
|
105
|
-
writechoice fix parse # Fix from check parse report
|
|
106
|
-
writechoice fix parse -f file.mdx # Fix a single file directly
|
|
107
|
-
writechoice fix parse -d docs # Fix files in a directory
|
|
108
|
-
writechoice fix parse -r custom_report.json # Use custom report
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
**Common options:**
|
|
112
|
-
- `-r, --report <path>` - Path to JSON report (default: `mdx_errors_report.json`)
|
|
113
|
-
- `-f, --file <path>` - Fix a single MDX file directly
|
|
114
|
-
- `-d, --dir <path>` - Fix MDX files in a directory
|
|
115
|
-
- `--quiet` - Suppress output
|
|
116
|
-
|
|
117
|
-
**What it fixes:**
|
|
118
|
-
- Void tags: `<br>` → `<br />`, `<img src="x">` → `<img src="x" />`
|
|
119
|
-
- Stray brackets: `x < 10` → `x < 10`, `y > 5` → `y > 5`
|
|
120
|
-
|
|
121
|
-
Content inside code blocks and inline code is never modified.
|
|
122
|
-
|
|
123
|
-
### `update`
|
|
124
|
-
|
|
125
|
-
Update CLI to latest version.
|
|
126
|
-
|
|
127
|
-
```bash
|
|
128
|
-
writechoice update
|
|
129
|
-
```
|
|
47
|
+
### Other
|
|
130
48
|
|
|
131
|
-
|
|
49
|
+
| Command | Description |
|
|
50
|
+
|---|---|
|
|
51
|
+
| `writechoice metadata` | Fetch meta tags from live pages and write to frontmatter |
|
|
52
|
+
| `writechoice config` | Generate a `config.json` template |
|
|
53
|
+
| `writechoice update` | Update to the latest version |
|
|
132
54
|
|
|
133
|
-
|
|
134
|
-
- **Link Validation** - Test links against live websites with Playwright
|
|
135
|
-
- **Two-Step Anchor Validation** - Compare production vs development anchors
|
|
136
|
-
- **Auto-Fix Links** - Automatically correct broken anchor links
|
|
137
|
-
- **Auto-Fix Parsing** - Automatically fix void tags and stray angle brackets
|
|
138
|
-
- **Dual Report Formats** - Generates both JSON (for automation) and Markdown (for humans)
|
|
139
|
-
- **Configuration File** - Optional config.json for default settings
|
|
140
|
-
- **CI/CD Ready** - Exit codes for pipeline integration
|
|
55
|
+
All commands support `--file <path>`, `--dir <path>`, `--dry-run`, and `--quiet` where applicable.
|
|
141
56
|
|
|
142
|
-
##
|
|
57
|
+
## Configuration
|
|
143
58
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
1. **Finds the target** (Production): Navigates to production docs to identify which heading the anchor points to
|
|
147
|
-
2. **Gets the anchor** (Validation): Navigates to your dev server (localhost:3000), clicks the heading, and extracts the generated anchor
|
|
148
|
-
3. **Compares**: Checks if anchors match
|
|
149
|
-
|
|
150
|
-
This ensures your local development environment matches production behavior.
|
|
151
|
-
|
|
152
|
-
## Configuration File
|
|
153
|
-
|
|
154
|
-
Create an optional `config.json` in your project root to set default values:
|
|
59
|
+
Create a `config.json` in your project root to set defaults and avoid repeating arguments:
|
|
155
60
|
|
|
156
61
|
```json
|
|
157
62
|
{
|
|
158
63
|
"source": "https://docs.example.com",
|
|
159
|
-
"target": "http://localhost:3000"
|
|
160
|
-
"links": {
|
|
161
|
-
"concurrency": 25,
|
|
162
|
-
"quiet": false
|
|
163
|
-
},
|
|
164
|
-
"parse": {
|
|
165
|
-
"quiet": false
|
|
166
|
-
}
|
|
64
|
+
"target": "http://localhost:3000"
|
|
167
65
|
}
|
|
168
66
|
```
|
|
169
67
|
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
```bash
|
|
173
|
-
# Uses source and target from config.json
|
|
174
|
-
writechoice check links
|
|
175
|
-
|
|
176
|
-
# CLI args override config.json values
|
|
177
|
-
writechoice check links https://staging.example.com
|
|
178
|
-
```
|
|
179
|
-
|
|
180
|
-
See [config.example.json](config.example.json) for all available options.
|
|
181
|
-
|
|
182
|
-
## Examples
|
|
183
|
-
|
|
184
|
-
```bash
|
|
185
|
-
# Validate all MDX files for parsing errors
|
|
186
|
-
writechoice check parse
|
|
187
|
-
|
|
188
|
-
# Validate all links (uses localhost:3000 by default)
|
|
189
|
-
writechoice check links https://docs.example.com
|
|
190
|
-
|
|
191
|
-
# Validate with staging environment
|
|
192
|
-
writechoice check links docs.example.com https://staging.example.com
|
|
193
|
-
|
|
194
|
-
# Validate specific directory only
|
|
195
|
-
writechoice check links docs.example.com -d api
|
|
196
|
-
|
|
197
|
-
# Run quietly (only generate reports)
|
|
198
|
-
writechoice check links docs.example.com --quiet
|
|
199
|
-
|
|
200
|
-
# Fix broken anchor links
|
|
201
|
-
writechoice fix links
|
|
202
|
-
|
|
203
|
-
# Fix from custom report
|
|
204
|
-
writechoice fix links -r custom_report.json
|
|
205
|
-
|
|
206
|
-
# Fix MDX parsing errors
|
|
207
|
-
writechoice fix parse
|
|
208
|
-
|
|
209
|
-
# Fix a single file directly
|
|
210
|
-
writechoice fix parse -f docs/getting-started.mdx
|
|
68
|
+
Run `writechoice config` to generate a full template with all options.
|
|
211
69
|
|
|
212
|
-
|
|
213
|
-
writechoice check links docs.example.com
|
|
214
|
-
writechoice fix links
|
|
215
|
-
writechoice check links docs.example.com
|
|
216
|
-
|
|
217
|
-
# Full parse workflow: validate -> fix -> re-validate
|
|
218
|
-
writechoice check parse
|
|
219
|
-
writechoice fix parse
|
|
220
|
-
writechoice check parse
|
|
221
|
-
```
|
|
70
|
+
See [docs/config-file.md](docs/config-file.md) for the complete reference.
|
|
222
71
|
|
|
223
72
|
## Documentation
|
|
224
73
|
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
- **Commands**
|
|
228
|
-
- [config](docs/commands/config.md) - Generate config.json template
|
|
229
|
-
- [check links](docs/commands/check-links.md) - Link validation
|
|
230
|
-
- [check parse](docs/commands/check-parse.md) - MDX parsing validation
|
|
231
|
-
- [fix links](docs/commands/fix-links.md) - Auto-fix broken links
|
|
232
|
-
- [fix parse](docs/commands/fix-parse.md) - Auto-fix MDX parsing errors
|
|
233
|
-
- [update](docs/commands/update.md) - Update command
|
|
234
|
-
- **Guides**
|
|
235
|
-
- [Configuration File](docs/config-file.md) - Using config.json
|
|
236
|
-
- [Configuration](docs/configuration.md) - Advanced configuration
|
|
237
|
-
- [Publishing](docs/publishing.md) - How to publish new versions
|
|
238
|
-
|
|
239
|
-
## Development
|
|
240
|
-
|
|
241
|
-
### Local Setup
|
|
242
|
-
|
|
243
|
-
```bash
|
|
244
|
-
git clone <repository-url>
|
|
245
|
-
cd writechoice-mint-cli
|
|
246
|
-
npm install
|
|
247
|
-
npx playwright install chromium
|
|
248
|
-
chmod +x bin/cli.js
|
|
249
|
-
npm link
|
|
250
|
-
```
|
|
251
|
-
|
|
252
|
-
### Project Structure
|
|
74
|
+
Full command documentation is in [docs/commands/](docs/commands/):
|
|
253
75
|
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
│ │ └── fix/
|
|
264
|
-
│ │ ├── links.js # Link fixing
|
|
265
|
-
│ │ └── parse.js # Parse error fixing
|
|
266
|
-
│ └── utils/
|
|
267
|
-
│ ├── helpers.js # Utility functions
|
|
268
|
-
│ └── reports.js # Report generation
|
|
269
|
-
├── docs/ # Detailed documentation
|
|
270
|
-
├── package.json
|
|
271
|
-
└── README.md
|
|
272
|
-
```
|
|
76
|
+
- [check-links](docs/commands/check-links.md)
|
|
77
|
+
- [check-parse](docs/commands/check-parse.md)
|
|
78
|
+
- [fix-links](docs/commands/fix-links.md)
|
|
79
|
+
- [fix-parse](docs/commands/fix-parse.md)
|
|
80
|
+
- [fix-codeblocks](docs/commands/fix-codeblocks.md)
|
|
81
|
+
- [fix-images](docs/commands/fix-images.md)
|
|
82
|
+
- [fix-inlineimages](docs/commands/fix-inlineimages.md)
|
|
83
|
+
- [fix-h1](docs/commands/fix-h1.md)
|
|
84
|
+
- [metadata](docs/commands/metadata.md)
|
|
273
85
|
|
|
274
86
|
## Troubleshooting
|
|
275
87
|
|
|
276
|
-
|
|
277
|
-
|
|
88
|
+
**Playwright not installed:**
|
|
278
89
|
```bash
|
|
279
90
|
npx playwright install chromium
|
|
280
91
|
```
|
|
281
92
|
|
|
282
|
-
|
|
283
|
-
|
|
93
|
+
**Too many concurrent requests:**
|
|
284
94
|
```bash
|
|
285
|
-
writechoice check links
|
|
95
|
+
writechoice check links -c 10
|
|
286
96
|
```
|
|
287
97
|
|
|
288
|
-
|
|
289
|
-
|
|
98
|
+
**Permission error on install:**
|
|
290
99
|
```bash
|
|
291
100
|
sudo npm install -g @writechoice/mint-cli
|
|
101
|
+
# or use nvm: https://github.com/nvm-sh/nvm
|
|
292
102
|
```
|
|
293
103
|
|
|
294
|
-
Or use a node version manager like [nvm](https://github.com/nvm-sh/nvm).
|
|
295
|
-
|
|
296
104
|
## License
|
|
297
105
|
|
|
298
|
-
MIT
|
|
299
|
-
|
|
300
|
-
## Contributing
|
|
301
|
-
|
|
302
|
-
Contributions are welcome! Please open an issue or submit a pull request.
|
|
303
|
-
|
|
304
|
-
## Links
|
|
305
|
-
|
|
306
|
-
- [npm package](https://www.npmjs.com/package/@writechoice/mint-cli)
|
|
307
|
-
- [GitHub repository](https://github.com/writechoice/mint-cli)
|
|
308
|
-
- [Issue tracker](https://github.com/writechoice/mint-cli/issues)
|
|
106
|
+
MIT — [GitHub](https://github.com/writechoice/mint-cli) · [npm](https://www.npmjs.com/package/@writechoice/mint-cli) · [Issues](https://github.com/writechoice/mint-cli/issues)
|