podlite 0.0.61 → 0.0.63
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 +10 -0
- package/esm/cli.js +13 -6
- package/esm/cli.js.map +1 -1
- package/esm/lint/rules/index.js +3 -1
- package/esm/lint/rules/index.js.map +1 -1
- package/esm/lint/rules/media-absolute-file.d.ts +3 -0
- package/esm/lint/rules/media-absolute-file.js +50 -0
- package/esm/lint/rules/media-absolute-file.js.map +1 -0
- package/esm/lint/rules/syntax-valid.d.ts +2 -0
- package/esm/lint/rules/syntax-valid.js +18 -1
- package/esm/lint/rules/syntax-valid.js.map +1 -1
- package/esm/version.d.ts +1 -1
- package/esm/version.js +1 -1
- package/lib/cli.js +12 -5
- package/lib/cli.js.map +1 -1
- package/lib/lint/rules/index.js +3 -1
- package/lib/lint/rules/index.js.map +1 -1
- package/lib/lint/rules/media-absolute-file.d.ts +3 -0
- package/lib/lint/rules/media-absolute-file.js +53 -0
- package/lib/lint/rules/media-absolute-file.js.map +1 -0
- package/lib/lint/rules/syntax-valid.d.ts +2 -0
- package/lib/lint/rules/syntax-valid.js +20 -2
- package/lib/lint/rules/syntax-valid.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.js +1 -1
- package/package.json +7 -7
package/CHANGELOG.podlite
CHANGED
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
=head1 Upcoming
|
|
4
4
|
|
|
5
|
+
=head1 0.0.63
|
|
6
|
+
|
|
7
|
+
=item podlite lint C<syntax-valid> flags directive-like lines that fail to parse and are recovered as text
|
|
8
|
+
|
|
9
|
+
=item podlite convert accepts C<--base> (and env C<PODLITE_BASE>) to prefix relative C<file:> image paths
|
|
10
|
+
|
|
11
|
+
=item podlite convert renders plugin blocks (pictures, diagrams, formulas) through the full plugin pipeline
|
|
12
|
+
|
|
13
|
+
=item podlite lint C<media-absolute-file> flags absolute local image paths that a published site cannot resolve
|
|
14
|
+
|
|
5
15
|
=head1 0.0.61
|
|
6
16
|
|
|
7
17
|
=item add C<exports> map, top-level C<types>, and explicit C<sideEffects> to package manifest
|
package/esm/cli.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as fs from 'fs';
|
|
2
2
|
import * as path from 'path';
|
|
3
|
-
import {
|
|
3
|
+
import { toMarkdown, toHtml } from '@podlite/schema';
|
|
4
|
+
import { podlite } from './index';
|
|
4
5
|
import { runLint } from './lint';
|
|
5
6
|
import { runQuery } from './query';
|
|
6
7
|
const FORMATS = {
|
|
@@ -28,6 +29,7 @@ Options:
|
|
|
28
29
|
--format lint output format: text (default), json
|
|
29
30
|
--strict lint: promote warnings to errors
|
|
30
31
|
--config lint: path to .podlitelintrc.{json,js}
|
|
32
|
+
--base convert: prefix for relative file: image paths (or env PODLITE_BASE)
|
|
31
33
|
-o Output file or directory (default: same dir, new extension)
|
|
32
34
|
--fail-on-empty query: exit 1 if no blocks matched
|
|
33
35
|
--quiet query: suppress match count on stderr
|
|
@@ -56,6 +58,7 @@ function parseArgs(argv) {
|
|
|
56
58
|
strict: false,
|
|
57
59
|
format: '',
|
|
58
60
|
configPath: '',
|
|
61
|
+
base: '',
|
|
59
62
|
};
|
|
60
63
|
if (argv.length === 0 || argv[0] === '--help' || argv[0] === '-h') {
|
|
61
64
|
return null;
|
|
@@ -85,6 +88,9 @@ function parseArgs(argv) {
|
|
|
85
88
|
else if (arg === '--config') {
|
|
86
89
|
args.configPath = argv[++i] || '';
|
|
87
90
|
}
|
|
91
|
+
else if (arg === '--base') {
|
|
92
|
+
args.base = argv[++i] || '';
|
|
93
|
+
}
|
|
88
94
|
else if (arg === '--help' || arg === '-h') {
|
|
89
95
|
return null;
|
|
90
96
|
}
|
|
@@ -95,20 +101,21 @@ function parseArgs(argv) {
|
|
|
95
101
|
}
|
|
96
102
|
return args;
|
|
97
103
|
}
|
|
98
|
-
function convertFile(inputPath, format, outputPath) {
|
|
104
|
+
function convertFile(inputPath, format, outputPath, base) {
|
|
99
105
|
const ext = FORMATS[format];
|
|
100
106
|
if (!ext) {
|
|
101
107
|
console.error(`Unknown format: ${format}. Supported: ${Object.keys(FORMATS).join(', ')}`);
|
|
102
108
|
process.exit(1);
|
|
103
109
|
}
|
|
104
110
|
const content = fs.readFileSync(inputPath, 'utf-8');
|
|
105
|
-
const
|
|
111
|
+
const p = podlite({ importPlugins: true });
|
|
112
|
+
const tree = p.toAst(p.parse(content, { podMode: 1 }));
|
|
106
113
|
let result;
|
|
107
114
|
if (format === 'md' || format === 'markdown') {
|
|
108
|
-
result = toMarkdown({}).run(tree).toString();
|
|
115
|
+
result = toMarkdown({ base }).run(tree).toString();
|
|
109
116
|
}
|
|
110
117
|
else if (format === 'html') {
|
|
111
|
-
result = toHtml({}).run(tree).toString();
|
|
118
|
+
result = toHtml({ base }).run(tree).toString();
|
|
112
119
|
}
|
|
113
120
|
else {
|
|
114
121
|
console.error(`Format "${format}" not implemented yet`);
|
|
@@ -248,7 +255,7 @@ function main() {
|
|
|
248
255
|
console.error(`File not found: ${file}`);
|
|
249
256
|
process.exit(1);
|
|
250
257
|
}
|
|
251
|
-
convertFile(file, args.to, args.output || undefined);
|
|
258
|
+
convertFile(file, args.to, args.output || undefined, args.base || process.env.PODLITE_BASE);
|
|
252
259
|
}
|
|
253
260
|
}
|
|
254
261
|
main();
|
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,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/esm/lint/rules/index.js
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { syntaxValidRule } from './syntax-valid';
|
|
1
2
|
import { headingHierarchyRule } from './heading-hierarchy';
|
|
2
3
|
import { idUniqueRule } from './id-unique';
|
|
3
|
-
|
|
4
|
+
import { mediaAbsoluteFileRule } from './media-absolute-file';
|
|
5
|
+
export const DEFAULT_RULES = [syntaxValidRule, headingHierarchyRule, idUniqueRule, mediaAbsoluteFileRule];
|
|
4
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lint/rules/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lint/rules/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,MAAM,CAAC,MAAM,aAAa,GAAW,CAAC,eAAe,EAAE,oBAAoB,EAAE,YAAY,EAAE,qBAAqB,CAAC,CAAA"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { getFromTree, makeAttrs } from '@podlite/schema';
|
|
2
|
+
export const MEDIA_ABSOLUTE_FILE_RULE_ID = 'media-absolute-file';
|
|
3
|
+
const firstLine = (value) => value
|
|
4
|
+
.split('\n')
|
|
5
|
+
.map(line => line.trim())
|
|
6
|
+
.find(line => line.length > 0) || '';
|
|
7
|
+
const pictureSource = (node) => {
|
|
8
|
+
const attrs = makeAttrs(node);
|
|
9
|
+
if (attrs.exists('src'))
|
|
10
|
+
return String(attrs.getFirstValue('src'));
|
|
11
|
+
const content = Array.isArray(node.content) ? node.content : [];
|
|
12
|
+
for (const child of content) {
|
|
13
|
+
if (child && typeof child.value === 'string') {
|
|
14
|
+
const line = firstLine(child.value);
|
|
15
|
+
if (line)
|
|
16
|
+
return line;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return '';
|
|
20
|
+
};
|
|
21
|
+
const isAbsoluteLocal = (src) => {
|
|
22
|
+
const scheme = /^([a-zA-Z][a-zA-Z0-9+.-]*):(.*)$/.exec(src);
|
|
23
|
+
if (scheme)
|
|
24
|
+
return scheme[1].toLowerCase() === 'file' && scheme[2].startsWith('/');
|
|
25
|
+
return src.startsWith('/');
|
|
26
|
+
};
|
|
27
|
+
export const mediaAbsoluteFileRule = {
|
|
28
|
+
id: MEDIA_ABSOLUTE_FILE_RULE_ID,
|
|
29
|
+
severity: 'info',
|
|
30
|
+
check: (ast, _ctx) => {
|
|
31
|
+
const pictures = getFromTree(ast, node => {
|
|
32
|
+
const n = node;
|
|
33
|
+
return n.type === 'block' && (n.name === 'picture' || n.name === 'Image');
|
|
34
|
+
});
|
|
35
|
+
const violations = [];
|
|
36
|
+
for (const node of pictures) {
|
|
37
|
+
const src = pictureSource(node);
|
|
38
|
+
if (src && isAbsoluteLocal(src)) {
|
|
39
|
+
violations.push({
|
|
40
|
+
rule: MEDIA_ABSOLUTE_FILE_RULE_ID,
|
|
41
|
+
severity: 'info',
|
|
42
|
+
message: `Absolute local image path "${src}". A published site cannot resolve it; use a relative path with an export base, or a full https: URL`,
|
|
43
|
+
location: node.location,
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return violations;
|
|
48
|
+
},
|
|
49
|
+
};
|
|
50
|
+
//# sourceMappingURL=media-absolute-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-absolute-file.js","sourceRoot":"","sources":["../../../src/lint/rules/media-absolute-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAmB,MAAM,iBAAiB,CAAA;AAGzE,MAAM,CAAC,MAAM,2BAA2B,GAAG,qBAAqB,CAAA;AAEhE,MAAM,SAAS,GAAG,CAAC,KAAa,EAAU,EAAE,CAC1C,KAAK;KACF,KAAK,CAAC,IAAI,CAAC;KACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;KACxB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;AAExC,MAAM,aAAa,GAAG,CAAC,IAA6C,EAAU,EAAE;IAC9E,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,CAAA;IAC7B,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;IAClE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC3B,IAAI,KAAK,IAAI,OAAQ,KAA6B,CAAC,KAAK,KAAK,QAAQ,EAAE;YACrE,MAAM,IAAI,GAAG,SAAS,CAAE,KAA2B,CAAC,KAAK,CAAC,CAAA;YAC1D,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAA;SACtB;KACF;IACD,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,GAAW,EAAW,EAAE;IAC/C,MAAM,MAAM,GAAG,kCAAkC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC3D,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;IAClF,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;AAC5B,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAS;IACzC,EAAE,EAAE,2BAA2B;IAC/B,QAAQ,EAAE,MAAM;IAChB,KAAK,EAAE,CAAC,GAAoB,EAAE,IAAiB,EAAe,EAAE;QAC9D,MAAM,QAAQ,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE;YACvC,MAAM,CAAC,GAAG,IAAwC,CAAA;YAClD,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAA;QAC3E,CAAC,CAAqF,CAAA;QACtF,MAAM,UAAU,GAAgB,EAAE,CAAA;QAClC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;YAC3B,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;YAC/B,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE;gBAC/B,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,2BAA2B;oBACjC,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,8BAA8B,GAAG,sGAAsG;oBAChJ,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB,CAAC,CAAA;aACH;SACF;QACD,OAAO,UAAU,CAAA;IACnB,CAAC;CACF,CAAA"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { PodliteDocument } from '@podlite/schema';
|
|
1
2
|
import type { Rule, Violation } from '../types';
|
|
2
3
|
export declare const SYNTAX_VALID_RULE_ID = "syntax-valid";
|
|
3
4
|
export declare function makeSyntaxViolation(err: unknown, filePath: string): Violation;
|
|
5
|
+
export declare function collectRecoveredErrors(ast: PodliteDocument): Violation[];
|
|
4
6
|
export declare const syntaxValidRule: Rule;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { getFromTree } from '@podlite/schema';
|
|
1
2
|
export const SYNTAX_VALID_RULE_ID = 'syntax-valid';
|
|
2
3
|
export function makeSyntaxViolation(err, filePath) {
|
|
3
4
|
const e = err;
|
|
@@ -22,9 +23,25 @@ export function makeSyntaxViolation(err, filePath) {
|
|
|
22
23
|
: undefined,
|
|
23
24
|
};
|
|
24
25
|
}
|
|
26
|
+
export function collectRecoveredErrors(ast) {
|
|
27
|
+
const nodes = getFromTree(ast, () => true);
|
|
28
|
+
const violations = [];
|
|
29
|
+
for (const node of nodes) {
|
|
30
|
+
if (node && node.error === true) {
|
|
31
|
+
const snippet = String(node.value ?? '').trim();
|
|
32
|
+
violations.push({
|
|
33
|
+
rule: SYNTAX_VALID_RULE_ID,
|
|
34
|
+
severity: 'warning',
|
|
35
|
+
message: `Line could not be parsed as a directive or block: ${snippet}`,
|
|
36
|
+
location: node.location,
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
return violations;
|
|
41
|
+
}
|
|
25
42
|
export const syntaxValidRule = {
|
|
26
43
|
id: SYNTAX_VALID_RULE_ID,
|
|
27
44
|
severity: 'error',
|
|
28
|
-
check: (
|
|
45
|
+
check: (ast, _ctx) => collectRecoveredErrors(ast),
|
|
29
46
|
};
|
|
30
47
|
//# sourceMappingURL=syntax-valid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syntax-valid.js","sourceRoot":"","sources":["../../../src/lint/rules/syntax-valid.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"syntax-valid.js","sourceRoot":"","sources":["../../../src/lint/rules/syntax-valid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAmB,MAAM,iBAAiB,CAAA;AAG9D,MAAM,CAAC,MAAM,oBAAoB,GAAG,cAAc,CAAA;AAElD,MAAM,UAAU,mBAAmB,CAAC,GAAY,EAAE,QAAgB;IAChE,MAAM,CAAC,GAAG,GAAuG,CAAA;IACjH,MAAM,KAAK,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAA;IAChC,OAAO;QACL,IAAI,EAAE,oBAAoB;QAC1B,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa;QACtE,QAAQ,EAAE,CAAC,EAAE,QAAQ;YACnB,CAAC,CAAC;gBACE,KAAK,EAAE;oBACL,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC;oBACtB,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;oBAC1B,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;iBAC3B;gBACD,GAAG,EAAE;oBACH,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC;oBACtB,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;oBAC1B,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;iBAC3B;aACF;YACH,CAAC,CAAC,SAAS;KACd,CAAA;AACH,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,GAAoB;IACzD,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAIvC,CAAA;IACF,MAAM,UAAU,GAAgB,EAAE,CAAA;IAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;YAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;YAC/C,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,oBAAoB;gBAC1B,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,qDAAqD,OAAO,EAAE;gBACvE,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAA;SACH;KACF;IACD,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAS;IACnC,EAAE,EAAE,oBAAoB;IACxB,QAAQ,EAAE,OAAO;IACjB,KAAK,EAAE,CAAC,GAAoB,EAAE,IAAiB,EAAe,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAC;CAC7F,CAAA"}
|
package/esm/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "0.0.
|
|
1
|
+
export declare const version = "0.0.63";
|
package/esm/version.js
CHANGED
package/lib/cli.js
CHANGED
|
@@ -22,6 +22,7 @@ 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 index_1 = require("./index");
|
|
25
26
|
const lint_1 = require("./lint");
|
|
26
27
|
const query_1 = require("./query");
|
|
27
28
|
const FORMATS = {
|
|
@@ -49,6 +50,7 @@ Options:
|
|
|
49
50
|
--format lint output format: text (default), json
|
|
50
51
|
--strict lint: promote warnings to errors
|
|
51
52
|
--config lint: path to .podlitelintrc.{json,js}
|
|
53
|
+
--base convert: prefix for relative file: image paths (or env PODLITE_BASE)
|
|
52
54
|
-o Output file or directory (default: same dir, new extension)
|
|
53
55
|
--fail-on-empty query: exit 1 if no blocks matched
|
|
54
56
|
--quiet query: suppress match count on stderr
|
|
@@ -77,6 +79,7 @@ function parseArgs(argv) {
|
|
|
77
79
|
strict: false,
|
|
78
80
|
format: '',
|
|
79
81
|
configPath: '',
|
|
82
|
+
base: '',
|
|
80
83
|
};
|
|
81
84
|
if (argv.length === 0 || argv[0] === '--help' || argv[0] === '-h') {
|
|
82
85
|
return null;
|
|
@@ -106,6 +109,9 @@ function parseArgs(argv) {
|
|
|
106
109
|
else if (arg === '--config') {
|
|
107
110
|
args.configPath = argv[++i] || '';
|
|
108
111
|
}
|
|
112
|
+
else if (arg === '--base') {
|
|
113
|
+
args.base = argv[++i] || '';
|
|
114
|
+
}
|
|
109
115
|
else if (arg === '--help' || arg === '-h') {
|
|
110
116
|
return null;
|
|
111
117
|
}
|
|
@@ -116,20 +122,21 @@ function parseArgs(argv) {
|
|
|
116
122
|
}
|
|
117
123
|
return args;
|
|
118
124
|
}
|
|
119
|
-
function convertFile(inputPath, format, outputPath) {
|
|
125
|
+
function convertFile(inputPath, format, outputPath, base) {
|
|
120
126
|
const ext = FORMATS[format];
|
|
121
127
|
if (!ext) {
|
|
122
128
|
console.error(`Unknown format: ${format}. Supported: ${Object.keys(FORMATS).join(', ')}`);
|
|
123
129
|
process.exit(1);
|
|
124
130
|
}
|
|
125
131
|
const content = fs.readFileSync(inputPath, 'utf-8');
|
|
126
|
-
const
|
|
132
|
+
const p = (0, index_1.podlite)({ importPlugins: true });
|
|
133
|
+
const tree = p.toAst(p.parse(content, { podMode: 1 }));
|
|
127
134
|
let result;
|
|
128
135
|
if (format === 'md' || format === 'markdown') {
|
|
129
|
-
result = (0, schema_1.toMarkdown)({}).run(tree).toString();
|
|
136
|
+
result = (0, schema_1.toMarkdown)({ base }).run(tree).toString();
|
|
130
137
|
}
|
|
131
138
|
else if (format === 'html') {
|
|
132
|
-
result = (0, schema_1.toHtml)({}).run(tree).toString();
|
|
139
|
+
result = (0, schema_1.toHtml)({ base }).run(tree).toString();
|
|
133
140
|
}
|
|
134
141
|
else {
|
|
135
142
|
console.error(`Format "${format}" not implemented yet`);
|
|
@@ -269,7 +276,7 @@ function main() {
|
|
|
269
276
|
console.error(`File not found: ${file}`);
|
|
270
277
|
process.exit(1);
|
|
271
278
|
}
|
|
272
|
-
convertFile(file, args.to, args.output || undefined);
|
|
279
|
+
convertFile(file, args.to, args.output || undefined, args.base || process.env.PODLITE_BASE);
|
|
273
280
|
}
|
|
274
281
|
}
|
|
275
282
|
main();
|
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,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/lib/lint/rules/index.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DEFAULT_RULES = void 0;
|
|
4
|
+
const syntax_valid_1 = require("./syntax-valid");
|
|
4
5
|
const heading_hierarchy_1 = require("./heading-hierarchy");
|
|
5
6
|
const id_unique_1 = require("./id-unique");
|
|
6
|
-
|
|
7
|
+
const media_absolute_file_1 = require("./media-absolute-file");
|
|
8
|
+
exports.DEFAULT_RULES = [syntax_valid_1.syntaxValidRule, heading_hierarchy_1.headingHierarchyRule, id_unique_1.idUniqueRule, media_absolute_file_1.mediaAbsoluteFileRule];
|
|
7
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lint/rules/index.ts"],"names":[],"mappings":";;;AACA,2DAA0D;AAC1D,2CAA0C;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/lint/rules/index.ts"],"names":[],"mappings":";;;AACA,iDAAgD;AAChD,2DAA0D;AAC1D,2CAA0C;AAC1C,+DAA6D;AAEhD,QAAA,aAAa,GAAW,CAAC,8BAAe,EAAE,wCAAoB,EAAE,wBAAY,EAAE,2CAAqB,CAAC,CAAA"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.mediaAbsoluteFileRule = exports.MEDIA_ABSOLUTE_FILE_RULE_ID = void 0;
|
|
4
|
+
const schema_1 = require("@podlite/schema");
|
|
5
|
+
exports.MEDIA_ABSOLUTE_FILE_RULE_ID = 'media-absolute-file';
|
|
6
|
+
const firstLine = (value) => value
|
|
7
|
+
.split('\n')
|
|
8
|
+
.map(line => line.trim())
|
|
9
|
+
.find(line => line.length > 0) || '';
|
|
10
|
+
const pictureSource = (node) => {
|
|
11
|
+
const attrs = (0, schema_1.makeAttrs)(node);
|
|
12
|
+
if (attrs.exists('src'))
|
|
13
|
+
return String(attrs.getFirstValue('src'));
|
|
14
|
+
const content = Array.isArray(node.content) ? node.content : [];
|
|
15
|
+
for (const child of content) {
|
|
16
|
+
if (child && typeof child.value === 'string') {
|
|
17
|
+
const line = firstLine(child.value);
|
|
18
|
+
if (line)
|
|
19
|
+
return line;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return '';
|
|
23
|
+
};
|
|
24
|
+
const isAbsoluteLocal = (src) => {
|
|
25
|
+
const scheme = /^([a-zA-Z][a-zA-Z0-9+.-]*):(.*)$/.exec(src);
|
|
26
|
+
if (scheme)
|
|
27
|
+
return scheme[1].toLowerCase() === 'file' && scheme[2].startsWith('/');
|
|
28
|
+
return src.startsWith('/');
|
|
29
|
+
};
|
|
30
|
+
exports.mediaAbsoluteFileRule = {
|
|
31
|
+
id: exports.MEDIA_ABSOLUTE_FILE_RULE_ID,
|
|
32
|
+
severity: 'info',
|
|
33
|
+
check: (ast, _ctx) => {
|
|
34
|
+
const pictures = (0, schema_1.getFromTree)(ast, node => {
|
|
35
|
+
const n = node;
|
|
36
|
+
return n.type === 'block' && (n.name === 'picture' || n.name === 'Image');
|
|
37
|
+
});
|
|
38
|
+
const violations = [];
|
|
39
|
+
for (const node of pictures) {
|
|
40
|
+
const src = pictureSource(node);
|
|
41
|
+
if (src && isAbsoluteLocal(src)) {
|
|
42
|
+
violations.push({
|
|
43
|
+
rule: exports.MEDIA_ABSOLUTE_FILE_RULE_ID,
|
|
44
|
+
severity: 'info',
|
|
45
|
+
message: `Absolute local image path "${src}". A published site cannot resolve it; use a relative path with an export base, or a full https: URL`,
|
|
46
|
+
location: node.location,
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return violations;
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=media-absolute-file.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media-absolute-file.js","sourceRoot":"","sources":["../../../src/lint/rules/media-absolute-file.ts"],"names":[],"mappings":";;;AAAA,4CAAyE;AAG5D,QAAA,2BAA2B,GAAG,qBAAqB,CAAA;AAEhE,MAAM,SAAS,GAAG,CAAC,KAAa,EAAU,EAAE,CAC1C,KAAK;KACF,KAAK,CAAC,IAAI,CAAC;KACX,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;KACxB,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAA;AAExC,MAAM,aAAa,GAAG,CAAC,IAA6C,EAAU,EAAE;IAC9E,MAAM,KAAK,GAAG,IAAA,kBAAS,EAAC,IAAI,CAAC,CAAA;IAC7B,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAA;IAClE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAA;IAC/D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;QAC3B,IAAI,KAAK,IAAI,OAAQ,KAA6B,CAAC,KAAK,KAAK,QAAQ,EAAE;YACrE,MAAM,IAAI,GAAG,SAAS,CAAE,KAA2B,CAAC,KAAK,CAAC,CAAA;YAC1D,IAAI,IAAI;gBAAE,OAAO,IAAI,CAAA;SACtB;KACF;IACD,OAAO,EAAE,CAAA;AACX,CAAC,CAAA;AAED,MAAM,eAAe,GAAG,CAAC,GAAW,EAAW,EAAE;IAC/C,MAAM,MAAM,GAAG,kCAAkC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;IAC3D,IAAI,MAAM;QAAE,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;IAClF,OAAO,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;AAC5B,CAAC,CAAA;AAEY,QAAA,qBAAqB,GAAS;IACzC,EAAE,EAAE,mCAA2B;IAC/B,QAAQ,EAAE,MAAM;IAChB,KAAK,EAAE,CAAC,GAAoB,EAAE,IAAiB,EAAe,EAAE;QAC9D,MAAM,QAAQ,GAAG,IAAA,oBAAW,EAAC,GAAG,EAAE,IAAI,CAAC,EAAE;YACvC,MAAM,CAAC,GAAG,IAAwC,CAAA;YAClD,OAAO,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAA;QAC3E,CAAC,CAAqF,CAAA;QACtF,MAAM,UAAU,GAAgB,EAAE,CAAA;QAClC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;YAC3B,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;YAC/B,IAAI,GAAG,IAAI,eAAe,CAAC,GAAG,CAAC,EAAE;gBAC/B,UAAU,CAAC,IAAI,CAAC;oBACd,IAAI,EAAE,mCAA2B;oBACjC,QAAQ,EAAE,MAAM;oBAChB,OAAO,EAAE,8BAA8B,GAAG,sGAAsG;oBAChJ,QAAQ,EAAE,IAAI,CAAC,QAAQ;iBACxB,CAAC,CAAA;aACH;SACF;QACD,OAAO,UAAU,CAAA;IACnB,CAAC;CACF,CAAA"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { PodliteDocument } from '@podlite/schema';
|
|
1
2
|
import type { Rule, Violation } from '../types';
|
|
2
3
|
export declare const SYNTAX_VALID_RULE_ID = "syntax-valid";
|
|
3
4
|
export declare function makeSyntaxViolation(err: unknown, filePath: string): Violation;
|
|
5
|
+
export declare function collectRecoveredErrors(ast: PodliteDocument): Violation[];
|
|
4
6
|
export declare const syntaxValidRule: Rule;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.syntaxValidRule = exports.makeSyntaxViolation = exports.SYNTAX_VALID_RULE_ID = void 0;
|
|
3
|
+
exports.syntaxValidRule = exports.collectRecoveredErrors = exports.makeSyntaxViolation = exports.SYNTAX_VALID_RULE_ID = void 0;
|
|
4
|
+
const schema_1 = require("@podlite/schema");
|
|
4
5
|
exports.SYNTAX_VALID_RULE_ID = 'syntax-valid';
|
|
5
6
|
function makeSyntaxViolation(err, filePath) {
|
|
6
7
|
const e = err;
|
|
@@ -26,9 +27,26 @@ function makeSyntaxViolation(err, filePath) {
|
|
|
26
27
|
};
|
|
27
28
|
}
|
|
28
29
|
exports.makeSyntaxViolation = makeSyntaxViolation;
|
|
30
|
+
function collectRecoveredErrors(ast) {
|
|
31
|
+
const nodes = (0, schema_1.getFromTree)(ast, () => true);
|
|
32
|
+
const violations = [];
|
|
33
|
+
for (const node of nodes) {
|
|
34
|
+
if (node && node.error === true) {
|
|
35
|
+
const snippet = String(node.value ?? '').trim();
|
|
36
|
+
violations.push({
|
|
37
|
+
rule: exports.SYNTAX_VALID_RULE_ID,
|
|
38
|
+
severity: 'warning',
|
|
39
|
+
message: `Line could not be parsed as a directive or block: ${snippet}`,
|
|
40
|
+
location: node.location,
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return violations;
|
|
45
|
+
}
|
|
46
|
+
exports.collectRecoveredErrors = collectRecoveredErrors;
|
|
29
47
|
exports.syntaxValidRule = {
|
|
30
48
|
id: exports.SYNTAX_VALID_RULE_ID,
|
|
31
49
|
severity: 'error',
|
|
32
|
-
check: (
|
|
50
|
+
check: (ast, _ctx) => collectRecoveredErrors(ast),
|
|
33
51
|
};
|
|
34
52
|
//# sourceMappingURL=syntax-valid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syntax-valid.js","sourceRoot":"","sources":["../../../src/lint/rules/syntax-valid.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"syntax-valid.js","sourceRoot":"","sources":["../../../src/lint/rules/syntax-valid.ts"],"names":[],"mappings":";;;AAAA,4CAA8D;AAGjD,QAAA,oBAAoB,GAAG,cAAc,CAAA;AAElD,SAAgB,mBAAmB,CAAC,GAAY,EAAE,QAAgB;IAChE,MAAM,CAAC,GAAG,GAAuG,CAAA;IACjH,MAAM,KAAK,GAAG,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAA;IAChC,OAAO;QACL,IAAI,EAAE,4BAAoB;QAC1B,QAAQ,EAAE,OAAO;QACjB,OAAO,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa;QACtE,QAAQ,EAAE,CAAC,EAAE,QAAQ;YACnB,CAAC,CAAC;gBACE,KAAK,EAAE;oBACL,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC;oBACtB,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;oBAC1B,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;iBAC3B;gBACD,GAAG,EAAE;oBACH,IAAI,EAAE,KAAK,EAAE,IAAI,IAAI,CAAC;oBACtB,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;oBAC1B,MAAM,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;iBAC3B;aACF;YACH,CAAC,CAAC,SAAS;KACd,CAAA;AACH,CAAC;AAtBD,kDAsBC;AAED,SAAgB,sBAAsB,CAAC,GAAoB;IACzD,MAAM,KAAK,GAAG,IAAA,oBAAW,EAAC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAIvC,CAAA;IACF,MAAM,UAAU,GAAgB,EAAE,CAAA;IAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;QACxB,IAAI,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;YAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;YAC/C,UAAU,CAAC,IAAI,CAAC;gBACd,IAAI,EAAE,4BAAoB;gBAC1B,QAAQ,EAAE,SAAS;gBACnB,OAAO,EAAE,qDAAqD,OAAO,EAAE;gBACvE,QAAQ,EAAE,IAAI,CAAC,QAAQ;aACxB,CAAC,CAAA;SACH;KACF;IACD,OAAO,UAAU,CAAA;AACnB,CAAC;AAnBD,wDAmBC;AAEY,QAAA,eAAe,GAAS;IACnC,EAAE,EAAE,4BAAoB;IACxB,QAAQ,EAAE,OAAO;IACjB,KAAK,EAAE,CAAC,GAAoB,EAAE,IAAiB,EAAe,EAAE,CAAC,sBAAsB,CAAC,GAAG,CAAC;CAC7F,CAAA"}
|
package/lib/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "0.0.
|
|
1
|
+
export declare const version = "0.0.63";
|
package/lib/version.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "podlite",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.63",
|
|
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": {
|
|
@@ -64,12 +64,12 @@
|
|
|
64
64
|
"url": "https://github.com/podlite/podlite/issues"
|
|
65
65
|
},
|
|
66
66
|
"dependencies": {
|
|
67
|
-
"@podlite/diagram": "^0.0.
|
|
68
|
-
"@podlite/formula": "0.0.
|
|
69
|
-
"@podlite/image": "^0.0.
|
|
70
|
-
"@podlite/markdown": "0.0.
|
|
71
|
-
"@podlite/schema": "^0.0.
|
|
72
|
-
"@podlite/toc": "0.0.
|
|
67
|
+
"@podlite/diagram": "^0.0.54",
|
|
68
|
+
"@podlite/formula": "0.0.32",
|
|
69
|
+
"@podlite/image": "^0.0.49",
|
|
70
|
+
"@podlite/markdown": "0.0.43",
|
|
71
|
+
"@podlite/schema": "^0.0.50",
|
|
72
|
+
"@podlite/toc": "0.0.43",
|
|
73
73
|
"nanoid": "3.1.30"
|
|
74
74
|
},
|
|
75
75
|
"devDependencies": {
|