Skip to content

Commit 710f2cd

Browse files
authored
Remove remaining occurrences of "@xxx" from non-pdf versions (#595)
* Remove occurrences of "@xxx" from non-pdf versions * Replace short space in snippets with newline * Remove default transformation for @xxx and @yyy * Remove check for "@xxx" and "@yyy" * Fix formatting * Set default value of type
1 parent 8151a40 commit 710f2cd

File tree

8 files changed

+51
-50
lines changed

8 files changed

+51
-50
lines changed

javascript/parseXmlLatex.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -518,7 +518,7 @@ const processTextFunctionsDefaultLatex = {
518518
LATEX: (node, writeTo) =>
519519
processTextFunctionsLatex["LATEXINLINE"](node, writeTo),
520520
LATEXINLINE: (node, writeTo) => {
521-
recursiveProcessPureText(node.firstChild, writeTo);
521+
recursiveProcessPureText(node.firstChild, writeTo, { type: parseType });
522522
},
523523

524524
LaTeX: (node, writeTo) => {
@@ -623,7 +623,7 @@ const processTextFunctionsDefaultLatex = {
623623
JAVASCRIPTINLINE: (node, writeTo) => {
624624
if (ancestorHasTag(node, "METAPHRASE")) {
625625
writeTo.push("}$");
626-
recursiveProcessPureText(node.firstChild, writeTo);
626+
recursiveProcessPureText(node.firstChild, writeTo, { type: parseType });
627627
writeTo.push("$\\mathit{");
628628
} else {
629629
if (node.getAttribute("break")) {
@@ -751,7 +751,10 @@ export const processTextLatex = (node, writeTo) => {
751751
processTextFunctionsLatex[name](node, writeTo);
752752
return true;
753753
} else {
754-
if (replaceTagWithSymbol(node, writeTo) || tagsToRemove.has(name)) {
754+
if (
755+
replaceTagWithSymbol(node, writeTo, parseType) ||
756+
tagsToRemove.has(name)
757+
) {
755758
return true;
756759
} else if (ignoreTags.has(name)) {
757760
recursiveProcessTextLatex(node.firstChild, writeTo);

javascript/processingFunctions/processSnippetEpub.js

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,10 @@ export const setupSnippetsEpub = node => {
2828
return;
2929
}
3030
const codeArr = [];
31-
recursiveProcessPureText(jsRunSnippet.firstChild, codeArr);
32-
const codeStr = codeArr
33-
.join("")
34-
.replace(/@xxx\n/g, "")
35-
.replace(/@yyy\n/g, "")
36-
.trim();
31+
recursiveProcessPureText(jsRunSnippet.firstChild, codeArr, {
32+
type: "epub"
33+
});
34+
const codeStr = codeArr.join("").trim();
3735

3836
const requirements = snippet.getElementsByTagName("REQUIRES");
3937
const requireNames = [];
@@ -74,11 +72,7 @@ export const processSnippetEpub = (node, writeTo) => {
7472

7573
const codeArr = [];
7674
recursiveProcessPureText(jsSnippet.firstChild, codeArr);
77-
const codeStr = codeArr
78-
.join("")
79-
.replace(/@xxx\n/g, "")
80-
.replace(/@yyy\n/g, "")
81-
.trim();
75+
const codeStr = codeArr.join("").trim();
8276

8377
const codeArr_run = [];
8478
recursiveProcessPureText(jsRunSnippet.firstChild, codeArr_run);

javascript/processingFunctions/processSnippetHtml.js

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,7 @@ export const setupSnippetsHtml = node => {
2929
}
3030
const codeArr = [];
3131
recursiveProcessPureText(jsRunSnippet.firstChild, codeArr);
32-
const codeStr = codeArr
33-
.join("")
34-
.replace(/@xxx\n/g, "")
35-
.replace(/@yyy\n/g, "")
36-
.trim();
32+
const codeStr = codeArr.join("").trim();
3733
const requirements = snippet.getElementsByTagName("REQUIRES");
3834
const requireNames = [];
3935
for (let i = 0; requirements[i]; i++) {
@@ -93,11 +89,7 @@ export const processSnippetHtml = (node, writeTo, split) => {
9389

9490
const codeArr = [];
9591
if (jsSnippet) recursiveProcessPureText(jsSnippet.firstChild, codeArr);
96-
const codeStr = codeArr
97-
.join("")
98-
.replace(/@xxx\n/g, "")
99-
.replace(/@yyy\n/g, "")
100-
.trim();
92+
const codeStr = codeArr.join("").trim();
10193

10294
const codeArr_run = [];
10395
if (jsRunSnippet)

javascript/processingFunctions/processSnippetJs.js

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,7 @@ export const setupSnippetsJs = node => {
3232
const codeArr = [];
3333
recursiveProcessPureText(jsRunSnippet.firstChild, codeArr);
3434

35-
const codeStr = codeArr
36-
.join("")
37-
.replace(/@xxx\n/g, "")
38-
.replace(/@yyy\n/g, "")
39-
.trim();
35+
const codeStr = codeArr.join("").trim();
4036

4137
const requirements = snippet.getElementsByTagName("REQUIRES");
4238
const requireNames = [];
@@ -87,13 +83,6 @@ export const processSnippetJs = (node, writeTo, fileFormat) => {
8783
jsRunSnippet = jsSnippet;
8884
}
8985
}
90-
const codeArr = [];
91-
recursiveProcessPureText(jsSnippet.firstChild, codeArr);
92-
const codeStr = codeArr
93-
.join("")
94-
.replace(/@xxx\n/g, "")
95-
.replace(/@yyy\n/g, "")
96-
.trim();
9786

9887
const codeArr_run = [];
9988
recursiveProcessPureText(jsRunSnippet.firstChild, codeArr_run);

javascript/processingFunctions/processSnippetJson.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,8 @@ export const setupSnippetsJson = node => {
2828
}
2929
const codeArr = [];
3030
recursiveProcessPureText(jsRunSnippet.firstChild, codeArr);
31-
const codeStr = codeArr
32-
.join("")
33-
.replace(/@xxx\n/g, "")
34-
.replace(/@yyy\n/g, "")
35-
.trim();
31+
const codeStr = codeArr.join("").trim();
32+
3633
const requirements = snippet.getElementsByTagName("REQUIRES");
3734
const requireNames = [];
3835
for (let i = 0; requirements[i]; i++) {
@@ -84,6 +81,8 @@ export const recursivelyProcessTextSnippetJson = (node, writeTo) => {
8481
recursivelyProcessTextSnippetJson(node.firstChild, writeTo);
8582
} else if (name === "#comment" || name === "ALLOW_BREAK") {
8683
return;
84+
} else if (name === "SHORT_SPACE" || name === "SHORT_SPACE_AND_ALLOW_BREAK") {
85+
writeTo.push("\n");
8786
} else {
8887
console.log(`processSnippetJson: UNRECOGNISED TAG ${name}\n\n`);
8988
}
@@ -116,7 +115,8 @@ export const processSnippetJson = (node, snippet) => {
116115

117116
const codeArr = [];
118117
recursiveProcessPureText(jsSnippet.firstChild, codeArr);
119-
let codeStr = codeArr.join("");
118+
let codeStr = codeArr.join("").trim();
119+
120120
// Remove newline from beginning and end
121121
codeStr = codeStr.replace(/^[\r\n]+/g, "");
122122
codeStr = codeStr.replace(/[\r\n\s]+$/g, "");

javascript/processingFunctions/processSnippetPdf.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ export const setupSnippetsPdf = node => {
2929
return;
3030
}
3131
const codeArr = [];
32-
recursiveProcessPureText(jsRunSnippet.firstChild, codeArr);
32+
recursiveProcessPureText(jsRunSnippet.firstChild, codeArr, {
33+
type: "pdf"
34+
});
3335
const codeStr = codeArr.join("").trim();
3436

3537
const requirements = snippet.getElementsByTagName("REQUIRES");
@@ -207,7 +209,9 @@ export const processSnippetPdf = (node, writeTo) => {
207209
.trim();
208210

209211
const codeArr_run = [];
210-
recursiveProcessPureText(jsRunSnippet.firstChild, codeArr_run);
212+
recursiveProcessPureText(jsRunSnippet.firstChild, codeArr_run, {
213+
type: "pdf"
214+
});
211215
const codeStr_run = codeArr_run.join("").trim();
212216

213217
// Do warning for very long lines if no latex

javascript/processingFunctions/recursiveProcessPureText.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
11
import replaceTagWithSymbol from "./replaceTagWithSymbol";
22

3-
const recursiveProcessPureTextDefault = { removeNewline: false };
3+
const recursiveProcessPureTextDefault = { removeNewline: false, type: false };
44

55
const recursiveProcessPureText = (
66
node,
77
writeTo,
88
options = recursiveProcessPureTextDefault
99
) => {
1010
if (!node) return;
11-
if (!replaceTagWithSymbol(node, writeTo) && node.nodeName === "#text") {
11+
12+
if (
13+
!replaceTagWithSymbol(node, writeTo, options.type) &&
14+
node.nodeName === "#text"
15+
) {
1216
let value = node.nodeValue;
1317
if (options.removeNewline == "beginning&end") {
1418
value = value.replace(/^[\r\n]+/g, "");

javascript/processingFunctions/replaceTagWithSymbol.js

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const tagsToReplace = {
1+
const tagsToReplaceDefault = {
22
APOS: "'",
33
WJ: "⁠",
44
AACUTE_LOWER: "á",
@@ -22,8 +22,8 @@ const tagsToReplace = {
2222
SHARP: "\\#",
2323
SECT: "§",
2424

25-
SHORT_SPACE: "@xxx", // will be replaced in processSnippet depending on rendering target (PDF, HTML, etc.)
26-
SHORT_SPACE_AND_ALLOW_BREAK: "@yyy", // will be replaced in processSnippet depending on rendering target (PDF, HTML, etc.)
25+
SHORT_SPACE: "",
26+
SHORT_SPACE_AND_ALLOW_BREAK: "",
2727

2828
EMDASH: "—",
2929
ENDASH: "–",
@@ -34,8 +34,23 @@ const tagsToReplace = {
3434
FIXED_SPACE: "{\\tt~}"
3535
};
3636

37-
export const replaceTagWithSymbol = (node, writeTo) => {
37+
const tagsToReplacePdf = {
38+
SHORT_SPACE: "@xxx", // will be replaced in processSnippet
39+
SHORT_SPACE_AND_ALLOW_BREAK: "@yyy" // will be replaced in processSnippet
40+
};
41+
42+
export const replaceTagWithSymbol = (node, writeTo, type = "default") => {
3843
const name = node.nodeName;
44+
let tagsToReplace;
45+
46+
switch (type) {
47+
case "pdf":
48+
tagsToReplace = { ...tagsToReplaceDefault, ...tagsToReplacePdf };
49+
break;
50+
default:
51+
tagsToReplace = tagsToReplaceDefault;
52+
}
53+
3954
if (tagsToReplace[name]) {
4055
writeTo.push(tagsToReplace[name]);
4156
return true;

0 commit comments

Comments
 (0)