markdownlint-obsidian-cli 1.0.3 → 1.1.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.
- package/CHANGELOG.md +53 -0
- package/README.md +33 -1
- package/dist/package.json +1 -1
- package/dist/src/args.d.ts +11 -0
- package/dist/src/args.d.ts.map +1 -1
- package/dist/src/args.js +11 -0
- package/dist/src/args.js.map +1 -1
- package/dist/src/main.d.ts.map +1 -1
- package/dist/src/main.js.map +1 -1
- package/package.json +3 -3
- package/src/AGENTS.md +46 -0
- package/src/CLAUDE.md +3 -0
- package/src/README.md +22 -0
- package/src/args.ts +11 -0
- package/src/main.ts +11 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
<!-- markdownlint-configure-file {
|
|
4
|
+
"MD013": false,
|
|
5
|
+
"MD024": {
|
|
6
|
+
"siblings_only": true
|
|
7
|
+
}
|
|
8
|
+
} -->
|
|
9
|
+
|
|
10
|
+
## [1.1.0](https://github.com/alisonaquinas/markdownlint-obsidian/compare/markdownlint-obsidian-cliv1.0.8...markdownlint-obsidian-cliv1.1.0) (2026-05-04)
|
|
11
|
+
|
|
12
|
+
### Features
|
|
13
|
+
|
|
14
|
+
* expose `wikilinks.resolveMode = "obsidian-fuzzy"` through CLI config files ([89d45ad](https://github.com/alisonaquinas/markdownlint-obsidian/commit/89d45ad))
|
|
15
|
+
|
|
16
|
+
### Bug Fixes
|
|
17
|
+
|
|
18
|
+
* handle markdownlint `deleteCount = -1` sentinel without CLI crashes ([27f845e](https://github.com/alisonaquinas/markdownlint-obsidian/commit/27f845e))
|
|
19
|
+
* require tokenless npm trusted publishing in release workflows ([27bc013](https://github.com/alisonaquinas/markdownlint-obsidian/commit/27bc013))
|
|
20
|
+
|
|
21
|
+
### Dependencies
|
|
22
|
+
|
|
23
|
+
* The following workspace dependencies were updated
|
|
24
|
+
* dependencies
|
|
25
|
+
* markdownlint-obsidian bumped to 1.1.0
|
|
26
|
+
|
|
27
|
+
## [1.0.8](https://github.com/alisonaquinas/markdownlint-obsidian/compare/markdownlint-obsidian-cliv1.0.7...markdownlint-obsidian-cliv1.0.8) (2026-04-18)
|
|
28
|
+
|
|
29
|
+
### Bug Fixes
|
|
30
|
+
|
|
31
|
+
* **cli:** point bin at dist/bin.mjs (Node shebang) not bin/*.js (bun shebang) ([463438a](https://github.com/alisonaquinas/markdownlint-obsidian/commit/463438a6452ba601ae7cf91b8f2b5e1971546932))
|
|
32
|
+
* **core:** disable MD028 by default — blank `>` lines between paragraphs inside OFM callouts are required syntax; MD028 produced false positives on every multi-paragraph callout ([c6c1a09](https://github.com/alisonaquinas/markdownlint-obsidian/commit/c6c1a09c3c92e340cdc4ed82bf86f3408b6634ae))
|
|
33
|
+
* **release:** resolve workspace:* deps before npm publish ([1228c96](https://github.com/alisonaquinas/markdownlint-obsidian/commit/1228c963f15b2fd77721d64931980cc9bbd40ad1))
|
|
34
|
+
|
|
35
|
+
### Dependencies
|
|
36
|
+
|
|
37
|
+
* The following workspace dependencies were updated
|
|
38
|
+
* dependencies
|
|
39
|
+
* markdownlint-obsidian bumped to 1.0.2
|
|
40
|
+
|
|
41
|
+
## [1.0.7](https://github.com/alisonaquinas/markdownlint-obsidian/compare/markdownlint-obsidian-cliv1.0.6...markdownlint-obsidian-cliv1.0.7) (2026-04-14)
|
|
42
|
+
|
|
43
|
+
### Bug Fixes
|
|
44
|
+
|
|
45
|
+
* **cli:** point bin at dist/bin.mjs (Node shebang) not bin/*.js (bun shebang) ([463438a](https://github.com/alisonaquinas/markdownlint-obsidian/commit/463438a6452ba601ae7cf91b8f2b5e1971546932))
|
|
46
|
+
* **release:** resolve workspace:* deps before npm publish ([1228c96](https://github.com/alisonaquinas/markdownlint-obsidian/commit/1228c963f15b2fd77721d64931980cc9bbd40ad1))
|
|
47
|
+
|
|
48
|
+
## [1.0.5](https://github.com/alisonaquinas/markdownlint-obsidian/compare/markdownlint-obsidian-cliv1.0.4...markdownlint-obsidian-cliv1.0.5) (2026-04-13)
|
|
49
|
+
|
|
50
|
+
### Bug Fixes
|
|
51
|
+
|
|
52
|
+
* **cli:** point bin at dist/bin.mjs (Node shebang) not bin/*.js (bun shebang) ([463438a](https://github.com/alisonaquinas/markdownlint-obsidian/commit/463438a6452ba601ae7cf91b8f2b5e1971546932))
|
|
53
|
+
* **release:** resolve workspace:* deps before npm publish ([1228c96](https://github.com/alisonaquinas/markdownlint-obsidian/commit/1228c963f15b2fd77721d64931980cc9bbd40ad1))
|
package/README.md
CHANGED
|
@@ -14,10 +14,15 @@ bun add -g markdownlint-obsidian-cli
|
|
|
14
14
|
npm install -D markdownlint-obsidian-cli
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
+
Consumers can run the published CLI under Node.js 20+ or Bun 1.1+.
|
|
18
|
+
|
|
17
19
|
## Usage
|
|
18
20
|
|
|
19
21
|
```bash
|
|
20
|
-
#
|
|
22
|
+
# One-off run without installing globally
|
|
23
|
+
npx markdownlint-obsidian-cli "**/*.md"
|
|
24
|
+
|
|
25
|
+
# After a global or local install, invoke the published binary directly
|
|
21
26
|
markdownlint-obsidian "**/*.md"
|
|
22
27
|
|
|
23
28
|
# Fix auto-fixable issues in place
|
|
@@ -34,6 +39,20 @@ markdownlint-obsidian --output-formatter junit "**/*.md" > junit.xml
|
|
|
34
39
|
markdownlint-obsidian --config /path/to/project "**/*.md"
|
|
35
40
|
```
|
|
36
41
|
|
|
42
|
+
## Supported runtime flags
|
|
43
|
+
|
|
44
|
+
| Flag | Description |
|
|
45
|
+
| --- | --- |
|
|
46
|
+
| `--config <path>` | Load `.obsidian-linter.jsonc` from an explicit directory or file path |
|
|
47
|
+
| `--fix` | Apply auto-fixable edits in place |
|
|
48
|
+
| `--fix-check` | Dry-run fix mode; report what would change without writing |
|
|
49
|
+
| `--vault-root <path>` | Override auto-detected vault root |
|
|
50
|
+
| `--no-resolve` | Disable vault-wide wikilink and embed resolution |
|
|
51
|
+
| `--output-formatter <name>` | Select `default`, `json`, `junit`, or `sarif` output |
|
|
52
|
+
|
|
53
|
+
If you omit glob arguments, the CLI falls back to the configured `globs`
|
|
54
|
+
property from `.obsidian-linter.jsonc`.
|
|
55
|
+
|
|
37
56
|
## Exit codes
|
|
38
57
|
|
|
39
58
|
| Code | Meaning |
|
|
@@ -42,6 +61,19 @@ markdownlint-obsidian --config /path/to/project "**/*.md"
|
|
|
42
61
|
| `1` | One or more lint errors found |
|
|
43
62
|
| `2` | Tool or configuration failure |
|
|
44
63
|
|
|
64
|
+
## Developing in this monorepo
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
bun install
|
|
68
|
+
cd packages/cli
|
|
69
|
+
bun test
|
|
70
|
+
bun run build
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
See [`src/README.md`](src/README.md) for the thin wrapper layout and
|
|
74
|
+
[`../../docs/guides/ci-integration.md`](../../docs/guides/ci-integration.md)
|
|
75
|
+
for pipeline recipes.
|
|
76
|
+
|
|
45
77
|
## License
|
|
46
78
|
|
|
47
79
|
MIT
|
package/dist/package.json
CHANGED
package/dist/src/args.d.ts
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Purpose: Defines the CLI argument schema and builds the configured commander Command.
|
|
3
|
+
*
|
|
4
|
+
* Provides: {@link buildProgram}, {@link CLIArgs}
|
|
5
|
+
*
|
|
6
|
+
* Role in system: Declares every CLI flag that `markdownlint-obsidian` accepts and wires
|
|
7
|
+
* them into a commander `Command` instance; intentionally separated from `main` so the
|
|
8
|
+
* program object can be constructed in tests without spawning the full pipeline.
|
|
9
|
+
*
|
|
10
|
+
* @module args
|
|
11
|
+
*/
|
|
1
12
|
import { Command } from "commander";
|
|
2
13
|
/**
|
|
3
14
|
* Parsed CLI options returned by commander.
|
package/dist/src/args.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAqBtC"}
|
|
1
|
+
{"version":3,"file":"args.d.ts","sourceRoot":"","sources":["../../src/args.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC;;;;;GAKG;AACH,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,GAAG,EAAE,OAAO,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IAC1B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;CAClC;AAED;;;;;;;;GAQG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAqBtC"}
|
package/dist/src/args.js
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Purpose: Defines the CLI argument schema and builds the configured commander Command.
|
|
3
|
+
*
|
|
4
|
+
* Provides: {@link buildProgram}, {@link CLIArgs}
|
|
5
|
+
*
|
|
6
|
+
* Role in system: Declares every CLI flag that `markdownlint-obsidian` accepts and wires
|
|
7
|
+
* them into a commander `Command` instance; intentionally separated from `main` so the
|
|
8
|
+
* program object can be constructed in tests without spawning the full pipeline.
|
|
9
|
+
*
|
|
10
|
+
* @module args
|
|
11
|
+
*/
|
|
1
12
|
import { Command } from "commander";
|
|
2
13
|
import { createRequire } from "node:module";
|
|
3
14
|
const require = createRequire(import.meta.url);
|
package/dist/src/args.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/args.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAyBtE;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,OAAO;SACJ,IAAI,CAAC,uBAAuB,CAAC;SAC7B,WAAW,CAAC,oDAAoD,CAAC;SACjE,OAAO,CAAC,OAAO,CAAC;SAChB,QAAQ,CAAC,YAAY,EAAE,iCAAiC,CAAC;SACzD,MAAM,CAAC,iBAAiB,EAAE,2BAA2B,CAAC;SACtD,MAAM,CAAC,wBAAwB,EAAE,gDAAgD,CAAC;SAClF,MAAM,CAAC,OAAO,EAAE,kCAAkC,EAAE,KAAK,CAAC;SAC1D,MAAM,CAAC,aAAa,EAAE,iDAAiD,EAAE,KAAK,CAAC;SAC/E,MAAM,CAAC,UAAU,EAAE,4CAA4C,EAAE,KAAK,CAAC;SACvE,MAAM,CAAC,YAAY,EAAE,sCAAsC,CAAC;SAC5D,MAAM,CAAC,qBAAqB,EAAE,mCAAmC,CAAC;SAClE,MAAM,CAAC,cAAc,EAAE,6BAA6B,CAAC;SACrD,MAAM,CACL,2BAA2B,EAC3B,gDAAgD,EAChD,SAAS,CACV,CAAC;IACJ,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
1
|
+
{"version":3,"file":"args.js","sourceRoot":"","sources":["../../src/args.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAE5C,MAAM,OAAO,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC/C,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,iBAAiB,CAAwB,CAAC;AAyBtE;;;;;;;;GAQG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAC9B,OAAO;SACJ,IAAI,CAAC,uBAAuB,CAAC;SAC7B,WAAW,CAAC,oDAAoD,CAAC;SACjE,OAAO,CAAC,OAAO,CAAC;SAChB,QAAQ,CAAC,YAAY,EAAE,iCAAiC,CAAC;SACzD,MAAM,CAAC,iBAAiB,EAAE,2BAA2B,CAAC;SACtD,MAAM,CAAC,wBAAwB,EAAE,gDAAgD,CAAC;SAClF,MAAM,CAAC,OAAO,EAAE,kCAAkC,EAAE,KAAK,CAAC;SAC1D,MAAM,CAAC,aAAa,EAAE,iDAAiD,EAAE,KAAK,CAAC;SAC/E,MAAM,CAAC,UAAU,EAAE,4CAA4C,EAAE,KAAK,CAAC;SACvE,MAAM,CAAC,YAAY,EAAE,sCAAsC,CAAC;SAC5D,MAAM,CAAC,qBAAqB,EAAE,mCAAmC,CAAC;SAClE,MAAM,CAAC,cAAc,EAAE,6BAA6B,CAAC;SACrD,MAAM,CACL,2BAA2B,EAC3B,gDAAgD,EAChD,SAAS,CACV,CAAC;IACJ,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
package/dist/src/main.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"AAsCA;;;;GAIG;AACH,eAAO,MAAM,UAAU;;;;EAIZ,CAAC;AAEZ;;;;;;;;GAQG;AACH,wBAAsB,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,CAY1D"}
|
package/dist/src/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../../src/main.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "markdownlint-obsidian-cli",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "CLI for markdownlint-obsidian — lint Obsidian Flavored Markdown from the command line",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
|
-
"markdownlint-obsidian": "./bin
|
|
7
|
+
"markdownlint-obsidian": "./dist/bin.mjs"
|
|
8
8
|
},
|
|
9
9
|
"exports": {
|
|
10
10
|
".": {
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"prepublishOnly": "bun run build && bun run test"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
|
-
"markdownlint-obsidian": "^1.
|
|
31
|
+
"markdownlint-obsidian": "^1.1.0",
|
|
32
32
|
"commander": "^12.0.0"
|
|
33
33
|
},
|
|
34
34
|
"engines": {
|
package/src/AGENTS.md
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# AGENTS.md — Guide for AI Agents Working in `packages/cli/src`
|
|
2
|
+
|
|
3
|
+
Entry point and argument definition for the `markdownlint-obsidian` CLI.
|
|
4
|
+
Two files only — keep this layer thin.
|
|
5
|
+
|
|
6
|
+
## Layout
|
|
7
|
+
|
|
8
|
+
```text
|
|
9
|
+
src/
|
|
10
|
+
├── args.ts # buildProgram() — commander Command + CLIArgs interface
|
|
11
|
+
└── main.ts # process entry: parse → engine → format → exit
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## Workflows
|
|
15
|
+
|
|
16
|
+
### Adding a flag
|
|
17
|
+
|
|
18
|
+
1. Add the `commander` option to `buildProgram()` in `args.ts`.
|
|
19
|
+
2. Extend `CLIArgs` with the new field.
|
|
20
|
+
3. Read the value in `main.ts` and pass it to the engine call.
|
|
21
|
+
4. Update `packages/cli/README.md`.
|
|
22
|
+
|
|
23
|
+
### Changing exit codes
|
|
24
|
+
|
|
25
|
+
Exit codes are set explicitly in `main.ts`. The contract is:
|
|
26
|
+
|
|
27
|
+
| Code | Meaning |
|
|
28
|
+
| --- | --- |
|
|
29
|
+
| `0` | Clean run (no errors; warnings do not raise exit code) |
|
|
30
|
+
| `1` | One or more lint errors found |
|
|
31
|
+
| `2` | Tool or configuration failure |
|
|
32
|
+
|
|
33
|
+
Changing this contract is a breaking change — bump the CLI major version.
|
|
34
|
+
|
|
35
|
+
## Invariants — Do Not Violate
|
|
36
|
+
|
|
37
|
+
- No linting logic here. All rule, parse, and format logic lives in
|
|
38
|
+
`packages/core`.
|
|
39
|
+
- `CLIArgs` fields must be `readonly`.
|
|
40
|
+
- `main.ts` must call `process.exit()` explicitly; do not let unhandled
|
|
41
|
+
errors propagate to Node.js's default non-zero exit.
|
|
42
|
+
|
|
43
|
+
## See Also
|
|
44
|
+
|
|
45
|
+
- [packages/cli AGENTS.md](../AGENTS.md)
|
|
46
|
+
- [Root AGENTS.md](../../../AGENTS.md)
|
package/src/CLAUDE.md
ADDED
package/src/README.md
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# packages/cli/src
|
|
2
|
+
|
|
3
|
+
Thin source layer for the `markdownlint-obsidian-cli` package.
|
|
4
|
+
|
|
5
|
+
## Files
|
|
6
|
+
|
|
7
|
+
| File | Responsibility |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| [`args.ts`](args.ts) | Defines the commander program and supported flag schema |
|
|
10
|
+
| [`main.ts`](main.ts) | Parses arguments, calls the core engine, formats output, and returns exit codes |
|
|
11
|
+
|
|
12
|
+
## Edit routing
|
|
13
|
+
|
|
14
|
+
- Change the user-facing CLI surface in `args.ts`.
|
|
15
|
+
- Change option handling, output emission, or exit behavior in `main.ts`.
|
|
16
|
+
- Keep all linting behavior in `../../core/`; this package should only
|
|
17
|
+
orchestrate process-level concerns.
|
|
18
|
+
|
|
19
|
+
## See also
|
|
20
|
+
|
|
21
|
+
- [`../README.md`](../README.md)
|
|
22
|
+
- [`AGENTS.md`](AGENTS.md)
|
package/src/args.ts
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Purpose: Defines the CLI argument schema and builds the configured commander Command.
|
|
3
|
+
*
|
|
4
|
+
* Provides: {@link buildProgram}, {@link CLIArgs}
|
|
5
|
+
*
|
|
6
|
+
* Role in system: Declares every CLI flag that `markdownlint-obsidian` accepts and wires
|
|
7
|
+
* them into a commander `Command` instance; intentionally separated from `main` so the
|
|
8
|
+
* program object can be constructed in tests without spawning the full pipeline.
|
|
9
|
+
*
|
|
10
|
+
* @module args
|
|
11
|
+
*/
|
|
1
12
|
import { Command } from "commander";
|
|
2
13
|
import { createRequire } from "node:module";
|
|
3
14
|
|
package/src/main.ts
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Purpose: Entry point for the `markdownlint-obsidian` CLI binary.
|
|
3
|
+
*
|
|
4
|
+
* Provides: {@link main}, {@link EXIT_CODES}
|
|
5
|
+
*
|
|
6
|
+
* Role in system: Parses arguments via {@link buildProgram}, loads config, selects the
|
|
7
|
+
* lint or fix pipeline branch, formats and prints results, and returns a POSIX exit code
|
|
8
|
+
* (0 = clean, 1 = lint errors, 2 = tool failure) that the bin shim passes to `process.exit`.
|
|
9
|
+
*
|
|
10
|
+
* @module main
|
|
11
|
+
*/
|
|
1
12
|
import type { Command } from "commander";
|
|
2
13
|
import { buildProgram } from "./args.js";
|
|
3
14
|
import {
|