Skip to content

Commit 42c0123

Browse files
committed
fix: fixes for escaping
1 parent 6ec763a commit 42c0123

File tree

4 files changed

+26
-6
lines changed

4 files changed

+26
-6
lines changed

package-lock.json

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/myst-cli/src/transforms/crossReferences.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,7 @@ export async function transformMystXRefs(
140140
} else {
141141
const data = await fetchMystXRefData(session, node as CrossReference, vfile);
142142
if (!data) return;
143+
console.debug({ identifier: node.identifier });
143144
const targets = nodesFromMystXRefData(data, node.identifier, vfile, {
144145
urlSource: node.urlSource,
145146
maxNodes: 1,

packages/myst-common/package.json

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
"build": "npm-run-all -l clean -p build:esm"
2020
},
2121
"dependencies": {
22+
"css.escape": "^1.5.1",
2223
"mdast": "^3.0.0",
2324
"myst-frontmatter": "^1.7.4",
2425
"myst-spec": "^0.0.5",
@@ -31,9 +32,10 @@
3132
"vfile-message": "^4.0.0"
3233
},
3334
"devDependencies": {
34-
"myst-spec-ext": "^1.7.4",
35-
"unist-builder": "4.0.0",
3635
"@jupyterlab/nbformat": "^3.5.2",
37-
"@lumino/coreutils": "^2.0.0"
36+
"@lumino/coreutils": "^2.0.0",
37+
"@types/css.escape": "^1.5.2",
38+
"myst-spec-ext": "^1.7.4",
39+
"unist-builder": "4.0.0"
3840
}
3941
}

packages/myst-common/src/selectNodes.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { selectAll } from 'unist-util-select';
22
import { EXIT, SKIP, visit } from 'unist-util-visit';
33
import type { GenericNode, GenericParent } from './types.js';
4+
import escape from 'css.escape';
45

56
/**
67
* Determine if node with `identifier` should be considered a target
@@ -85,9 +86,11 @@ export function selectMdastNodes(
8586
): { htmlId?: string; nodes: GenericNode[] } {
8687
if (maxNodes === 0) return { nodes: [] };
8788
// Select the first identifier that is not a crossReference or citation
88-
const node = selectAll(`[identifier=${identifier}],[key=${identifier}]`, mdast).find((n) =>
89-
isTargetIdentifierNode(n),
90-
) as GenericNode | undefined;
89+
const escapedIdentifier = escape(identifier);
90+
const node = selectAll(
91+
`[identifier=${escapedIdentifier}],[key=${escapedIdentifier}]`,
92+
mdast,
93+
).find((n) => isTargetIdentifierNode(n)) as GenericNode | undefined;
9194
if (!node) return { nodes: [] };
9295
switch (node.type) {
9396
case 'heading':

0 commit comments

Comments
 (0)