podlite 0.0.70 → 0.0.72
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/lint/rules/link-target-resolves.js +11 -3
- package/esm/lint/rules/link-target-resolves.js.map +1 -1
- package/esm/version.d.ts +1 -1
- package/esm/version.js +1 -1
- package/lib/lint/rules/link-target-resolves.js +11 -3
- package/lib/lint/rules/link-target-resolves.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,10 @@
|
|
|
2
2
|
|
|
3
3
|
=head1 Upcoming
|
|
4
4
|
|
|
5
|
+
=head1 0.0.71
|
|
6
|
+
|
|
7
|
+
=item podlite lint link-target-resolves accepts a link to a heading by name — exact match first, then without regard to case; it used to know only author-written C<:id> and reported an error on a sound document
|
|
8
|
+
|
|
5
9
|
=head1 0.0.69
|
|
6
10
|
|
|
7
11
|
=item podlite lint attr-nested-angle also reports a value closed early by a C<< > >> written inside it, and no longer fires on running text or on the contents of a verbatim block
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { findAnchor, indexAnchors, toFragment } from '@podlite/schema';
|
|
1
2
|
import { collectExplicitIds } from './id-unique';
|
|
2
3
|
export const LINK_TARGET_RESOLVES_RULE_ID = 'link-target-resolves';
|
|
3
4
|
// A link without display text carries the target in its content instead of meta.
|
|
@@ -26,13 +27,20 @@ export const linkTargetResolvesRule = {
|
|
|
26
27
|
const anchors = collectAnchors(ast).filter(({ target }) => target.startsWith('#'));
|
|
27
28
|
if (anchors.length === 0)
|
|
28
29
|
return [];
|
|
29
|
-
|
|
30
|
+
// Both ways an anchor can exist: written by the author as :id, or carried by a
|
|
31
|
+
// heading under its own name. Matched the way the exporter matches them.
|
|
32
|
+
const written = new Set(collectExplicitIds(ast).map(entry => toFragment(entry.value)));
|
|
33
|
+
const headings = indexAnchors(ast);
|
|
34
|
+
const resolves = (target) => {
|
|
35
|
+
const name = target.slice(1);
|
|
36
|
+
return written.has(toFragment(name)) || findAnchor(name, headings) !== undefined;
|
|
37
|
+
};
|
|
30
38
|
return anchors
|
|
31
|
-
.filter(({ target }) => !
|
|
39
|
+
.filter(({ target }) => !resolves(target))
|
|
32
40
|
.map(({ target, at }) => ({
|
|
33
41
|
rule: LINK_TARGET_RESOLVES_RULE_ID,
|
|
34
42
|
severity: 'error',
|
|
35
|
-
message: `Link target ${target}
|
|
43
|
+
message: `Link target ${target} matches no :id and no heading`,
|
|
36
44
|
location: at,
|
|
37
45
|
}));
|
|
38
46
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link-target-resolves.js","sourceRoot":"","sources":["../../../src/lint/rules/link-target-resolves.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"link-target-resolves.js","sourceRoot":"","sources":["../../../src/lint/rules/link-target-resolves.ts"],"names":[],"mappings":"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"}
|
package/esm/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "0.0.
|
|
1
|
+
export declare const version = "0.0.72";
|
package/esm/version.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.linkTargetResolvesRule = exports.LINK_TARGET_RESOLVES_RULE_ID = void 0;
|
|
4
|
+
const schema_1 = require("@podlite/schema");
|
|
4
5
|
const id_unique_1 = require("./id-unique");
|
|
5
6
|
exports.LINK_TARGET_RESOLVES_RULE_ID = 'link-target-resolves';
|
|
6
7
|
// A link without display text carries the target in its content instead of meta.
|
|
@@ -29,13 +30,20 @@ exports.linkTargetResolvesRule = {
|
|
|
29
30
|
const anchors = collectAnchors(ast).filter(({ target }) => target.startsWith('#'));
|
|
30
31
|
if (anchors.length === 0)
|
|
31
32
|
return [];
|
|
32
|
-
|
|
33
|
+
// Both ways an anchor can exist: written by the author as :id, or carried by a
|
|
34
|
+
// heading under its own name. Matched the way the exporter matches them.
|
|
35
|
+
const written = new Set((0, id_unique_1.collectExplicitIds)(ast).map(entry => (0, schema_1.toFragment)(entry.value)));
|
|
36
|
+
const headings = (0, schema_1.indexAnchors)(ast);
|
|
37
|
+
const resolves = (target) => {
|
|
38
|
+
const name = target.slice(1);
|
|
39
|
+
return written.has((0, schema_1.toFragment)(name)) || (0, schema_1.findAnchor)(name, headings) !== undefined;
|
|
40
|
+
};
|
|
33
41
|
return anchors
|
|
34
|
-
.filter(({ target }) => !
|
|
42
|
+
.filter(({ target }) => !resolves(target))
|
|
35
43
|
.map(({ target, at }) => ({
|
|
36
44
|
rule: exports.LINK_TARGET_RESOLVES_RULE_ID,
|
|
37
45
|
severity: 'error',
|
|
38
|
-
message: `Link target ${target}
|
|
46
|
+
message: `Link target ${target} matches no :id and no heading`,
|
|
39
47
|
location: at,
|
|
40
48
|
}));
|
|
41
49
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link-target-resolves.js","sourceRoot":"","sources":["../../../src/lint/rules/link-target-resolves.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"link-target-resolves.js","sourceRoot":"","sources":["../../../src/lint/rules/link-target-resolves.ts"],"names":[],"mappings":"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"}
|
package/lib/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const version = "0.0.
|
|
1
|
+
export declare const version = "0.0.72";
|
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.72",
|
|
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": {
|
|
@@ -71,12 +71,12 @@
|
|
|
71
71
|
"url": "https://github.com/podlite/podlite/issues"
|
|
72
72
|
},
|
|
73
73
|
"dependencies": {
|
|
74
|
-
"@podlite/diagram": "^0.0.
|
|
75
|
-
"@podlite/formula": "0.0.
|
|
76
|
-
"@podlite/image": "^0.0.
|
|
77
|
-
"@podlite/markdown": "0.0.
|
|
78
|
-
"@podlite/schema": "^0.0.
|
|
79
|
-
"@podlite/toc": "0.0.
|
|
74
|
+
"@podlite/diagram": "^0.0.63",
|
|
75
|
+
"@podlite/formula": "0.0.41",
|
|
76
|
+
"@podlite/image": "^0.0.58",
|
|
77
|
+
"@podlite/markdown": "0.0.52",
|
|
78
|
+
"@podlite/schema": "^0.0.59",
|
|
79
|
+
"@podlite/toc": "0.0.52",
|
|
80
80
|
"nanoid": "3.1.30"
|
|
81
81
|
},
|
|
82
82
|
"devDependencies": {
|