@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.
Files changed (2) hide show
  1. package/README.md +51 -253
  2. 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
- ## Quick Start
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
- ### Usage
12
+ ## Quick Start
15
13
 
16
14
  ```bash
17
- # Check version
18
- writechoice --version
15
+ # Generate a config.json with your docs URL
16
+ writechoice config
19
17
 
20
- # Update to latest
21
- writechoice update
18
+ # Edit config.json and set your source URL
19
+ # "source": "https://docs.example.com"
22
20
 
23
- # Validate MDX parsing
21
+ # Then run any command without arguments
24
22
  writechoice check parse
25
-
26
- # Validate links
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
- ### `config`
29
+ ### Validate
45
30
 
46
- Generates a config.json template file with all available options.
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
- ```bash
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
- Validates MDX files for parsing errors.
58
-
59
- ```bash
60
- writechoice check parse # All files
61
- writechoice check parse -f file.mdx # Single file
62
- writechoice check parse -d docs # Specific directory
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
- **Output:** Both `mdx_errors_report.json` and `mdx_errors_report.md`
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 &lt; 10`, `y > 5` → `y &gt; 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
- ## Features
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
- - **MDX Parsing Validation** - Catch syntax errors before deployment
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
- ## How Two-Step Validation Works
57
+ ## Configuration
143
58
 
144
- For anchor links, the tool:
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
- With config.json, you can run commands without arguments:
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
- # Full workflow: validate -> fix -> re-validate
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
- Detailed documentation is available in the [docs/](docs/) folder:
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
- writechoice-mint-cli/
256
- ├── bin/
257
- │ └── cli.js # CLI entry point
258
- ├── src/
259
- │ ├── commands/
260
- │ │ ├── validate/
261
- │ │ │ ├── links.js # Link validation
262
- │ │ │ └── mdx.js # MDX parsing validation
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
- ### Playwright Not Installed
277
-
88
+ **Playwright not installed:**
278
89
  ```bash
279
90
  npx playwright install chromium
280
91
  ```
281
92
 
282
- ### Memory Issues
283
-
93
+ **Too many concurrent requests:**
284
94
  ```bash
285
- writechoice check links docs.example.com -c 10
95
+ writechoice check links -c 10
286
96
  ```
287
97
 
288
- ### Permission Errors
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)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@writechoice/mint-cli",
3
- "version": "0.0.18",
3
+ "version": "0.0.19",
4
4
  "description": "CLI tool for Mintlify documentation validation and utilities",
5
5
  "main": "src/index.js",
6
6
  "type": "module",