@mralfarrakhan/svork 0.6.1 → 0.6.4
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/dist/index.mjs +11 -2
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
|
@@ -2245,7 +2245,8 @@ const getPlaceholderReplacement = (token, type, original) => {
|
|
|
2245
2245
|
return `<svork-placeholder data-svork-id="${escapeHtmlAttribute(token)}">${escapeHtmlText(surrogate)}</svork-placeholder>`;
|
|
2246
2246
|
};
|
|
2247
2247
|
const isSvelteAttribute = (attr) => {
|
|
2248
|
-
if (!attr
|
|
2248
|
+
if (!attr) return false;
|
|
2249
|
+
if (attr.type !== "Attribute") return true;
|
|
2249
2250
|
if (Array.isArray(attr.value)) return attr.value.some((valueNode) => valueNode?.type !== "Text");
|
|
2250
2251
|
return attr.value?.type === "ExpressionTag";
|
|
2251
2252
|
};
|
|
@@ -2312,7 +2313,7 @@ const maskMarkdownCodeForSvelteParse = (source) => {
|
|
|
2312
2313
|
};
|
|
2313
2314
|
const escapeSvelteTextBraces = (value) => value.replace(/\{/g, "{").replace(/\}/g, "}");
|
|
2314
2315
|
const escapeRawNodeBraces = (html) => {
|
|
2315
|
-
return html.split(/(<(?:script|style)\b[\s\S]*?<\/(?:script|style)\s*>)/gi).map((part, i) => i % 2 === 1 ? part : escapeSvelteTextBraces(part)).join("");
|
|
2316
|
+
return html.replace(/"([^"]*)"/g, (match, val) => val.includes("<") ? `"${val.replace(/</g, "<").replace(/>/g, ">")}"` : match).replace(/'([^']*)'/g, (match, val) => val.includes("<") ? `'${val.replace(/</g, "<").replace(/>/g, ">")}'` : match).split(/(<(?:script|style)\b[\s\S]*?<\/(?:script|style)\s*>)/gi).map((part, i) => i % 2 === 1 ? part : escapeSvelteTextBraces(part)).join("");
|
|
2316
2317
|
};
|
|
2317
2318
|
function escapeBracesPlugin() {
|
|
2318
2319
|
return (tree) => {
|
|
@@ -2364,6 +2365,14 @@ const svelteMarkdown = (options) => {
|
|
|
2364
2365
|
const vfile = await mdCompiler.process(markdownSource);
|
|
2365
2366
|
let compiled = String(vfile);
|
|
2366
2367
|
compiled = compiled.replace(/(&#123;|&#123;)/g, "{").replace(/(&#125;|&#125;)/g, "}");
|
|
2368
|
+
const escapeAttrVal = (val) => val.replace(/</g, "<").replace(/>/g, ">").replace(/\{/g, "{").replace(/\}/g, "}");
|
|
2369
|
+
compiled = compiled.replace(/"([^"]*)"/g, (match, val) => {
|
|
2370
|
+
if (!val.includes("<") && !val.includes("{") && !val.includes("}")) return match;
|
|
2371
|
+
return `"${escapeAttrVal(val)}"`;
|
|
2372
|
+
}).replace(/'([^']*)'/g, (match, val) => {
|
|
2373
|
+
if (!val.includes("<") && !val.includes("{") && !val.includes("}")) return match;
|
|
2374
|
+
return `'${escapeAttrVal(val)}'`;
|
|
2375
|
+
});
|
|
2367
2376
|
let restored = compiled;
|
|
2368
2377
|
if (vfile.data?.fm && typeof vfile.data.fm === "object") metadata = {
|
|
2369
2378
|
...metadata,
|
package/package.json
CHANGED