Update Core.js

This commit is contained in:
simonpipe 2026-07-09 18:12:25 +02:00
parent 8de5ff9ce2
commit 9c94f81b07

View file

@ -234,7 +234,6 @@ class SimonUp {
return `<h${level} id="${id}">${title}</h${level}>${rest}`; return `<h${level} id="${id}">${title}</h${level}>${rest}`;
}); });
// Explizit deklarierte Regeln für die Schleife
const inlineRules = [ const inlineRules = [
{ tag: 'strong', symbol: '\\*\\*' }, { tag: 'strong', symbol: '\\*\\*' },
{ tag: 'span style="font-weight: 500;"', symbol: '\\*' }, { tag: 'span style="font-weight: 500;"', symbol: '\\*' },
@ -247,18 +246,17 @@ class SimonUp {
{ tag: 'code', symbol: '`' } { tag: 'code', symbol: '`' }
]; ];
// Klassische Schleife verhindert Scope-Verwirrungen des Parsers // Hier nutzen wir nun eine absolut sichere String-Verkettung für den RegExp-Konstruktor
for (const rule of inlineRules) { for (const rule of inlineRules) {
let regex = new RegExp(`${rule.symbol}(.+?)\/${rule.symbol}`, 'g'); let regex = new RegExp(rule.symbol + '(.+?)\\x2F' + rule.symbol, 'g');
html = html.replace(regex, `<${rule.tag}>$1</${rule.tag.split(' ')[0]}>`); html = html.replace(regex, `<${rule.tag}>$1</${rule.tag.split(' ')[0]}>`);
let resetRegex = new RegExp(`${rule.symbol}(.+?)(?=)`, 'g'); let resetRegex = new RegExp(rule.symbol + '(.+?)(?=)', 'g');
html = html.replace(resetRegex, `<${rule.tag}>$1</${rule.tag.split(' ')[0]}>`); html = html.replace(resetRegex, `<${rule.tag}>$1</${rule.tag.split(' ')[0]}>`);
} }
html = html.replace(//g, ''); html = html.replace(//g, '');
// Absolut isolierte Definition für alignMap
const alignMap = { l: 'left', r: 'right', c: 'center', j: 'justify' }; const alignMap = { l: 'left', r: 'right', c: 'center', j: 'justify' };
html = html.replace(/>([lrcj])\s+(.+?)\s*\/>/g, (m, dir, content) => { html = html.replace(/>([lrcj])\s+(.+?)\s*\/>/g, (m, dir, content) => {
return `<div style="text-align: ${alignMap[dir]};">${content}</div>`; return `<div style="text-align: ${alignMap[dir]};">${content}</div>`;