mirror of
https://github.com/praktimarc/kst4contest.git
synced 2026-10-26 16:15:51 +01:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fcd8b34135
|
No files matched your search
@@ -6,6 +6,9 @@ on:
|
||||
- main
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
env:
|
||||
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
|
||||
|
||||
|
||||
@@ -3,6 +3,10 @@ name: TEST publish-version-xml (local only)
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
issues: read
|
||||
|
||||
jobs:
|
||||
publish-version-xml:
|
||||
name: Publish Version Info XML via WebDAV
|
||||
|
||||
+18
-3
@@ -32,11 +32,26 @@ const MANUAL_PAGE_ORDER = {
|
||||
]
|
||||
};
|
||||
|
||||
// Removes HTML tags until none are left, so that nested input such as
|
||||
// "<<b>script>" cannot reassemble a tag after a single pass.
|
||||
function stripHtmlTags(value) {
|
||||
let previous;
|
||||
let current = value;
|
||||
|
||||
do {
|
||||
previous = current;
|
||||
current = current.replace(/<[^>]+>/g, "");
|
||||
} while (current !== previous);
|
||||
|
||||
return current;
|
||||
}
|
||||
|
||||
function markdownToPlainText(value) {
|
||||
return (value || "")
|
||||
const withoutLinks = (value || "")
|
||||
.replace(/!\[([^\]]*)\]\([^)]+\)/g, "$1")
|
||||
.replace(/\[([^\]]+)\]\([^)]+\)/g, "$1")
|
||||
.replace(/<[^>]+>/g, "")
|
||||
.replace(/\[([^\]]+)\]\([^)]+\)/g, "$1");
|
||||
|
||||
return stripHtmlTags(withoutLinks)
|
||||
.replace(/[*_~`]/g, "")
|
||||
.replace(/\s+/g, " ")
|
||||
.trim();
|
||||
|
||||
Generated
+7
-7
@@ -7,15 +7,15 @@
|
||||
"": {
|
||||
"name": "kst4contest-website",
|
||||
"version": "0.1.0",
|
||||
"engines": {
|
||||
"node": ">=18.19.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"markdown-it": "^14.3.3",
|
||||
"markdown-it": "^14.3.0",
|
||||
"markdown-it-anchor": "^9.2.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@11ty/eleventy": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18.19.1"
|
||||
}
|
||||
},
|
||||
"node_modules/@11ty/dependency-tree": {
|
||||
@@ -1136,9 +1136,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/markdown-it": {
|
||||
"version": "14.3.3",
|
||||
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.3.3.tgz",
|
||||
"integrity": "sha512-L//tDAkjTjJCU6pBUSBTgs3Kg4InVaZuUZog/b6V12UKhcDQ7S78877ibbCanRExwPuYP1CZD7Gd2dxSy1GXRg==",
|
||||
"version": "14.3.0",
|
||||
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.3.0.tgz",
|
||||
"integrity": "sha512-RCEsPjR+sr0x+AuYp601tKTkgFG4YEPLCzHST3cQ/fhlJkqAkz1L2/Qbp1j9qw5SBwQHFBoW8+hoN5xssOF0Tw==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
"@11ty/eleventy": "^3.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"markdown-it": "^14.3.3",
|
||||
"markdown-it": "^14.3.0",
|
||||
"markdown-it-anchor": "^9.2.0"
|
||||
}
|
||||
}
|
||||
@@ -28,14 +28,29 @@ function extractTag(xml, tagName) {
|
||||
return match ? match[1].trim() : null;
|
||||
}
|
||||
|
||||
// Applies the removal until nothing changes, so that nested input such as
|
||||
// "<!-<!---->-->" cannot leave a fresh comment behind after a single pass.
|
||||
function removeUntilStable(value, pattern) {
|
||||
let previous;
|
||||
let current = value;
|
||||
|
||||
do {
|
||||
previous = current;
|
||||
current = current.replace(pattern, "");
|
||||
} while (current !== previous);
|
||||
|
||||
return current;
|
||||
}
|
||||
|
||||
function assertWellFormedStructure(xml) {
|
||||
if (/&(?!amp;|lt;|gt;|quot;|apos;|#\d+;|#x[0-9a-f]+;)/i.test(xml)) {
|
||||
fail("the XML contains an unescaped ampersand");
|
||||
}
|
||||
|
||||
const withoutCommentsAndDeclaration = xml
|
||||
.replace(/<!--[\s\S]*?-->/g, "")
|
||||
.replace(/<\?[\s\S]*?\?>/g, "");
|
||||
const withoutCommentsAndDeclaration = removeUntilStable(
|
||||
xml,
|
||||
/<!--[\s\S]*?-->|<\?[\s\S]*?\?>/g
|
||||
);
|
||||
|
||||
const tagPattern =
|
||||
/<\/?([A-Za-z_][\w:.-]*)(?:\s[^<>]*?)?\s*\/?>/g;
|
||||
|
||||
Reference in new issue
Block a user