podlite 0.0.53 → 0.0.54
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.podlite +4 -0
- package/esm/cli.js +15 -2
- package/esm/cli.js.map +1 -1
- package/esm/lint/engine.d.ts +3 -0
- package/esm/lint/engine.js +4 -0
- package/esm/lint/engine.js.map +1 -0
- package/esm/lint/index.d.ts +1 -0
- package/esm/lint/index.js +13 -0
- package/esm/lint/index.js.map +1 -0
- package/esm/lint/types.d.ts +20 -0
- package/esm/lint/types.js +2 -0
- package/esm/lint/types.js.map +1 -0
- package/lib/cli.js +15 -2
- package/lib/cli.js.map +1 -1
- package/lib/lint/engine.d.ts +3 -0
- package/lib/lint/engine.js +8 -0
- package/lib/lint/engine.js.map +1 -0
- package/lib/lint/index.d.ts +1 -0
- package/lib/lint/index.js +17 -0
- package/lib/lint/index.js.map +1 -0
- package/lib/lint/types.d.ts +20 -0
- package/lib/lint/types.js +3 -0
- package/lib/lint/types.js.map +1 -0
- package/package.json +8 -7
package/CHANGELOG.podlite
CHANGED
package/esm/cli.js
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
import * as fs from 'fs';
|
|
2
2
|
import * as path from 'path';
|
|
3
3
|
import { parse, toMarkdown, toHtml } from '@podlite/schema';
|
|
4
|
+
import { runLint } from './lint';
|
|
4
5
|
const FORMATS = {
|
|
5
6
|
md: '.md',
|
|
6
7
|
markdown: '.md',
|
|
7
8
|
html: '.html',
|
|
8
9
|
};
|
|
9
10
|
function usage() {
|
|
10
|
-
console.log(`Usage:
|
|
11
|
+
console.log(`Usage:
|
|
12
|
+
podlite convert <files...> --to <format> [-o <output>]
|
|
13
|
+
podlite lint <files...>
|
|
11
14
|
|
|
12
15
|
Commands:
|
|
13
16
|
convert Convert Podlite files to another format
|
|
17
|
+
lint Check Podlite/Markdown files for issues (work in progress)
|
|
14
18
|
|
|
15
19
|
Options:
|
|
16
20
|
--to Output format: md (markdown), html
|
|
@@ -20,7 +24,8 @@ Options:
|
|
|
20
24
|
Examples:
|
|
21
25
|
podlite convert doc.pod6 --to md
|
|
22
26
|
podlite convert *.pod6 --to md -o output/
|
|
23
|
-
podlite convert README.pod6 --to md -o README.md
|
|
27
|
+
podlite convert README.pod6 --to md -o README.md
|
|
28
|
+
podlite lint docs/*.podlite`);
|
|
24
29
|
}
|
|
25
30
|
function parseArgs(argv) {
|
|
26
31
|
const args = {
|
|
@@ -97,6 +102,14 @@ function main() {
|
|
|
97
102
|
usage();
|
|
98
103
|
process.exit(0);
|
|
99
104
|
}
|
|
105
|
+
if (args.command === 'lint') {
|
|
106
|
+
if (args.files.length === 0) {
|
|
107
|
+
console.error('No input files specified');
|
|
108
|
+
usage();
|
|
109
|
+
process.exit(1);
|
|
110
|
+
}
|
|
111
|
+
process.exit(runLint(args.files));
|
|
112
|
+
}
|
|
100
113
|
if (args.command !== 'convert') {
|
|
101
114
|
console.error(`Unknown command: ${args.command}`);
|
|
102
115
|
usage();
|
package/esm/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAA;AACxB,OAAO,KAAK,IAAI,MAAM,MAAM,CAAA;AAC5B,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/lint/engine.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,QAAQ,CAAC,GAAoB,EAAE,KAAa,EAAE,GAAgB;IAC5E,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;AACpD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function runLint(files: string[]): number;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/* =begin pod
|
|
2
|
+
=head2 C<runLint>
|
|
3
|
+
|
|
4
|
+
Stub entry point for the C<podlite lint> subcommand. Returns the exit code
|
|
5
|
+
the CLI should propagate. Until rules land (Track 7 phase 2), it logs a
|
|
6
|
+
placeholder and exits cleanly.
|
|
7
|
+
|
|
8
|
+
=end pod */
|
|
9
|
+
export function runLint(files) {
|
|
10
|
+
console.log(`lint: stub — received ${files.length} file(s); rules not yet implemented`);
|
|
11
|
+
return 0;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lint/index.ts"],"names":[],"mappings":"AAAA;;;;;;;WAOW;AACX,MAAM,UAAU,OAAO,CAAC,KAAe;IACrC,OAAO,CAAC,GAAG,CAAC,yBAAyB,KAAK,CAAC,MAAM,qCAAqC,CAAC,CAAA;IACvF,OAAO,CAAC,CAAA;AACV,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Location, PodliteDocument } from '@podlite/schema';
|
|
2
|
+
export declare type Severity = 'error' | 'warning' | 'info';
|
|
3
|
+
export declare type FileType = 'md' | 'podlite';
|
|
4
|
+
export declare type LintConfig = Record<string, never>;
|
|
5
|
+
export declare type LintContext = {
|
|
6
|
+
filePath: string;
|
|
7
|
+
fileType: FileType;
|
|
8
|
+
config: LintConfig;
|
|
9
|
+
};
|
|
10
|
+
export declare type Violation = {
|
|
11
|
+
rule: string;
|
|
12
|
+
severity: Severity;
|
|
13
|
+
message: string;
|
|
14
|
+
location?: Location;
|
|
15
|
+
};
|
|
16
|
+
export declare type Rule = {
|
|
17
|
+
id: string;
|
|
18
|
+
severity: Severity;
|
|
19
|
+
check: (ast: PodliteDocument, ctx: LintContext) => Violation[];
|
|
20
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lint/types.ts"],"names":[],"mappings":""}
|
package/lib/cli.js
CHANGED
|
@@ -22,16 +22,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
22
22
|
const fs = __importStar(require("fs"));
|
|
23
23
|
const path = __importStar(require("path"));
|
|
24
24
|
const schema_1 = require("@podlite/schema");
|
|
25
|
+
const lint_1 = require("./lint");
|
|
25
26
|
const FORMATS = {
|
|
26
27
|
md: '.md',
|
|
27
28
|
markdown: '.md',
|
|
28
29
|
html: '.html',
|
|
29
30
|
};
|
|
30
31
|
function usage() {
|
|
31
|
-
console.log(`Usage:
|
|
32
|
+
console.log(`Usage:
|
|
33
|
+
podlite convert <files...> --to <format> [-o <output>]
|
|
34
|
+
podlite lint <files...>
|
|
32
35
|
|
|
33
36
|
Commands:
|
|
34
37
|
convert Convert Podlite files to another format
|
|
38
|
+
lint Check Podlite/Markdown files for issues (work in progress)
|
|
35
39
|
|
|
36
40
|
Options:
|
|
37
41
|
--to Output format: md (markdown), html
|
|
@@ -41,7 +45,8 @@ Options:
|
|
|
41
45
|
Examples:
|
|
42
46
|
podlite convert doc.pod6 --to md
|
|
43
47
|
podlite convert *.pod6 --to md -o output/
|
|
44
|
-
podlite convert README.pod6 --to md -o README.md
|
|
48
|
+
podlite convert README.pod6 --to md -o README.md
|
|
49
|
+
podlite lint docs/*.podlite`);
|
|
45
50
|
}
|
|
46
51
|
function parseArgs(argv) {
|
|
47
52
|
const args = {
|
|
@@ -118,6 +123,14 @@ function main() {
|
|
|
118
123
|
usage();
|
|
119
124
|
process.exit(0);
|
|
120
125
|
}
|
|
126
|
+
if (args.command === 'lint') {
|
|
127
|
+
if (args.files.length === 0) {
|
|
128
|
+
console.error('No input files specified');
|
|
129
|
+
usage();
|
|
130
|
+
process.exit(1);
|
|
131
|
+
}
|
|
132
|
+
process.exit((0, lint_1.runLint)(args.files));
|
|
133
|
+
}
|
|
121
134
|
if (args.command !== 'convert') {
|
|
122
135
|
console.error(`Unknown command: ${args.command}`);
|
|
123
136
|
usage();
|
package/lib/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,uCAAwB;AACxB,2CAA4B;AAC5B,4CAA2D;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runRules = void 0;
|
|
4
|
+
function runRules(ast, rules, ctx) {
|
|
5
|
+
return rules.flatMap(rule => rule.check(ast, ctx));
|
|
6
|
+
}
|
|
7
|
+
exports.runRules = runRules;
|
|
8
|
+
//# sourceMappingURL=engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../src/lint/engine.ts"],"names":[],"mappings":";;;AAGA,SAAgB,QAAQ,CAAC,GAAoB,EAAE,KAAa,EAAE,GAAgB;IAC5E,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAA;AACpD,CAAC;AAFD,4BAEC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function runLint(files: string[]): number;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.runLint = void 0;
|
|
4
|
+
/* =begin pod
|
|
5
|
+
=head2 C<runLint>
|
|
6
|
+
|
|
7
|
+
Stub entry point for the C<podlite lint> subcommand. Returns the exit code
|
|
8
|
+
the CLI should propagate. Until rules land (Track 7 phase 2), it logs a
|
|
9
|
+
placeholder and exits cleanly.
|
|
10
|
+
|
|
11
|
+
=end pod */
|
|
12
|
+
function runLint(files) {
|
|
13
|
+
console.log(`lint: stub — received ${files.length} file(s); rules not yet implemented`);
|
|
14
|
+
return 0;
|
|
15
|
+
}
|
|
16
|
+
exports.runLint = runLint;
|
|
17
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/lint/index.ts"],"names":[],"mappings":";;;AAAA;;;;;;;WAOW;AACX,SAAgB,OAAO,CAAC,KAAe;IACrC,OAAO,CAAC,GAAG,CAAC,yBAAyB,KAAK,CAAC,MAAM,qCAAqC,CAAC,CAAA;IACvF,OAAO,CAAC,CAAA;AACV,CAAC;AAHD,0BAGC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Location, PodliteDocument } from '@podlite/schema';
|
|
2
|
+
export declare type Severity = 'error' | 'warning' | 'info';
|
|
3
|
+
export declare type FileType = 'md' | 'podlite';
|
|
4
|
+
export declare type LintConfig = Record<string, never>;
|
|
5
|
+
export declare type LintContext = {
|
|
6
|
+
filePath: string;
|
|
7
|
+
fileType: FileType;
|
|
8
|
+
config: LintConfig;
|
|
9
|
+
};
|
|
10
|
+
export declare type Violation = {
|
|
11
|
+
rule: string;
|
|
12
|
+
severity: Severity;
|
|
13
|
+
message: string;
|
|
14
|
+
location?: Location;
|
|
15
|
+
};
|
|
16
|
+
export declare type Rule = {
|
|
17
|
+
id: string;
|
|
18
|
+
severity: Severity;
|
|
19
|
+
check: (ast: PodliteDocument, ctx: LintContext) => Violation[];
|
|
20
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/lint/types.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "podlite",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.54",
|
|
4
4
|
"description": "Podlite markup language parser — Markdown-compatible, with native support for diagrams, formulas, and custom blocks",
|
|
5
5
|
"homepage": "https://podlite.org",
|
|
6
6
|
"repository": {
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
"scripts": {
|
|
17
17
|
"test": "yarn g:jest --passWithNoTests",
|
|
18
18
|
"build": "yarn g:build",
|
|
19
|
+
"typecheck:lint": "tsc -p src/lint/tsconfig.json --noEmit",
|
|
19
20
|
"watch": "run-p -r watch:*",
|
|
20
21
|
"watch:ts": "tsc -w --pretty",
|
|
21
22
|
"watch:tests": "jest --watch -t \"test\""
|
|
@@ -49,12 +50,12 @@
|
|
|
49
50
|
"url": "https://github.com/podlite/podlite/issues"
|
|
50
51
|
},
|
|
51
52
|
"dependencies": {
|
|
52
|
-
"@podlite/diagram": "^0.0.
|
|
53
|
-
"@podlite/formula": "0.0.
|
|
54
|
-
"@podlite/image": "^0.0.
|
|
55
|
-
"@podlite/markdown": "0.0.
|
|
56
|
-
"@podlite/schema": "^0.0.
|
|
57
|
-
"@podlite/toc": "0.0.
|
|
53
|
+
"@podlite/diagram": "^0.0.45",
|
|
54
|
+
"@podlite/formula": "0.0.23",
|
|
55
|
+
"@podlite/image": "^0.0.40",
|
|
56
|
+
"@podlite/markdown": "0.0.34",
|
|
57
|
+
"@podlite/schema": "^0.0.41",
|
|
58
|
+
"@podlite/toc": "0.0.34",
|
|
58
59
|
"nanoid": "3.1.30"
|
|
59
60
|
},
|
|
60
61
|
"devDependencies": {
|