Variable HELPER_FUNCTIONSConst
HELPER_FUNCTIONS: "\n // HTML-escape helper to prevent XSS when interpolating article fields into innerHTML\n function esc(str) {\n return String(str).replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/\"/g, '"').replace(/'/g, ''');\n }\n\n function safeHref(slug) {\n var s = String(slug);\n // Allow relative HTML paths including subdirectory articles (e.g. \"2026-05-04-election-cycle/current-en.html\").\n // Block control chars, backslashes, and protocol-relative URLs.\n if (!s || /[\\\\\\x00-\\x1F\\x7F]/.test(s) || s.indexOf('//') === 0) {\n return '#';\n }\n if (!/^[A-Za-z0-9._/-]+\\.html$/.test(s)) {\n return '#';\n }\n return esc(s);\n }\n\n function i18nShowing(shown, total) {\n var template;\n if (i18nShowingConfig && typeof i18nShowingConfig === 'object') {\n if (shown === 1 && Object.prototype.hasOwnProperty.call(i18nShowingConfig, 'one')) {\n template = i18nShowingConfig.one;\n } else if (Object.prototype.hasOwnProperty.call(i18nShowingConfig, 'other')) {\n template = i18nShowingConfig.other;\n } else {\n template = String(i18nShowingConfig);\n }\n } else {\n template = i18nShowingConfig || '';\n }\n if (typeof template !== 'string') {\n template = String(template);\n }\n return template\n .replace('{shown}', String(shown))\n .replace('{total}', String(total));\n }\n" = ...
Helper functions (escape / safe href / i18n template).