From 70ca3fef77ee8bdc6e3ac28589a6fa08c024cc69 Mon Sep 17 00:00:00 2001 From: AlexanderCurl Date: Sat, 18 Apr 2026 17:46:06 +0100 Subject: Replaced file structures for themes in the correct format --- .../quickshell/Common/markdown2html.js | 117 --------------------- 1 file changed, 117 deletions(-) delete mode 100644 raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Common/markdown2html.js (limited to 'raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Common/markdown2html.js') diff --git a/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Common/markdown2html.js b/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Common/markdown2html.js deleted file mode 100644 index 04a9b52..0000000 --- a/raveos-theme/hyprland/theme-data/DankMaterialShell/quickshell/Common/markdown2html.js +++ /dev/null @@ -1,117 +0,0 @@ -.pragma library -// This exists only because I haven't been able to get linkColor to work with MarkdownText -// May not be necessary if that's possible tbh. -function markdownToHtml(text) { - if (!text) return ""; - - // Store code blocks and inline code to protect them from further processing - const codeBlocks = []; - const inlineCode = []; - let blockIndex = 0; - let inlineIndex = 0; - - // First, extract and replace code blocks with placeholders - let html = text.replace(/```([\s\S]*?)```/g, (match, code) => { - // Trim leading and trailing blank lines only - const trimmedCode = code.replace(/^\n+|\n+$/g, ''); - // Escape HTML entities in code - const escapedCode = trimmedCode.replace(/&/g, '&') - .replace(//g, '>'); - codeBlocks.push(`
${escapedCode}
`); - return `\x00CODEBLOCK${blockIndex++}\x00`; - }); - - // Extract and replace inline code - html = html.replace(/`([^`]+)`/g, (match, code) => { - // Escape HTML entities in code - const escapedCode = code.replace(/&/g, '&') - .replace(//g, '>'); - inlineCode.push(`${escapedCode}`); - return `\x00INLINECODE${inlineIndex++}\x00`; - }); - - // Extract plain URLs before escaping so & in query strings is preserved - const urls = []; - let urlIndex = 0; - html = html.replace(/(^|[\s])((?:https?|file):\/\/[^\s]+)/gm, (match, prefix, url) => { - urls.push(url); - return prefix + `\x00URL${urlIndex++}\x00`; - }); - - // Escape HTML entities (but not in code blocks or URLs) - html = html.replace(/&/g, '&') - .replace(//g, '>'); - - // Headers - html = html.replace(/^### (.*?)$/gm, '

$1

'); - html = html.replace(/^## (.*?)$/gm, '

$1

'); - html = html.replace(/^# (.*?)$/gm, '

$1

'); - - // Bold and italic (order matters!) - html = html.replace(/\*\*\*(.*?)\*\*\*/g, '$1'); - html = html.replace(/\*\*(.*?)\*\*/g, '$1'); - html = html.replace(/\*(.*?)\*/g, '$1'); - html = html.replace(/___(.*?)___/g, '$1'); - html = html.replace(/__(.*?)__/g, '$1'); - html = html.replace(/_(.*?)_/g, '$1'); - - // Links - html = html.replace(/\[([^\]]+)\]\(([^)]+)\)/g, '$1'); - - // Lists - html = html.replace(/^\* (.*?)$/gm, '
  • $1
  • '); - html = html.replace(/^- (.*?)$/gm, '
  • $1
  • '); - html = html.replace(/^\d+\. (.*?)$/gm, '
  • $1
  • '); - - // Wrap consecutive list items in ul/ol tags - html = html.replace(/(
  • [\s\S]*?<\/li>\s*)+/g, function(match) { - return ''; - }); - - // Restore extracted URLs as anchor tags (preserves raw & in href) - html = html.replace(/\x00URL(\d+)\x00/g, (_, index) => { - const url = urls[parseInt(index)]; - const display = url.replace(/&/g, '&').replace(//g, '>'); - return `${display}`; - }); - - // Restore code blocks and inline code BEFORE line break processing - html = html.replace(/\x00CODEBLOCK(\d+)\x00/g, (match, index) => { - return codeBlocks[parseInt(index)]; - }); - - html = html.replace(/\x00INLINECODE(\d+)\x00/g, (match, index) => { - return inlineCode[parseInt(index)]; - }); - - // Line breaks (after code blocks are restored) - html = html.replace(/\n\n/g, '

    '); - html = html.replace(/\n/g, '
    '); - - // Wrap in paragraph tags if not already wrapped - if (!html.startsWith('<')) { - html = '

    ' + html + '

    '; - } - - // Clean up the final HTML - // Remove
    tags immediately before block elements - html = html.replace(/\s*
    /g, '
    ');
    -    html = html.replace(/\s*
      /g, '
        '); - html = html.replace(/\s*/g, ''); - - // Remove empty paragraphs - html = html.replace(/

        \s*<\/p>/g, ''); - html = html.replace(/

        \s*\s*<\/p>/g, ''); - - // Remove excessive line breaks - html = html.replace(/(){3,}/g, '

        '); // Max 2 consecutive line breaks - html = html.replace(/(<\/p>)\s*(

        )/g, '$1$2'); // Remove whitespace between paragraphs - - // Remove leading/trailing whitespace - html = html.trim(); - - return html; -} -- cgit v1.3