@ox-content/vite-plugin 0.4.0 → 0.7.0

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.d.cts CHANGED
@@ -426,6 +426,12 @@ interface OxContentOptions {
426
426
  * @default { enabled: true }
427
427
  */
428
428
  search?: SearchOptions | boolean;
429
+ /**
430
+ * Enable OG Viewer dev tool.
431
+ * Accessible at /__og-viewer during development.
432
+ * @default true
433
+ */
434
+ ogViewer?: boolean;
429
435
  }
430
436
  /**
431
437
  * Resolved options with all defaults applied.
@@ -451,6 +457,7 @@ interface ResolvedOptions {
451
457
  transformers: MarkdownTransformer[];
452
458
  docs: ResolvedDocsOptions | false;
453
459
  search: ResolvedSearchOptions;
460
+ ogViewer: boolean;
454
461
  }
455
462
  /**
456
463
  * OG image generation options.
@@ -989,7 +996,7 @@ declare function resolveDocsOptions(options: DocsOptions | false | undefined): R
989
996
  /**
990
997
  * Default HTML template for SSG pages with navigation.
991
998
  */
992
- declare const DEFAULT_HTML_TEMPLATE = "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>{{title}}{{#siteName}} - {{siteName}}{{/siteName}}</title>\n {{#description}}<meta name=\"description\" content=\"{{description}}\">{{/description}}\n <!-- Open Graph -->\n <meta property=\"og:type\" content=\"website\">\n <meta property=\"og:title\" content=\"{{title}}{{#siteName}} - {{siteName}}{{/siteName}}\">\n {{#description}}<meta property=\"og:description\" content=\"{{description}}\">{{/description}}\n {{#ogImage}}<meta property=\"og:image\" content=\"{{ogImage}}\">{{/ogImage}}\n <!-- Twitter Card -->\n <meta name=\"twitter:card\" content=\"summary_large_image\">\n <meta name=\"twitter:title\" content=\"{{title}}{{#siteName}} - {{siteName}}{{/siteName}}\">\n {{#description}}<meta name=\"twitter:description\" content=\"{{description}}\">{{/description}}\n {{#ogImage}}<meta name=\"twitter:image\" content=\"{{ogImage}}\">{{/ogImage}}\n <style>\n :root {\n --sidebar-width: 260px;\n --header-height: 60px;\n --max-content-width: 960px;\n --font-sans: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n --font-mono: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;\n --color-bg: #ffffff;\n --color-bg-alt: #f8f9fa;\n --color-text: #1a1a1a;\n --color-text-muted: #666666;\n --color-border: #e5e7eb;\n --color-primary: #b7410e;\n --color-primary-hover: #ce5937;\n --color-code-bg: #1e293b;\n --color-code-text: #e2e8f0;\n }\n [data-theme=\"dark\"] {\n --color-bg: #141414;\n --color-bg-alt: #141414;\n --color-text: #e5e5e5;\n --color-text-muted: #a3a3a3;\n --color-border: #2a2a2a;\n --color-primary: #c9714a;\n --color-primary-hover: #d4845f;\n --color-code-bg: #1a1a1a;\n --color-code-text: #e5e5e5;\n }\n @media (prefers-color-scheme: dark) {\n :root:not([data-theme=\"light\"]) {\n --color-bg: #141414;\n --color-bg-alt: #141414;\n --color-text: #e5e5e5;\n --color-text-muted: #a3a3a3;\n --color-border: #2a2a2a;\n --color-primary: #c9714a;\n --color-primary-hover: #d4845f;\n --color-code-bg: #1a1a1a;\n --color-code-text: #e5e5e5;\n }\n }\n * { box-sizing: border-box; margin: 0; padding: 0; }\n html { scroll-behavior: smooth; }\n body {\n font-family: var(--font-sans);\n line-height: 1.7;\n color: var(--color-text);\n background: var(--color-bg);\n }\n a { color: var(--color-primary); text-decoration: none; }\n a:hover { color: var(--color-primary-hover); text-decoration: underline; }\n\n /* Header */\n .header {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n height: var(--header-height);\n background: var(--color-bg);\n border-bottom: 1px solid var(--color-border);\n display: flex;\n align-items: center;\n padding: 0 1.5rem;\n z-index: 100;\n }\n .header-title {\n font-size: 1.25rem;\n font-weight: 600;\n color: var(--color-text);\n }\n .header-title:hover { text-decoration: none; }\n .menu-toggle {\n display: none;\n background: none;\n border: none;\n cursor: pointer;\n padding: 0.5rem;\n margin-right: 0.75rem;\n }\n .menu-toggle svg { display: block; }\n .menu-toggle path { stroke: var(--color-text); }\n .header-actions { margin-left: auto; display: flex; align-items: center; gap: 0.5rem; }\n .search-button {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.5rem 0.75rem;\n background: var(--color-bg-alt);\n border: 1px solid var(--color-border);\n border-radius: 6px;\n color: var(--color-text-muted);\n cursor: pointer;\n font-size: 0.875rem;\n transition: border-color 0.15s, color 0.15s;\n }\n .search-button:hover { border-color: var(--color-primary); color: var(--color-text); }\n .search-button svg { width: 16px; height: 16px; }\n .search-button kbd {\n padding: 0.125rem 0.375rem;\n background: var(--color-bg);\n border: 1px solid var(--color-border);\n border-radius: 4px;\n font-family: var(--font-mono);\n font-size: 0.75rem;\n }\n @media (max-width: 640px) {\n .search-button span, .search-button kbd { display: none; }\n .search-button { padding: 0.5rem; }\n }\n .search-modal-overlay {\n display: none;\n position: fixed;\n inset: 0;\n z-index: 200;\n background: rgba(0,0,0,0.6);\n backdrop-filter: blur(4px);\n justify-content: center;\n padding-top: 10vh;\n }\n .search-modal-overlay.open { display: flex; }\n .search-modal {\n width: 100%;\n max-width: 560px;\n margin: 0 1rem;\n background: var(--color-bg);\n border: 1px solid var(--color-border);\n border-radius: 12px;\n overflow: hidden;\n box-shadow: 0 25px 50px -12px rgba(0,0,0,0.4);\n max-height: 70vh;\n display: flex;\n flex-direction: column;\n }\n .search-header {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n padding: 1rem;\n border-bottom: 1px solid var(--color-border);\n }\n .search-header svg { flex-shrink: 0; color: var(--color-text-muted); }\n .search-input {\n flex: 1;\n background: none;\n border: none;\n outline: none;\n font-size: 1rem;\n color: var(--color-text);\n }\n .search-input::placeholder { color: var(--color-text-muted); }\n .search-close {\n padding: 0.25rem 0.5rem;\n background: var(--color-bg-alt);\n border: 1px solid var(--color-border);\n border-radius: 4px;\n color: var(--color-text-muted);\n font-family: var(--font-mono);\n font-size: 0.75rem;\n cursor: pointer;\n }\n .search-results {\n flex: 1;\n overflow-y: auto;\n padding: 0.5rem;\n }\n .search-result {\n display: block;\n padding: 0.75rem 1rem;\n border-radius: 8px;\n color: var(--color-text);\n text-decoration: none;\n }\n .search-result:hover, .search-result.selected { background: var(--color-bg-alt); text-decoration: none; }\n .search-result-title { font-weight: 600; font-size: 0.875rem; margin-bottom: 0.25rem; }\n .search-result-snippet { font-size: 0.8125rem; color: var(--color-text-muted); }\n .search-empty { padding: 2rem 1rem; text-align: center; color: var(--color-text-muted); }\n .search-footer {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 1rem;\n padding: 0.75rem 1rem;\n border-top: 1px solid var(--color-border);\n background: var(--color-bg-alt);\n font-size: 0.75rem;\n color: var(--color-text-muted);\n }\n .search-footer kbd {\n padding: 0.125rem 0.375rem;\n background: var(--color-bg);\n border: 1px solid var(--color-border);\n border-radius: 4px;\n font-family: var(--font-mono);\n }\n .theme-toggle {\n background: none;\n border: none;\n cursor: pointer;\n padding: 0.5rem;\n border-radius: 6px;\n color: var(--color-text-muted);\n transition: background 0.15s, color 0.15s;\n }\n .theme-toggle:hover { background: var(--color-bg-alt); color: var(--color-text); }\n .theme-toggle svg { display: block; width: 20px; height: 20px; }\n .theme-toggle .icon-sun { display: none; }\n .theme-toggle .icon-moon { display: block; }\n [data-theme=\"dark\"] .theme-toggle .icon-sun { display: block; }\n [data-theme=\"dark\"] .theme-toggle .icon-moon { display: none; }\n @media (prefers-color-scheme: dark) {\n :root:not([data-theme=\"light\"]) .theme-toggle .icon-sun { display: block; }\n :root:not([data-theme=\"light\"]) .theme-toggle .icon-moon { display: none; }\n }\n\n /* Layout */\n .layout {\n display: flex;\n padding-top: var(--header-height);\n min-height: 100vh;\n }\n\n /* Sidebar */\n .sidebar {\n position: fixed;\n top: var(--header-height);\n left: 0;\n bottom: 0;\n width: var(--sidebar-width);\n background: var(--color-bg-alt);\n border-right: 1px solid var(--color-border);\n overflow-y: auto;\n padding: 1.5rem 1rem;\n }\n .nav-section { margin-bottom: 1.5rem; }\n .nav-title {\n font-size: 0.75rem;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: var(--color-text-muted);\n margin-bottom: 0.5rem;\n padding: 0 0.75rem;\n }\n .nav-list { list-style: none; }\n .nav-item { margin: 0.125rem 0; }\n .nav-link {\n display: block;\n padding: 0.5rem 0.75rem;\n border-radius: 6px;\n color: var(--color-text);\n font-size: 0.875rem;\n transition: background 0.15s;\n }\n .nav-link:hover {\n background: var(--color-border);\n text-decoration: none;\n }\n .nav-link.active {\n background: var(--color-primary);\n color: white;\n }\n\n /* Main content */\n .main {\n flex: 1;\n margin-left: var(--sidebar-width);\n padding: 2rem;\n min-width: 0;\n overflow-x: hidden;\n }\n .content {\n max-width: var(--max-content-width);\n margin: 0 auto;\n overflow-wrap: break-word;\n word-wrap: break-word;\n word-break: break-word;\n }\n\n /* TOC (right sidebar) */\n .toc {\n position: fixed;\n top: calc(var(--header-height) + 2rem);\n right: 2rem;\n width: 200px;\n font-size: 0.8125rem;\n }\n .toc-title {\n font-weight: 600;\n margin-bottom: 0.75rem;\n color: var(--color-text-muted);\n }\n .toc-list { list-style: none; }\n .toc-item { margin: 0.375rem 0; }\n .toc-link {\n color: var(--color-text-muted);\n display: block;\n padding-left: calc((var(--depth, 1) - 1) * 0.75rem);\n }\n .toc-link:hover { color: var(--color-primary); }\n @media (max-width: 1200px) { .toc { display: none; } }\n\n /* Typography */\n .content h1 { font-size: 2.25rem; margin-bottom: 1rem; line-height: 1.2; }\n .content h2 { font-size: 1.5rem; margin-top: 2.5rem; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 1px solid var(--color-border); }\n .content h3 { font-size: 1.25rem; margin-top: 2rem; margin-bottom: 0.75rem; }\n .content h4 { font-size: 1rem; margin-top: 1.5rem; margin-bottom: 0.5rem; }\n .content p { margin-bottom: 1rem; }\n .content ul, .content ol { margin: 1rem 0; padding-left: 1.5rem; }\n .content li { margin: 0.375rem 0; }\n .content blockquote {\n border-left: 4px solid var(--color-primary);\n padding: 0.5rem 1rem;\n margin: 1rem 0;\n background: var(--color-bg-alt);\n border-radius: 0 6px 6px 0;\n }\n .content code {\n font-family: var(--font-mono);\n font-size: 0.875em;\n background: var(--color-bg-alt);\n padding: 0.2em 0.4em;\n border-radius: 4px;\n word-break: break-all;\n }\n .content pre {\n background: var(--color-code-bg);\n color: var(--color-code-text);\n padding: 1rem 1.25rem;\n border-radius: 8px;\n overflow-x: auto;\n margin: 1.5rem 0;\n line-height: 1.5;\n }\n .content pre code {\n background: transparent;\n padding: 0;\n font-size: 0.8125rem;\n }\n .content table {\n width: 100%;\n border-collapse: collapse;\n margin: 1.5rem 0;\n font-size: 0.875rem;\n }\n .content th, .content td {\n border: 1px solid var(--color-border);\n padding: 0.75rem 1rem;\n text-align: left;\n }\n .content th { background: var(--color-bg-alt); font-weight: 600; }\n .content img { max-width: 100%; height: auto; border-radius: 8px; display: block; }\n .content img[alt*=\"Logo\"] { max-width: 200px; display: block; margin: 1rem 0; }\n .content img[alt*=\"Architecture\"] { max-width: 600px; }\n .content img[alt*=\"Benchmark\"] { max-width: 680px; }\n .content hr { border: none; border-top: 1px solid var(--color-border); margin: 2rem 0; }\n\n /* Responsive */\n @media (max-width: 768px) {\n .menu-toggle { display: block; }\n .sidebar {\n transform: translateX(-100%);\n transition: transform 0.3s ease;\n z-index: 99;\n width: 280px;\n }\n .sidebar.open { transform: translateX(0); }\n .main { margin-left: 0; padding: 1rem 0.75rem; }\n .content { padding: 0 0.25rem; }\n .content h1 { font-size: 1.5rem; line-height: 1.3; margin-bottom: 0.75rem; }\n .content h2 { font-size: 1.2rem; margin-top: 2rem; }\n .content h3 { font-size: 1.1rem; }\n .content p { font-size: 0.9375rem; margin-bottom: 0.875rem; }\n .content ul, .content ol { padding-left: 1.25rem; font-size: 0.9375rem; }\n .content pre {\n padding: 0.75rem;\n font-size: 0.75rem;\n margin: 1rem -0.75rem;\n border-radius: 0;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .content code { font-size: 0.8125em; }\n .content table {\n display: block;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n font-size: 0.8125rem;\n margin: 1rem -0.75rem;\n width: calc(100% + 1.5rem);\n }\n .content th, .content td { padding: 0.5rem 0.75rem; white-space: nowrap; }\n .content img { margin: 1rem 0; }\n .content img[alt*=\"Logo\"] { max-width: 150px; }\n .content img[alt*=\"Architecture\"] { max-width: 100%; }\n .content img[alt*=\"Benchmark\"] { max-width: 100%; }\n .content blockquote { padding: 0.5rem 0.75rem; margin: 1rem 0; font-size: 0.9375rem; }\n .header { padding: 0 1rem; }\n .header-title { font-size: 1rem; }\n .header-title img { width: 24px; height: 24px; }\n .overlay {\n display: none;\n position: fixed;\n inset: 0;\n background: rgba(0,0,0,0.5);\n z-index: 98;\n }\n .overlay.open { display: block; }\n }\n\n /* Extra small devices */\n @media (max-width: 480px) {\n .main { padding: 0.75rem 0.5rem; }\n .content h1 { font-size: 1.35rem; }\n .content pre { font-size: 0.6875rem; padding: 0.625rem; }\n .content table { font-size: 0.75rem; }\n .content th, .content td { padding: 0.375rem 0.5rem; }\n }\n </style>\n</head>\n<body>\n <header class=\"header\">\n <button class=\"menu-toggle\" aria-label=\"Toggle menu\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\">\n <path d=\"M3 12h18M3 6h18M3 18h18\"/>\n </svg>\n </button>\n <a href=\"{{base}}index.html\" class=\"header-title\">\n <img src=\"{{base}}logo.svg\" alt=\"\" width=\"28\" height=\"28\" style=\"margin-right: 8px; vertical-align: middle;\" />\n {{siteName}}\n </a>\n <div class=\"header-actions\">\n <button class=\"search-button\" aria-label=\"Search\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\">\n <circle cx=\"11\" cy=\"11\" r=\"8\"/><path d=\"m21 21-4.3-4.3\"/>\n </svg>\n <span>Search</span>\n <kbd>/</kbd>\n </button>\n <button class=\"theme-toggle\" aria-label=\"Toggle theme\">\n <svg class=\"icon-sun\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\">\n <circle cx=\"12\" cy=\"12\" r=\"5\"/><path d=\"M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42\"/>\n </svg>\n <svg class=\"icon-moon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\">\n <path d=\"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z\"/>\n </svg>\n </button>\n </div>\n </header>\n <div class=\"search-modal-overlay\">\n <div class=\"search-modal\">\n <div class=\"search-header\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\">\n <circle cx=\"11\" cy=\"11\" r=\"8\"/><path d=\"m21 21-4.3-4.3\"/>\n </svg>\n <input type=\"text\" class=\"search-input\" placeholder=\"Search documentation...\" />\n <button class=\"search-close\">Esc</button>\n </div>\n <div class=\"search-results\"></div>\n <div class=\"search-footer\">\n <span><kbd>\u2191</kbd><kbd>\u2193</kbd> to navigate</span>\n <span><kbd>Enter</kbd> to select</span>\n <span><kbd>Esc</kbd> to close</span>\n </div>\n </div>\n </div>\n <div class=\"overlay\"></div>\n <div class=\"layout\">\n <aside class=\"sidebar\">\n <nav>\n{{navigation}}\n </nav>\n </aside>\n <main class=\"main\">\n <article class=\"content\">\n{{content}}\n </article>\n </main>\n{{#hasToc}}\n <aside class=\"toc\">\n <div class=\"toc-title\">On this page</div>\n <ul class=\"toc-list\">\n{{toc}}\n </ul>\n </aside>\n{{/hasToc}}\n </div>\n <script>\n // Menu toggle\n const toggle = document.querySelector('.menu-toggle');\n const sidebar = document.querySelector('.sidebar');\n const overlay = document.querySelector('.overlay');\n if (toggle && sidebar && overlay) {\n const close = () => { sidebar.classList.remove('open'); overlay.classList.remove('open'); };\n toggle.addEventListener('click', () => {\n sidebar.classList.toggle('open');\n overlay.classList.toggle('open');\n });\n overlay.addEventListener('click', close);\n sidebar.querySelectorAll('a').forEach(a => a.addEventListener('click', close));\n }\n\n // Theme toggle\n const themeToggle = document.querySelector('.theme-toggle');\n const getPreferredTheme = () => {\n const stored = localStorage.getItem('theme');\n if (stored) return stored;\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n };\n const setTheme = (theme) => {\n document.documentElement.setAttribute('data-theme', theme);\n localStorage.setItem('theme', theme);\n };\n // Initialize theme\n setTheme(getPreferredTheme());\n if (themeToggle) {\n themeToggle.addEventListener('click', () => {\n const current = document.documentElement.getAttribute('data-theme') || getPreferredTheme();\n setTheme(current === 'dark' ? 'light' : 'dark');\n });\n }\n\n // Search functionality\n const searchButton = document.querySelector('.search-button');\n const searchOverlay = document.querySelector('.search-modal-overlay');\n const searchInput = document.querySelector('.search-input');\n const searchResults = document.querySelector('.search-results');\n const searchClose = document.querySelector('.search-close');\n let searchIndex = null;\n let selectedIndex = 0;\n let results = [];\n\n const openSearch = () => {\n searchOverlay.classList.add('open');\n searchInput.focus();\n };\n const closeSearch = () => {\n searchOverlay.classList.remove('open');\n searchInput.value = '';\n searchResults.innerHTML = '';\n selectedIndex = 0;\n results = [];\n };\n\n // Load search index\n const loadSearchIndex = async () => {\n if (searchIndex) return;\n try {\n const res = await fetch('{{base}}search-index.json');\n searchIndex = await res.json();\n } catch (e) {\n console.warn('Failed to load search index:', e);\n }\n };\n\n // Tokenize query\n const tokenize = (text) => {\n const tokens = [];\n let current = '';\n for (const char of text) {\n const isCjk = /[\\u4E00-\\u9FFF\\u3400-\\u4DBF\\u3040-\\u309F\\u30A0-\\u30FF\\uAC00-\\uD7AF]/.test(char);\n if (isCjk) {\n if (current) { tokens.push(current.toLowerCase()); current = ''; }\n tokens.push(char);\n } else if (/[a-zA-Z0-9_]/.test(char)) {\n current += char;\n } else if (current) {\n tokens.push(current.toLowerCase());\n current = '';\n }\n }\n if (current) tokens.push(current.toLowerCase());\n return tokens;\n };\n\n // Perform search\n const performSearch = async (query) => {\n if (!query.trim()) {\n searchResults.innerHTML = '';\n results = [];\n return;\n }\n await loadSearchIndex();\n if (!searchIndex) {\n searchResults.innerHTML = '<div class=\"search-empty\">Search index not available</div>';\n return;\n }\n\n const tokens = tokenize(query);\n if (!tokens.length) {\n searchResults.innerHTML = '';\n results = [];\n return;\n }\n\n const k1 = 1.2, b = 0.75;\n const docScores = new Map();\n\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n const isLast = i === tokens.length - 1;\n let matchingTerms = [];\n if (isLast && token.length >= 2) {\n matchingTerms = Object.keys(searchIndex.index).filter(t => t.startsWith(token));\n } else if (searchIndex.index[token]) {\n matchingTerms = [token];\n }\n\n for (const term of matchingTerms) {\n const postings = searchIndex.index[term] || [];\n const df = searchIndex.df[term] || 1;\n const idf = Math.log((searchIndex.doc_count - df + 0.5) / (df + 0.5) + 1.0);\n\n for (const posting of postings) {\n const doc = searchIndex.documents[posting.doc_idx];\n if (!doc) continue;\n const boost = posting.field === 'Title' ? 10 : posting.field === 'Heading' ? 5 : 1;\n const tf = posting.tf;\n const docLen = doc.body.length;\n const score = idf * ((tf * (k1 + 1)) / (tf + k1 * (1 - b + b * docLen / searchIndex.avg_dl))) * boost;\n\n if (!docScores.has(posting.doc_idx)) {\n docScores.set(posting.doc_idx, { score: 0, matches: new Set() });\n }\n const entry = docScores.get(posting.doc_idx);\n entry.score += score;\n entry.matches.add(term);\n }\n }\n }\n\n results = Array.from(docScores.entries())\n .map(([docIdx, data]) => {\n const doc = searchIndex.documents[docIdx];\n let snippet = '';\n if (doc.body) {\n const bodyLower = doc.body.toLowerCase();\n let firstPos = -1;\n for (const match of data.matches) {\n const pos = bodyLower.indexOf(match);\n if (pos !== -1 && (firstPos === -1 || pos < firstPos)) firstPos = pos;\n }\n const start = Math.max(0, firstPos - 50);\n const end = Math.min(doc.body.length, start + 150);\n snippet = doc.body.slice(start, end);\n if (start > 0) snippet = '...' + snippet;\n if (end < doc.body.length) snippet += '...';\n }\n return { ...doc, score: data.score, snippet };\n })\n .sort((a, b) => b.score - a.score)\n .slice(0, 10);\n\n selectedIndex = 0;\n renderResults();\n };\n\n const renderResults = () => {\n if (!results.length) {\n searchResults.innerHTML = '<div class=\"search-empty\">No results found</div>';\n return;\n }\n searchResults.innerHTML = results.map((r, i) =>\n '<a href=\"' + r.url + '\" class=\"search-result' + (i === selectedIndex ? ' selected' : '') + '\">' +\n '<div class=\"search-result-title\">' + r.title + '</div>' +\n (r.snippet ? '<div class=\"search-result-snippet\">' + r.snippet + '</div>' : '') +\n '</a>'\n ).join('');\n };\n\n // Event listeners\n if (searchButton) searchButton.addEventListener('click', openSearch);\n if (searchClose) searchClose.addEventListener('click', closeSearch);\n if (searchOverlay) searchOverlay.addEventListener('click', (e) => { if (e.target === searchOverlay) closeSearch(); });\n\n let searchTimeout = null;\n if (searchInput) {\n searchInput.addEventListener('input', () => {\n if (searchTimeout) clearTimeout(searchTimeout);\n searchTimeout = setTimeout(() => performSearch(searchInput.value), 150);\n });\n searchInput.addEventListener('keydown', (e) => {\n if (e.key === 'Escape') closeSearch();\n else if (e.key === 'ArrowDown') {\n e.preventDefault();\n if (selectedIndex < results.length - 1) { selectedIndex++; renderResults(); }\n } else if (e.key === 'ArrowUp') {\n e.preventDefault();\n if (selectedIndex > 0) { selectedIndex--; renderResults(); }\n } else if (e.key === 'Enter' && results[selectedIndex]) {\n e.preventDefault();\n window.location.href = results[selectedIndex].url;\n }\n });\n }\n\n // Global keyboard shortcut (/ or Cmd+K)\n document.addEventListener('keydown', (e) => {\n if ((e.key === '/' && !(e.target instanceof HTMLInputElement)) ||\n ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === 'k')) {\n e.preventDefault();\n openSearch();\n }\n });\n </script>\n</body>\n</html>";
999
+ declare const DEFAULT_HTML_TEMPLATE = "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>{{title}}{{#siteName}} - {{siteName}}{{/siteName}}</title>\n {{#description}}<meta name=\"description\" content=\"{{description}}\">{{/description}}\n <!-- Open Graph -->\n <meta property=\"og:type\" content=\"website\">\n <meta property=\"og:title\" content=\"{{title}}{{#siteName}} - {{siteName}}{{/siteName}}\">\n {{#description}}<meta property=\"og:description\" content=\"{{description}}\">{{/description}}\n {{#ogImage}}<meta property=\"og:image\" content=\"{{ogImage}}\">{{/ogImage}}\n <!-- Twitter Card -->\n {{#ogImage}}<meta name=\"twitter:card\" content=\"summary_large_image\">{{/ogImage}}\n {{^ogImage}}<meta name=\"twitter:card\" content=\"summary\">{{/ogImage}}\n <meta name=\"twitter:title\" content=\"{{title}}{{#siteName}} - {{siteName}}{{/siteName}}\">\n {{#description}}<meta name=\"twitter:description\" content=\"{{description}}\">{{/description}}\n {{#ogImage}}<meta name=\"twitter:image\" content=\"{{ogImage}}\">{{/ogImage}}\n <style>\n :root {\n --sidebar-width: 260px;\n --header-height: 60px;\n --max-content-width: 960px;\n --font-sans: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n --font-mono: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;\n --color-bg: #ffffff;\n --color-bg-alt: #f8f9fa;\n --color-text: #1a1a1a;\n --color-text-muted: #666666;\n --color-border: #e5e7eb;\n --color-primary: #b7410e;\n --color-primary-hover: #ce5937;\n --color-code-bg: #1e293b;\n --color-code-text: #e2e8f0;\n }\n [data-theme=\"dark\"] {\n --color-bg: #141414;\n --color-bg-alt: #141414;\n --color-text: #e5e5e5;\n --color-text-muted: #a3a3a3;\n --color-border: #2a2a2a;\n --color-primary: #c9714a;\n --color-primary-hover: #d4845f;\n --color-code-bg: #1a1a1a;\n --color-code-text: #e5e5e5;\n }\n @media (prefers-color-scheme: dark) {\n :root:not([data-theme=\"light\"]) {\n --color-bg: #141414;\n --color-bg-alt: #141414;\n --color-text: #e5e5e5;\n --color-text-muted: #a3a3a3;\n --color-border: #2a2a2a;\n --color-primary: #c9714a;\n --color-primary-hover: #d4845f;\n --color-code-bg: #1a1a1a;\n --color-code-text: #e5e5e5;\n }\n }\n * { box-sizing: border-box; margin: 0; padding: 0; }\n html { scroll-behavior: smooth; }\n body {\n font-family: var(--font-sans);\n line-height: 1.7;\n color: var(--color-text);\n background: var(--color-bg);\n }\n a { color: var(--color-primary); text-decoration: none; }\n a:hover { color: var(--color-primary-hover); text-decoration: underline; }\n\n /* Header */\n .header {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n height: var(--header-height);\n background: var(--color-bg);\n border-bottom: 1px solid var(--color-border);\n display: flex;\n align-items: center;\n padding: 0 1.5rem;\n z-index: 100;\n }\n .header-title {\n font-size: 1.25rem;\n font-weight: 600;\n color: var(--color-text);\n }\n .header-title:hover { text-decoration: none; }\n .menu-toggle {\n display: none;\n background: none;\n border: none;\n cursor: pointer;\n padding: 0.5rem;\n margin-right: 0.75rem;\n }\n .menu-toggle svg { display: block; }\n .menu-toggle path { stroke: var(--color-text); }\n .header-actions { margin-left: auto; display: flex; align-items: center; gap: 0.5rem; }\n .search-button {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.5rem 0.75rem;\n background: var(--color-bg-alt);\n border: 1px solid var(--color-border);\n border-radius: 6px;\n color: var(--color-text-muted);\n cursor: pointer;\n font-size: 0.875rem;\n transition: border-color 0.15s, color 0.15s;\n }\n .search-button:hover { border-color: var(--color-primary); color: var(--color-text); }\n .search-button svg { width: 16px; height: 16px; }\n .search-button kbd {\n padding: 0.125rem 0.375rem;\n background: var(--color-bg);\n border: 1px solid var(--color-border);\n border-radius: 4px;\n font-family: var(--font-mono);\n font-size: 0.75rem;\n }\n @media (max-width: 640px) {\n .search-button span, .search-button kbd { display: none; }\n .search-button { padding: 0.5rem; }\n }\n .search-modal-overlay {\n display: none;\n position: fixed;\n inset: 0;\n z-index: 200;\n background: rgba(0,0,0,0.6);\n backdrop-filter: blur(4px);\n justify-content: center;\n padding-top: 10vh;\n }\n .search-modal-overlay.open { display: flex; }\n .search-modal {\n width: 100%;\n max-width: 560px;\n margin: 0 1rem;\n background: var(--color-bg);\n border: 1px solid var(--color-border);\n border-radius: 12px;\n overflow: hidden;\n box-shadow: 0 25px 50px -12px rgba(0,0,0,0.4);\n max-height: 70vh;\n display: flex;\n flex-direction: column;\n }\n .search-header {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n padding: 1rem;\n border-bottom: 1px solid var(--color-border);\n }\n .search-header svg { flex-shrink: 0; color: var(--color-text-muted); }\n .search-input {\n flex: 1;\n background: none;\n border: none;\n outline: none;\n font-size: 1rem;\n color: var(--color-text);\n }\n .search-input::placeholder { color: var(--color-text-muted); }\n .search-close {\n padding: 0.25rem 0.5rem;\n background: var(--color-bg-alt);\n border: 1px solid var(--color-border);\n border-radius: 4px;\n color: var(--color-text-muted);\n font-family: var(--font-mono);\n font-size: 0.75rem;\n cursor: pointer;\n }\n .search-results {\n flex: 1;\n overflow-y: auto;\n padding: 0.5rem;\n }\n .search-result {\n display: block;\n padding: 0.75rem 1rem;\n border-radius: 8px;\n color: var(--color-text);\n text-decoration: none;\n }\n .search-result:hover, .search-result.selected { background: var(--color-bg-alt); text-decoration: none; }\n .search-result-title { font-weight: 600; font-size: 0.875rem; margin-bottom: 0.25rem; }\n .search-result-snippet { font-size: 0.8125rem; color: var(--color-text-muted); }\n .search-empty { padding: 2rem 1rem; text-align: center; color: var(--color-text-muted); }\n .search-footer {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 1rem;\n padding: 0.75rem 1rem;\n border-top: 1px solid var(--color-border);\n background: var(--color-bg-alt);\n font-size: 0.75rem;\n color: var(--color-text-muted);\n }\n .search-footer kbd {\n padding: 0.125rem 0.375rem;\n background: var(--color-bg);\n border: 1px solid var(--color-border);\n border-radius: 4px;\n font-family: var(--font-mono);\n }\n .theme-toggle {\n background: none;\n border: none;\n cursor: pointer;\n padding: 0.5rem;\n border-radius: 6px;\n color: var(--color-text-muted);\n transition: background 0.15s, color 0.15s;\n }\n .theme-toggle:hover { background: var(--color-bg-alt); color: var(--color-text); }\n .theme-toggle svg { display: block; width: 20px; height: 20px; }\n .theme-toggle .icon-sun { display: none; }\n .theme-toggle .icon-moon { display: block; }\n [data-theme=\"dark\"] .theme-toggle .icon-sun { display: block; }\n [data-theme=\"dark\"] .theme-toggle .icon-moon { display: none; }\n @media (prefers-color-scheme: dark) {\n :root:not([data-theme=\"light\"]) .theme-toggle .icon-sun { display: block; }\n :root:not([data-theme=\"light\"]) .theme-toggle .icon-moon { display: none; }\n }\n\n /* Layout */\n .layout {\n display: flex;\n padding-top: var(--header-height);\n min-height: 100vh;\n }\n\n /* Sidebar */\n .sidebar {\n position: fixed;\n top: var(--header-height);\n left: 0;\n bottom: 0;\n width: var(--sidebar-width);\n background: var(--color-bg-alt);\n border-right: 1px solid var(--color-border);\n overflow-y: auto;\n padding: 1.5rem 1rem;\n }\n .nav-section { margin-bottom: 1.5rem; }\n .nav-title {\n font-size: 0.75rem;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: var(--color-text-muted);\n margin-bottom: 0.5rem;\n padding: 0 0.75rem;\n }\n .nav-list { list-style: none; }\n .nav-item { margin: 0.125rem 0; }\n .nav-link {\n display: block;\n padding: 0.5rem 0.75rem;\n border-radius: 6px;\n color: var(--color-text);\n font-size: 0.875rem;\n transition: background 0.15s;\n }\n .nav-link:hover {\n background: var(--color-border);\n text-decoration: none;\n }\n .nav-link.active {\n background: var(--color-primary);\n color: white;\n }\n\n /* Main content */\n .main {\n flex: 1;\n margin-left: var(--sidebar-width);\n padding: 2rem;\n min-width: 0;\n overflow-x: hidden;\n }\n .content {\n max-width: var(--max-content-width);\n margin: 0 auto;\n overflow-wrap: break-word;\n word-wrap: break-word;\n word-break: break-word;\n }\n\n /* TOC (right sidebar) */\n .toc {\n position: fixed;\n top: calc(var(--header-height) + 2rem);\n right: 2rem;\n width: 200px;\n font-size: 0.8125rem;\n }\n .toc-title {\n font-weight: 600;\n margin-bottom: 0.75rem;\n color: var(--color-text-muted);\n }\n .toc-list { list-style: none; }\n .toc-item { margin: 0.375rem 0; }\n .toc-link {\n color: var(--color-text-muted);\n display: block;\n padding-left: calc((var(--depth, 1) - 1) * 0.75rem);\n }\n .toc-link:hover { color: var(--color-primary); }\n @media (max-width: 1200px) { .toc { display: none; } }\n\n /* Typography */\n .content h1 { font-size: 2.25rem; margin-bottom: 1rem; line-height: 1.2; }\n .content h2 { font-size: 1.5rem; margin-top: 2.5rem; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 1px solid var(--color-border); }\n .content h3 { font-size: 1.25rem; margin-top: 2rem; margin-bottom: 0.75rem; }\n .content h4 { font-size: 1rem; margin-top: 1.5rem; margin-bottom: 0.5rem; }\n .content p { margin-bottom: 1rem; }\n .content ul, .content ol { margin: 1rem 0; padding-left: 1.5rem; }\n .content li { margin: 0.375rem 0; }\n .content blockquote {\n border-left: 4px solid var(--color-primary);\n padding: 0.5rem 1rem;\n margin: 1rem 0;\n background: var(--color-bg-alt);\n border-radius: 0 6px 6px 0;\n }\n .content code {\n font-family: var(--font-mono);\n font-size: 0.875em;\n background: var(--color-bg-alt);\n padding: 0.2em 0.4em;\n border-radius: 4px;\n word-break: break-all;\n }\n .content pre {\n background: var(--color-code-bg);\n color: var(--color-code-text);\n padding: 1rem 1.25rem;\n border-radius: 8px;\n overflow-x: auto;\n margin: 1.5rem 0;\n line-height: 1.5;\n }\n .content pre code {\n background: transparent;\n padding: 0;\n font-size: 0.8125rem;\n }\n .content table {\n width: 100%;\n border-collapse: collapse;\n margin: 1.5rem 0;\n font-size: 0.875rem;\n }\n .content th, .content td {\n border: 1px solid var(--color-border);\n padding: 0.75rem 1rem;\n text-align: left;\n }\n .content th { background: var(--color-bg-alt); font-weight: 600; }\n .content img { max-width: 100%; height: auto; border-radius: 8px; display: block; }\n .content img[alt*=\"Logo\"] { max-width: 200px; display: block; margin: 1rem 0; }\n .content img[alt*=\"Architecture\"] { max-width: 600px; }\n .content img[alt*=\"Benchmark\"] { max-width: 680px; }\n .content hr { border: none; border-top: 1px solid var(--color-border); margin: 2rem 0; }\n\n /* Responsive */\n @media (max-width: 768px) {\n .menu-toggle { display: block; }\n .sidebar {\n transform: translateX(-100%);\n transition: transform 0.3s ease;\n z-index: 99;\n width: 280px;\n }\n .sidebar.open { transform: translateX(0); }\n .main { margin-left: 0; padding: 1rem 0.75rem; }\n .content { padding: 0 0.25rem; }\n .content h1 { font-size: 1.5rem; line-height: 1.3; margin-bottom: 0.75rem; }\n .content h2 { font-size: 1.2rem; margin-top: 2rem; }\n .content h3 { font-size: 1.1rem; }\n .content p { font-size: 0.9375rem; margin-bottom: 0.875rem; }\n .content ul, .content ol { padding-left: 1.25rem; font-size: 0.9375rem; }\n .content pre {\n padding: 0.75rem;\n font-size: 0.75rem;\n margin: 1rem -0.75rem;\n border-radius: 0;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .content code { font-size: 0.8125em; }\n .content table {\n display: block;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n font-size: 0.8125rem;\n margin: 1rem -0.75rem;\n width: calc(100% + 1.5rem);\n }\n .content th, .content td { padding: 0.5rem 0.75rem; white-space: nowrap; }\n .content img { margin: 1rem 0; }\n .content img[alt*=\"Logo\"] { max-width: 150px; }\n .content img[alt*=\"Architecture\"] { max-width: 100%; }\n .content img[alt*=\"Benchmark\"] { max-width: 100%; }\n .content blockquote { padding: 0.5rem 0.75rem; margin: 1rem 0; font-size: 0.9375rem; }\n .header { padding: 0 1rem; }\n .header-title { font-size: 1rem; }\n .header-title img { width: 24px; height: 24px; }\n .overlay {\n display: none;\n position: fixed;\n inset: 0;\n background: rgba(0,0,0,0.5);\n z-index: 98;\n }\n .overlay.open { display: block; }\n }\n\n /* Extra small devices */\n @media (max-width: 480px) {\n .main { padding: 0.75rem 0.5rem; }\n .content h1 { font-size: 1.35rem; }\n .content pre { font-size: 0.6875rem; padding: 0.625rem; }\n .content table { font-size: 0.75rem; }\n .content th, .content td { padding: 0.375rem 0.5rem; }\n }\n </style>\n</head>\n<body>\n <header class=\"header\">\n <button class=\"menu-toggle\" aria-label=\"Toggle menu\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\">\n <path d=\"M3 12h18M3 6h18M3 18h18\"/>\n </svg>\n </button>\n <a href=\"{{base}}index.html\" class=\"header-title\">\n <img src=\"{{base}}logo.svg\" alt=\"\" width=\"28\" height=\"28\" style=\"margin-right: 8px; vertical-align: middle;\" />\n {{siteName}}\n </a>\n <div class=\"header-actions\">\n <button class=\"search-button\" aria-label=\"Search\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\">\n <circle cx=\"11\" cy=\"11\" r=\"8\"/><path d=\"m21 21-4.3-4.3\"/>\n </svg>\n <span>Search</span>\n <kbd>/</kbd>\n </button>\n <button class=\"theme-toggle\" aria-label=\"Toggle theme\">\n <svg class=\"icon-sun\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\">\n <circle cx=\"12\" cy=\"12\" r=\"5\"/><path d=\"M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42\"/>\n </svg>\n <svg class=\"icon-moon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\">\n <path d=\"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z\"/>\n </svg>\n </button>\n </div>\n </header>\n <div class=\"search-modal-overlay\">\n <div class=\"search-modal\">\n <div class=\"search-header\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\">\n <circle cx=\"11\" cy=\"11\" r=\"8\"/><path d=\"m21 21-4.3-4.3\"/>\n </svg>\n <input type=\"text\" class=\"search-input\" placeholder=\"Search documentation...\" />\n <button class=\"search-close\">Esc</button>\n </div>\n <div class=\"search-results\"></div>\n <div class=\"search-footer\">\n <span><kbd>\u2191</kbd><kbd>\u2193</kbd> to navigate</span>\n <span><kbd>Enter</kbd> to select</span>\n <span><kbd>Esc</kbd> to close</span>\n </div>\n </div>\n </div>\n <div class=\"overlay\"></div>\n <div class=\"layout\">\n <aside class=\"sidebar\">\n <nav>\n{{navigation}}\n </nav>\n </aside>\n <main class=\"main\">\n <article class=\"content\">\n{{content}}\n </article>\n </main>\n{{#hasToc}}\n <aside class=\"toc\">\n <div class=\"toc-title\">On this page</div>\n <ul class=\"toc-list\">\n{{toc}}\n </ul>\n </aside>\n{{/hasToc}}\n </div>\n <script>\n // Menu toggle\n const toggle = document.querySelector('.menu-toggle');\n const sidebar = document.querySelector('.sidebar');\n const overlay = document.querySelector('.overlay');\n if (toggle && sidebar && overlay) {\n const close = () => { sidebar.classList.remove('open'); overlay.classList.remove('open'); };\n toggle.addEventListener('click', () => {\n sidebar.classList.toggle('open');\n overlay.classList.toggle('open');\n });\n overlay.addEventListener('click', close);\n sidebar.querySelectorAll('a').forEach(a => a.addEventListener('click', close));\n }\n\n // Theme toggle\n const themeToggle = document.querySelector('.theme-toggle');\n const getPreferredTheme = () => {\n const stored = localStorage.getItem('theme');\n if (stored) return stored;\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n };\n const setTheme = (theme) => {\n document.documentElement.setAttribute('data-theme', theme);\n localStorage.setItem('theme', theme);\n };\n // Initialize theme\n setTheme(getPreferredTheme());\n if (themeToggle) {\n themeToggle.addEventListener('click', () => {\n const current = document.documentElement.getAttribute('data-theme') || getPreferredTheme();\n setTheme(current === 'dark' ? 'light' : 'dark');\n });\n }\n\n // Search functionality\n const searchButton = document.querySelector('.search-button');\n const searchOverlay = document.querySelector('.search-modal-overlay');\n const searchInput = document.querySelector('.search-input');\n const searchResults = document.querySelector('.search-results');\n const searchClose = document.querySelector('.search-close');\n let searchIndex = null;\n let selectedIndex = 0;\n let results = [];\n\n const openSearch = () => {\n searchOverlay.classList.add('open');\n searchInput.focus();\n };\n const closeSearch = () => {\n searchOverlay.classList.remove('open');\n searchInput.value = '';\n searchResults.innerHTML = '';\n selectedIndex = 0;\n results = [];\n };\n\n // Load search index\n const loadSearchIndex = async () => {\n if (searchIndex) return;\n try {\n const res = await fetch('{{base}}search-index.json');\n searchIndex = await res.json();\n } catch (e) {\n console.warn('Failed to load search index:', e);\n }\n };\n\n // Tokenize query\n const tokenize = (text) => {\n const tokens = [];\n let current = '';\n for (const char of text) {\n const isCjk = /[\\u4E00-\\u9FFF\\u3400-\\u4DBF\\u3040-\\u309F\\u30A0-\\u30FF\\uAC00-\\uD7AF]/.test(char);\n if (isCjk) {\n if (current) { tokens.push(current.toLowerCase()); current = ''; }\n tokens.push(char);\n } else if (/[a-zA-Z0-9_]/.test(char)) {\n current += char;\n } else if (current) {\n tokens.push(current.toLowerCase());\n current = '';\n }\n }\n if (current) tokens.push(current.toLowerCase());\n return tokens;\n };\n\n // Perform search\n const performSearch = async (query) => {\n if (!query.trim()) {\n searchResults.innerHTML = '';\n results = [];\n return;\n }\n await loadSearchIndex();\n if (!searchIndex) {\n searchResults.innerHTML = '<div class=\"search-empty\">Search index not available</div>';\n return;\n }\n\n const tokens = tokenize(query);\n if (!tokens.length) {\n searchResults.innerHTML = '';\n results = [];\n return;\n }\n\n const k1 = 1.2, b = 0.75;\n const docScores = new Map();\n\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n const isLast = i === tokens.length - 1;\n let matchingTerms = [];\n if (isLast && token.length >= 2) {\n matchingTerms = Object.keys(searchIndex.index).filter(t => t.startsWith(token));\n } else if (searchIndex.index[token]) {\n matchingTerms = [token];\n }\n\n for (const term of matchingTerms) {\n const postings = searchIndex.index[term] || [];\n const df = searchIndex.df[term] || 1;\n const idf = Math.log((searchIndex.doc_count - df + 0.5) / (df + 0.5) + 1.0);\n\n for (const posting of postings) {\n const doc = searchIndex.documents[posting.doc_idx];\n if (!doc) continue;\n const boost = posting.field === 'Title' ? 10 : posting.field === 'Heading' ? 5 : 1;\n const tf = posting.tf;\n const docLen = doc.body.length;\n const score = idf * ((tf * (k1 + 1)) / (tf + k1 * (1 - b + b * docLen / searchIndex.avg_dl))) * boost;\n\n if (!docScores.has(posting.doc_idx)) {\n docScores.set(posting.doc_idx, { score: 0, matches: new Set() });\n }\n const entry = docScores.get(posting.doc_idx);\n entry.score += score;\n entry.matches.add(term);\n }\n }\n }\n\n results = Array.from(docScores.entries())\n .map(([docIdx, data]) => {\n const doc = searchIndex.documents[docIdx];\n let snippet = '';\n if (doc.body) {\n const bodyLower = doc.body.toLowerCase();\n let firstPos = -1;\n for (const match of data.matches) {\n const pos = bodyLower.indexOf(match);\n if (pos !== -1 && (firstPos === -1 || pos < firstPos)) firstPos = pos;\n }\n const start = Math.max(0, firstPos - 50);\n const end = Math.min(doc.body.length, start + 150);\n snippet = doc.body.slice(start, end);\n if (start > 0) snippet = '...' + snippet;\n if (end < doc.body.length) snippet += '...';\n }\n return { ...doc, score: data.score, snippet };\n })\n .sort((a, b) => b.score - a.score)\n .slice(0, 10);\n\n selectedIndex = 0;\n renderResults();\n };\n\n const renderResults = () => {\n if (!results.length) {\n searchResults.innerHTML = '<div class=\"search-empty\">No results found</div>';\n return;\n }\n searchResults.innerHTML = results.map((r, i) =>\n '<a href=\"' + r.url + '\" class=\"search-result' + (i === selectedIndex ? ' selected' : '') + '\">' +\n '<div class=\"search-result-title\">' + r.title + '</div>' +\n (r.snippet ? '<div class=\"search-result-snippet\">' + r.snippet + '</div>' : '') +\n '</a>'\n ).join('');\n };\n\n // Event listeners\n if (searchButton) searchButton.addEventListener('click', openSearch);\n if (searchClose) searchClose.addEventListener('click', closeSearch);\n if (searchOverlay) searchOverlay.addEventListener('click', (e) => { if (e.target === searchOverlay) closeSearch(); });\n\n let searchTimeout = null;\n if (searchInput) {\n searchInput.addEventListener('input', () => {\n if (searchTimeout) clearTimeout(searchTimeout);\n searchTimeout = setTimeout(() => performSearch(searchInput.value), 150);\n });\n searchInput.addEventListener('keydown', (e) => {\n if (e.key === 'Escape') closeSearch();\n else if (e.key === 'ArrowDown') {\n e.preventDefault();\n if (selectedIndex < results.length - 1) { selectedIndex++; renderResults(); }\n } else if (e.key === 'ArrowUp') {\n e.preventDefault();\n if (selectedIndex > 0) { selectedIndex--; renderResults(); }\n } else if (e.key === 'Enter' && results[selectedIndex]) {\n e.preventDefault();\n window.location.href = results[selectedIndex].url;\n }\n });\n }\n\n // Global keyboard shortcut (/ or Cmd+K)\n document.addEventListener('keydown', (e) => {\n if ((e.key === '/' && !(e.target instanceof HTMLInputElement)) ||\n ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === 'k')) {\n e.preventDefault();\n openSearch();\n }\n });\n </script>\n</body>\n</html>";
993
1000
  /**
994
1001
  * Bare HTML template (no navigation, no styles).
995
1002
  */
@@ -1743,7 +1750,7 @@ interface ResolvedOgImageOptions {
1743
1750
  * Implements AsyncDisposable for automatic cleanup via `await using`.
1744
1751
  */
1745
1752
  interface OgBrowserSession extends AsyncDisposable {
1746
- renderPage(html: string, width: number, height: number): Promise<Buffer>;
1753
+ renderPage(html: string, width: number, height: number, publicDir?: string): Promise<Buffer>;
1747
1754
  }
1748
1755
  /**
1749
1756
  * Opens a Chromium browser and returns a session for rendering OG images.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.cts","names":[],"sources":["../src/theme.ts","../src/types.ts","../src/environment.ts","../src/transform.ts","../src/docs.ts","../src/ssg.ts","../src/search.ts","../src/jsx-runtime.ts","../src/page-context.ts","../src/theme-renderer.ts","../src/plugins/tabs.ts","../src/plugins/youtube.ts","../src/plugins/github.ts","../src/plugins/ogp.ts","../src/plugins/mermaid.ts","../src/plugins/index.ts","../src/island/parse.ts","../src/og-image/types.ts","../src/og-image/browser.ts","../src/og-image/index.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.cts","names":[],"sources":["../src/theme.ts","../src/types.ts","../src/environment.ts","../src/transform.ts","../src/docs.ts","../src/ssg.ts","../src/search.ts","../src/jsx-runtime.ts","../src/page-context.ts","../src/theme-renderer.ts","../src/plugins/tabs.ts","../src/plugins/youtube.ts","../src/plugins/github.ts","../src/plugins/ogp.ts","../src/plugins/mermaid.ts","../src/plugins/index.ts","../src/island/parse.ts","../src/og-image/types.ts","../src/og-image/browser.ts","../src/og-image/index.ts","../src/index.ts"],"sourcesContent":[],"mappings":";;;;;;;AASA;AAwBA;AAYA;AAUA;AAYA;AAUiB,UApEA,WAAA,CAoEW;EAYX;EAwBA,OAAA,CAAA,EAAA,MAAW;EAAA;cAIhB,CAAA,EAAA,MAAA;;YAIG,CAAA,EAAA,MAAA;;eAIJ,CAAA,EAAA,MAAA;;MAIA,CAAA,EAAA,MAAA;;WAID,CAAA,EAAA,MAAA;EAAU;EAUH,MAAA,CAAA,EAAA,MAAA;EAAmB;gBAE1B,CAAA,EAAA,MAAA;;UAED,CAAA,EAAA,MAAA;;;;;AAKA,UAvHQ,WAAA,CAuHR;EAAU;EASN,YAAA,CAAA,EA8CZ,MAAA;EAiDe;EAAW,YAAA,CAAA,EAAA,MAAA;;iBAAuB,CAAA,EAAA,MAAA;;AAalD;;;AAAuD,UAhOtC,UAAA,CAgOsC;EAAW;EAoBlD,IAAA,CAAA,EAAA,MAAA;EAAY;MAAU,CAAA,EAAA,MAAA;;;;;UA1OrB,WAAA;EC1CA;EAYA,IAAA,CAAA,EAAA,MAAS;EAcT;EAAU,SAAA,CAAA,EAAA,MAAA;;YAUf,CAAA,EAAA,MAAA;;AAMZ;AAgBA;;AAIS,UDRQ,WAAA,CCQR;;EAEiB,OAAA,CAAA,EAAA,MAAA;EAMT;EA6DA,SAAA,CAAA,EAAA,MAAA;AAejB;;;;AA0GiB,UD5LA,WAAA,CC4LA;;QAcN,CAAA,EAAA,MAAA;EAAa;EAaP,OAAA,CAAA,EAAA,MAAA;EAAe;SAIzB,CAAA,EAAA,MAAA;;;;;AAgBwB,UD/Nd,UAAA,CC+Nc;EAQd;EAgDA,IAAA,CAAA,EAAA,MAAA;EAYA;EAAmB,YAAA,CAAA,EAAA,MAAA;;aASM,CAAA,EAAA,MAAA;;eAA4C,CAAA,EAAA,MAAA;;EAAD,YAAA,CAAA,EAAA,MAAA;EAMpE;EAAgB,aAAA,CAAA,EAAA,MAAA;;cActB,CAAA,EAAA,MAAA;EAAe;EAMT,YAAA,CAAA,EAAY,MAAA;EAUZ;EAAe,MAAA,CAAA,EAAA,MAAA;;;;AA8BhC;AA6BiB,UDnXA,WAAA,CCmXW;EAwEX;EAiBA,IAAA,CAAA,EAAA,MAAQ;EAAA;SAId,CAAA,ED5cC,WC4cD;;QAGF,CAAA,ED7cE,WC6cF;EAAM;EAUE,UAAA,CAAQ,EDrdV,WCqdU;EAWR;EAQA,KAAA,CAAA,EDteP,UCseoB;EAgCb;EAmCA,MAAA,CAAA,EDviBN,WCuiBM;EAWA;EAYA,MAAA,CAAA,ED5jBN,WC4jBkB;;WD1jBlB;;EElGK,WAAA,CAAA,EFoGA,WEpGA;EAAyB;OAAU,CAAA,EFsGzC,UEtGyC;;EAAoC,GAAA,CAAA,EAAA,MAAA;;;;ACkUvF;AASA;;AAGW,UH9NM,mBAAA,CG8NN;MACI,EAAA,MAAA;QACJ,EH9ND,WG8NC;YAAR,EH7NW,WG6NX;EAAO,KAAA,EH5ND,UG4NC;UH3NA;UACA;UACA;EIgBY,WAAA,EJfP,WIekB;EAAA,KAAA,EJdxB,UIcwB;KAEtB,EAAA,MAAA;MACA,MAAA;;;AAgaX;;;AAEW,cJ1aE,YI0aF,EJ1agB,WI0ahB;;;AAmRX;;;;;;;AA4CA;;;;;;;iBJ1oBgB,WAAA,SAAoB,cAAc;AKnMlD;AAwuBA;;;;;AAobA;;;AAGG,iBL/8Ba,WAAA,CK+8Bb,GAAA,MAAA,EL/8BoC,WK+8BpC,EAAA,CAAA,EL/8BoD,WK+8BpD;;;;iBL37Ba,YAAA,UAAsB,cAAc;AMrQpD;;;;;ANKA;AAYA;AAUA;AAYiB,UCtDA,UAAA,CDsDW;EAUX;EAYA,KAAA,CAAA,EAAA,OAAU,GAAA,KAAA;EAwBV;EAAW,IAAA,EAAA,MAAA;;MAMjB,EAAA,MAAA;;;;;AAUA,UCxGM,SAAA,CDwGN;;KAID,EAAA,MAAA;EAAU;EAUH,GAAA,CAAA,EAAA,MAAA;EAAmB;OAE1B,CAAA,EAAA,MAAA;;QAED,CAAA,EAAA,MAAA;;;;;AAKA,UCjHQ,UAAA,CDiHR;EAAU;EASN,IAAA,CAAA,EAAA,MAAA;EA+FG;EAAW,IAAA,CAAA,EAAA,MAAA;;SAAuB,CAAA,EAAA,MAAA;EAAW;EAa7C,KAAA,CAAA,EC9NN,SD8NiB;EAAA;SAAY,CAAA,EC5N3B,UD4N2B,EAAA;;;AAoBvC;;AAAsC,UC1OrB,aAAA,CD0OqB;;EAAiC,IAAA,CAAA,EAAA,MAAA;;;;ECpRtD,OAAA,CAAA,EAAA,MAAU;EAYV;EAcA,IAAA,CAAA,EAAA,MAAU;EAAA;UAQjB,CAAA,EAAA,MAAA;;;AAQV;AAgBA;AAAgC,UAAf,eAAA,CAAe;;QAMnB,EAAA,OAAA;EAAa;EAMT,IAAA,CAAA,EARR,UAQkB;EA6DV;EAeA,QAAA,CAAA,EAlFJ,aAkFoB,EAAA;;;;;AAiHxB,UA7LQ,UAAA,CA6LR;;;AAoBT;;SAIO,CAAA,EAAA,OAAA;;;;;EAgBwB,SAAA,CAAA,EAAA,MAAA;EAQd;AAgDjB;AAYA;;OASmB,CAAA,EAAA,OAAA;;;;;;EAMF,IAAA,CAAA,EAAA,OAAA;EAAgB;;;EAcP,QAAA,CAAA,EAAA,MAAA;EAMT;AAUjB;;;SAwBO,CAAA,EAAA,MAAA;EAAQ;AAMf;AA6BA;AAwEA;AAiBA;EAAyB,eAAA,CAAA,EAAA,OAAA;;;;;AAiBzB;EAWiB,OAAA,CAAA,EAAA,MAAS;EAQT;AAgCjB;AAmCA;AAWA;EAYiB,KAAA,CAAA,EAjjBP,WAijBmB;;;;AC5pB7B;AAAyC,UDiHxB,kBAAA,CCjHwB;SAAU,EAAA,OAAA;WAAkB,EAAA,MAAA;EAAkB,KAAA,EAAA,OAAA;;;;ECkUtE,eAAA,EAAA,OAAmB;EASd,OAAA,CAAA,EAAA,MAAA;EAAiB,KAAA,CAAA,EFjN7B,mBEiN6B;;;;;AAK7B,UFhNO,gBAAA,CEgNP;;;;ACzMV;EAAiC,MAAA,CAAA,EAAA,MAAA;;;;;EAmajB,MAAA,CAAA,EAAA,MAAA;EAAgB;;;;EAGvB,IAAA,CAAA,EAAA,MAAA;EAkRa;;;;;KAKnB,CAAA,EH5qBK,UG4qBL,GAAA,OAAA;EAAO;AAuCV;;;KAEG,CAAA,EAAA,OAAA;EAAmB;;;;EC/0BT,SAAA,CAAA,EAAA,OAAA;EAwuBG;;;;EAA4E,MAAA,CAAA,EAAA,OAAA;EAobtE;;;;EAGZ,SAAA,CAAA,EAAA,OAAA;;;;AChsCV;EAAoC,aAAA,CAAA,EAAA,OAAA;;;;AAuDpC;EAwDsB,SAAA,CAAA,EAAA,OAAgB;;;;ACHtC;EAA0B,cAAA,CAAA,EAAA,MAAA;;;;AAK1B;EAAoB,OAAA,CAAA,EAAA,OAAA;;;;AAKpB;EAOiB,WAAQ,CAAA,EAAA,OAAA;EAwCT;;;;KAA2D,CAAA,EAAA,OAAA;EAAO;AAyClF;;;aAAkD,CAAA,EAAA,MAAA;;;AAOlD;;SAA2B,CAAA,EAAA,OAAA;;;;EAOX,cAAA,CAAA,ENYG,cMZkB;EAarB;AAYhB;;cAAkD,CAAA,ENRjC,mBMQiC,EAAA;;;AAYlD;;;MAAmD,CAAA,ENb1C,WMa0C,GAAA,KAAA;;;;;;WNNxC;EOtPM;;;;;EAsBL,QAAA,CAAA,EAAA,OAAS;;;;;AAGJ,UP0OA,eAAA,CO1OA;QAAI,EAAA,MAAA;EAAM,MAAA,EAAA,MAAA;EAMV,IAAA,EAAA,MAAA;EAAU,GAAA,EPwOpB,kBOxOoB;KAMlB,EAAA,OAAA;WAEF,EAAA,OAAA;EAAQ,MAAA,EAAA,OAAA;EAME,SAAA,EAAQ,OAAA;EAQR,aAAO,EAAA,OAAA;EASP,SAAA,EAAA,OAAa;EAAA,cAAA,EAAA,MAAA;SAAW,EAAA,OAAA;aAA0B,EAAA,OAAA;KAEjD,EAAA,OAAA;aAAV,EAAA,MAAA;SAEA,EAAA,OAAA;EAAU,cAAA,EPkNA,wBOlNA;EAWF,YAAA,EPwMA,mBOxMsB,EAAA;EAStB,IAAA,EPgMR,mBOhM0B,GAAA,KAAA;EAkBlB,MAAA,EP+KN,qBO/KkB;EAAA,QAAA,EAAA,OAAA;;;;;;AA0BZ,UP6JC,cAAA,CO7JgB;EA6BjB;;;;;;;AAoChB;EAegB,QAAA,CAAA,EAAA,MAAW;EAUV;AAcjB;AAwBA;;;;EC3QY,SAAA,CAAA,EAAA,QAAc,GAAA,QAAA;EAAA;;;;EAKT,KAAA,CAAA,EAAA,MAAU;EAQV;;;;EAcI,MAAA,CAAA,EAAA,MAAA;EAQJ;;;;;EAUA,KAAA,CAAA,EAAA,OAAA;EAYD;;;;EAAsD,WAAA,CAAA,EAAA,MAAA;AAkEtE;;;;AAGW,UR0NM,wBAAA,CQ1NN;UAAR,CAAA,EAAA,MAAA;EAAO,SAAA,EAAA,QAAA,GAAA,QAAA;EAuBY,KAAA,EAAA,MAAA;EAAa,MAAA,EAAA,MAAA;OAAQ,EAAA,OAAA;aAA6B,EAAA,MAAA;;AAiBxE;;;AAA2C,UR8L1B,mBAAA,CQ9L0B;;;AAqE3C;EAA2B,IAAA,EAAA,MAAA;;;;EAGT,SAAA,EAAA,CAAA,GAAA,ER+HC,YQ/HD,EAAA,OAAA,ER+HwB,gBQ/HxB,EAAA,GR+H6C,YQ/H7C,GR+H4D,OQ/H5D,CR+HoE,YQ/HpE,CAAA;;;;AC1BlB;AAcgB,UTiJC,gBAAA,CSjJc;;;;EC9Od,QAAA,EAAA,MAAA;EA+BD;AA6HhB;;aAA+D,EV4OhD,MU5OgD,CAAA,MAAA,EAAA,OAAA,CAAA;;;;WViPpD;;AW7YX;AAcA;AA4CA;AAAmC,UXyVlB,YAAA,CWzVkB;MAEf,EAAA,MAAA;UAAT,CAAA,EXyVE,YWzVF,EAAA;OACA,CAAA,EAAA,MAAA;MAAR,EAAA,MAAA,CAAA,EAAA,OAAA;;AAiPH;AAeA;;AAEY,UX8FK,eAAA,CW9FL;;;;EACF,IAAA,EAAA,MAAA;EAmDY;;;KAEN,CAAA,EAAA,IAAA;;;;;;;ACrXhB;EASiB,WAAA,EZuaF,MYvaY,CAAA,MAAA,EAAA,OAAA,CAAA;EAyHL;;;KAEX,EZiTJ,QYjTI,EAAA;;;;AAuLX;AAesB,UZiHL,QAAA,CYjHoB;EAAA;;;OAG1B,EAAA,MAAA;;;AAiDX;EAAkC,IAAA,EAAA,MAAA;;;;MAI/B,EAAA,MAAA;EAAO;;;YZ4EE;Aa9cZ;AAgEA;;;AAGG,UbqZc,WAAA,CarZd;EAAO;AA2BV;;;;ECvEiB;AAYjB;;;KAGG,CAAA,EAAA,MAAA,EAAA;EAAO;;;;ECtCE,GAAA,CAAA,EAAA,MAAA;EAEK;;;;EAIF,OAAA,CAAA,EAAA,MAAA,EAAA;EAGE;AAqLjB;;;SAAsD,CAAA,EAAA,MAAA,EAAA;EAAO;AAkB7D;AAQA;;QAA+D,CAAA,EAAA,UAAA,GAAA,MAAA,GAAA,MAAA;;;AAS/D;;;;ACtOA;AAkBA;;KAAwC,CAAA,EAAA,OAAA;;;AAKxC;AAgDA;;;;AC9DA;;;WAC+E,CAAA,EAAA,MAAA;;;;;;ACe/E;;;;AAAkG,UlB4gBjF,mBAAA,CkB5gBiF;EAcjF,OAAA,EAAA,OAAA;EAUA,GAAA,EAAA,MAAA,EAAA;EAgbK,GAAA,EAAA,MAAA;EAAgB,OAAA,EAAA,MAAA,EAAA;SAC7B,EAAA,MAAA,EAAA;QACE,EAAA,UAAA,GAAA,MAAA,GAAA,MAAA;SAEA,EAAA,OAAA;KAAR,EAAA,OAAA;EAAO,OAAA,EAAA,MAAA,GAAA,UAAA;;;;AC5aV;;;AAA2D,UnB6f1C,QAAA,CmB7f0C;EAAM,IAAA,EAAA,MAAA;;;WnBigBtD;YACC;;SAEH;;;;;;;;;UAUQ,QAAA;;;;;;;;;;UAWA,SAAA;;;;;;;UAQA,aAAA;;WAEN;;;;;;;;;UA8BM,aAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAmCA,qBAAA;;;;;;;;;;UAWA,cAAA;;;;;;;;;;;UAYA,YAAA;;;;;;;;;;;AD9mBjB;AAYA;AAwBA;;;;;;;;;;;;AA8BA;;;;;;;AAOU,iBEvHM,yBAAA,CFuHN,OAAA,EEvHyC,eFuHzC,CAAA,EEvH2D,kBFuH3D;;;;AAWV;AA+FA;;;;;;;AC7KA;AA6DA;AAeA;;;;;;;;AAqIA;;;;;;;;AA4BA;AAgDA;AAYA;;;;;;;;AAeA;;;;;AAoBA;AAUA;;;;;AA8BA;AA6BA;AAwEA;AAiBA;;;;;;AAiBA;AAWA;AAQA;AAgCA;AAmCA;AAWA;AAYA;;;;AC5pBA;;;;;;;;ACkUA;AASA;;;;;;;;;;ACpMA;;;;;AAGU,UDwLO,mBAAA,CCxLP;EAgaM;EAAgB,cAAA,CAAA,EAAA,OAAA;;SAErB,CAAA,EAAA,MAAA;;EACF,UAAA,CAAA,EAAA,MAAA;AAkRT;AAA+B,iBDpfT,iBAAA,CCofS,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EDjfpB,eCifoB,EAAA,UAAA,CAAA,EDhfhB,mBCgfgB,CAAA,ED/e5B,OC+e4B,CD/epB,eC+eoB,CAAA;;;;;;;;;AHj1B/B;AAYA;AAcA;;;;;AAgBA;AAgBA;;;;;AAYA;AA6DA;AAeA;;;;;;;;AAqIA;;;;;;;;AA4BA;AAgDA;AAYA;;;;;;;;AAeA;;;;;AAoBA;AAUA;;;;;AA8BA;AA6BA;AAwEA;AAiBA;;;;;;AAiBA;AAWA;AAQA;AAgCiB,iBG3dK,WAAA,CH2dQ,OAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EGzdnB,mBHydmB,CAAA,EGxd3B,OHwd2B,CGxdnB,aHwdmB,EAAA,CAAA;AAmC9B;AAWA;AAYA;iBGlHgB,gBAAA,OACR,0BACG,sBACR;;;AF7iBH;AAAyC,iBE+zBnB,SAAA,CF/zBmB,IAAA,EEg0BjC,MFh0BiC,CAAA,MAAA,EAAA,MAAA,CAAA,EAAA,MAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EEk0BvB,aFl0BuB,EAAA,EAAA,OAAA,CAAA,EEm0B7B,mBFn0B6B,CAAA,EEo0BtC,OFp0BsC,CAAA,IAAA,CAAA;AAAU,iBE22BnC,kBAAA,CF32BmC,OAAA,EE22BjB,WAAA,GF32BiB,KAAA,GAAA,SAAA,CAAA,EE62BhD,mBF72BgD,GAAA,KAAA;;;;;;;AFiOU,cKnMhD,qBAAA,GLmMgD,gsyBAAA;AAa7D;;;;;AAoBA;;AAAsC,iBKogBtB,iBAAA,CLpgBsB,GAAA,EKogBC,ULpgBD,GAAA,OAAA,GAAA,SAAA,CAAA,EKogBoC,kBLpgBpC;;;;;;;;ACV3B,iBIk8BW,QAAA,CJl8BX,OAAA,EIm8BA,eJn8BA,EAAA,IAAA,EAAA,MAAA,CAAA,EIq8BR,OJr8BQ,CAAA;EAAa,KAAA,EAAA,MAAA,EAAA;EAaP,MAAA,EAAA,MAAA,EAAA;CAAe,CAAA;;;AD7OhC;AAYA;AAUA;AAYiB,iBM7DD,oBAAA,CN6DW,OAAA,EM5DhB,aN4DgB,GAAA,OAAA,GAAA,SAAA,CAAA,EM3DxB,qBN2DwB;AAwB3B;;;AAMW,iBMpCW,gBAAA,CNoCX,MAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,CAAA,EMpC2D,ONoC3D,CAAA,MAAA,CAAA;;;;AAQA,iBMYW,gBAAA,CNZX,SAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EMYgE,ONZhE,CAAA,IAAA,CAAA;;;;;;;;;;;AAtHX;AAwBA;AAYA;AAUA;AAYA;AAUA;AAYA;AAwBA;;;;;;;;;;;;AA8BA;;;;;;;AAOU,KOdE,cAAA,GPcF,MAAA,GAAA,CAAA,CAAA,KAAA,EOdqC,MPcrC,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,GOdiE,OPcjE,CAAA;;;;AAWG,KOpBD,QAAA,GPkEX,MAAA,GA9C0B,MAAA,GAAA,OA8C1B,GAAA,IAAA,GAAA,SAAA,GOlEqE,OPkErE,GOlE+E,QPkE/E,EAAA;AAiDD;;;AAAkD,UO9GjC,OAAA,CP8GiC;EAAW,MAAA,EAAA,MAAA;AAa7D;;;;AAAkE,UOpHjD,QAAA,CPoHiD;EAoBlD,QAAA,CAAA,EOvIH,QPuIe;EAAA,CAAA,GAAA,EAAA,MAAA,CAAA,EAAA,OAAA;;;;;;iBOhGZ,GAAA,OAAU,uBAAuB,0BAA0B;ANpL3E;AAYA;AAcA;;AAQU,iBM2LM,IAAA,CN3LN,IAAA,EM2LiB,cN3LjB,EAAA,KAAA,EM2LwC,QN3LxC,EAAA,GAAA,CAAA,EAAA,MAAA,CAAA,EM2LiE,ON3LjE;;;AAQV;AAgBiB,iBM0KD,QAAA,CN1KgB;EAAA;CAAA,EAAA;EAAA,QAAA,CAAA,EM0KoB,QN1KpB;IM0KiC,ONtKxD;;;AAQT;AA6DiB,iBMwGD,cAAA,CN/FN,IAAA,EM+F2B,ON/F3B,CAAA,EAAA,MAAmB;AAM7B;;;;;;;;AAqIA;AAAgC,iBM/BhB,GAAA,CN+BgB,IAAA,EAAA,MAAA,CAAA,EM/BG,ON+BH;;;;;;;AA4BhC;AAgDA;AAYiB,iBM3GD,IAAA,CN2GoB,SAAA,EAAA,OAAA,EAAA,OAAA,EM3Gc,ON2Gd,CAAA,EM3GwB,ON2GxB;;;;;;;;AAepC;AAAiC,iBM9GjB,IN8GiB,CAAA,CAAA,CAAA,CAAA,KAAA,EM9GF,CN8GE,EAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EM9GkB,CN8GlB,EAAA,KAAA,EAAA,MAAA,EAAA,GM9GuC,ON8GvC,CAAA,EM9GiD,ON8GjD;;;;;;ADnPxB,UQvHQ,aAAA,CRuHR;EAAU;EASN,KAAA,EAAA,MAAA;EA+FG;EAAW,WAAA,CAAA,EAAA,MAAA;;MAAuB,EAAA,MAAA;EAAW;EAa7C,GAAA,EQpOT,QRoOS,EAAW;EAAA;MAAY,EAAA,MAAA;;EAA2B,GAAA,EAAA,MAAA;EAoBlD;EAAY,WAAA,EQlPb,MRkPa,CAAA,MAAA,EAAA,OAAA,CAAA;;QAAwB,CAAA,EAAA,MAAA;;;;;ACpRnC,KO0CL,SP1Ce,CAAA,UO0CK,MP1CL,CAAA,MAAA,EAAA,OAAA,CAAA,GO0C+B,MP1C/B,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,GO2CzB,aP3CyB,GAAA;EAYV;EAcA,WAAA,EOmBA,CPnBU,GOmBN,MPnBM,CAAA,MAAA,EAAA,OAAA,CAAA;CAAA;;;;AAgBV,UOSA,UAAA,CPTa;EAgBb;EAAe,IAAA,EAAA,MAAA;;MAMnB,EAAA,MAAA;EAAa;EAMT,KAAA,EObR,aPakB,EAAA;EA6DV;EAeA,GAAA,EOvFV,QPuFU,EAAA;;;;;AAiHR,UOlMQ,QAAA,CPkMR;OAOE,EAAA,MAAA;EAAa,KAAA,EOvMf,OPuMe,EAAA;AAaxB;;;;AAkBgB,UOhOC,OAAA,CPgOD;OACR,EAAA,MAAA;MACE,EAAA,MAAA;EAAqB,IAAA,EAAA,MAAA;AAQ/B;AAgDA;AAYA;;AASmB,UOtSF,aPsSE,CAAA,UOtSsB,MPsStB,CAAA,MAAA,EAAA,OAAA,CAAA,GOtSgD,MPsShD,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,CAAA;;MAA4C,EOpSvD,SPoSuD,COpS7C,CPoS6C,CAAA;;MAAe,EOlStE,UPkSsE;;AAM9E;;;;;AAoBiB,iBOjTD,gBAAA,CPmTH,GAAY,EOnTa,aPmTb,CAAA,EAAA,IAAA;AAQzB;;;;;AA8BiB,iBOhVD,kBAAA,CAAA,CPmWI,EAAA,IAAA;AAUpB;AAwEA;AAiBA;;;;;;AAiBA;AAWA;AAQA;AAgCA;AAmCA;AAWA;AAYiB,iBOljBD,YPkjBa,CAAA,UOjjBjB,MPijBiB,CAAA,MAAA,EAAA,OAAA,CAAA,GOjjBS,MPijBT,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,CAAA,CAAA,EOhjBxB,SPgjBwB,COhjBd,CPgjBc,CAAA;;;;AC5pB7B;;;;;;;;ACkUA;AASA;;AAGW,iBK1MK,aAAA,CAAA,CL0ML,EK1MsB,UL0MtB;;;;;;;;ACvMX;;;;;;AAmaA;;;;;;AAqRsB,iBI9pBN,gBJ8pBe,CAAA,UI7pBnB,MJ6pBmB,CAAA,MAAA,EAAA,OAAA,CAAA,GI7pBO,MJ6pBP,CAAA,MAAA,EAAA,OAAA,CAAA,CAAA,CAAA,CAAA,EI5pB1B,aJ4pB0B,CI5pBZ,CJ4pBY,CAAA;;;;;;;AA4C/B;;;;;;;;AC70BA;AAwuBA;;;;;AAobA;;;;AAGU,iBGx/BM,MAAA,CAAA,CHw/BN,EGx/BgB,QHw/BhB,EAAA;;;;AChsCV;;;;;AAuDA;AAwDA;;iBEwGgB,WAAA;;AD3GhB;;AAA+C,UCqH9B,iBAAA,CDrH8B;;EAAmC,IAAA,EAAA,MAAA;EAKtE;EAAQ,IAAA,EAAA,MAAA;;UAA4D,EAAA,OAAA;EAAQ;EAKvE,WAAO,CAAA,EAAA,MAAA;AAOxB;AAwCA;;;AAAiD,iBC0EjC,SAAA,CD1EiC,KAAA,EAAA,OAAA,CAAA,EAAA,MAAA;;;AAyCjD;AAAoB,iBCyDJ,wBAAA,CDzDI,OAAA,EC0DT,MD1DS,CAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,aAAA,CAAA,EAAA,MAAA,CAAA,EAAA,MAAA;;;;APjJpB;AAwBA;;AAIY,KS7FA,cAAA,GT6FA,CAAA,KAAA,ES7FyB,UT6FzB,EAAA,GS7FwC,OT6FxC;;;;AAQD,UShGM,UAAA,CTgGN;;UAIA,ESlGC,OTkGD;;;;AAcX;AAAoC,US1GnB,QAAA,CT0GmB;;OAGtB,EAAA,MAAA;;aAEJ,CAAA,EAAA,MAAA;;MAEA,EAAA,MAAA;;KAED,ES3GF,QT2GE,EAAA;EAAU;EASN,IAAA,EAAA,MAAA;EA+FG;EAAW,GAAA,EAAA,MAAA;;aAAuB,ES7MnC,MT6MmC,CAAA,MAAA,EAAA,OAAA,CAAA;EAAW;EAa7C,MAAA,CAAA,EAAA,MAAW;;;;;AAoBX,UStOC,kBAAA,CTsOW;EAAA;OAAU,ESpO7B,cToO6B;;EAAiC,QAAA,EAAA,MAAA;;;;ECpRtD,GAAA,EQsDV,QRtDoB,EAAA;EAYV;EAcA,KAAA,EQ8BR,QR9BkB,EAAA;EAAA;aAQjB,CAAA,EAAA,MAAA;;;AAQV;AAgBA;;;;;AAYiB,iBQFD,UAAA,CRyDN,IAAA,EQzDuB,QRyDZ,EAAA,OAAA,EQzD+B,kBRyD/B,CAAA,EAAA,MAAA;AAMrB;AAeA;;;;;;AAwHW,iBQpIW,cAAA,CRoIX,KAAA,EQnIF,QRmIE,EAAA,EAAA,OAAA,EQlIA,kBRkIA,CAAA,EQjIR,ORiIQ,CQjIA,GRiIA,CAAA,MAAA,EAAA,MAAA,CAAA,CAAA;;AAaX;;;;;AAmBQ,iBQ1Ic,aAAA,CR0Id,KAAA,EQ1ImC,QR0InC,EAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EQ1IgE,OR0IhE,CAAA,IAAA,CAAA;;;AASR;AAgDA;AAYiB,iBQ9LD,YAAA,CR8LoB;EAAA;AAAA,CAAA,EQ9LO,UR8LP,CAAA,EQ9LoB,OR8LpB;;;;;;;;AAepC;;;;;AAoBA;AAUA;;;;AAwBe,iBQ9LC,WAAA,CR8LD,MAAA,EAAA;EAME,OAAA,EQnMN,MRmMc,CAAA,MAmBb,EQtNc,cRsNN,CAAA;EAUH,aAAA,CAAW,EAAA,MAAA;AAwE5B,CAAA,CAAA,EQtSI,cRsSa;AAiBjB;;;AD5cA;;;AAMW,iBUqHW,aAAA,CVrHX,IAAA,EAAA,MAAA,CAAA,EUqHwC,OVrHxC,CAAA,MAAA,CAAA;;;;;AAUA,iBUyHK,eAAA,CVzHL,UAAA,EAAA,MAAA,CAAA,EAAA,MAAA;;;;;;;AAxHX;AAwBA;AAYA;AAUiB,UW3CA,cAAA,CX2CW;EAYX;EAUA,eAAW,CAAA,EAAA,OAAA;EAYX;EAwBA,WAAA,CAAA,EAAW,MAAA;EAAA;iBAIhB,CAAA,EAAA,OAAA;;UAIG,CAAA,EAAA,OAAA;;;;;AAUC,iBWxFA,cAAA,CXwFA,KAAA,EAAA,MAAA,CAAA,EAAA,MAAA,GAAA,IAAA;;;AAYhB;AAAoC,iBWyBd,gBAAA,CXzBc,IAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EWyB2B,cXzB3B,CAAA,EWyB4C,OXzB5C,CAAA,MAAA,CAAA;;;;;;;AAtIpC;AAwBA;AAYA;AAUiB,UY3CA,cAAA,CZ2CW;EAYX,IAAA,EAAA,MAAA;EAUA,SAAA,EAAA,MAAW;EAYX,WAAA,EAAU,MAAA,GAAA,IAAA;EAwBV,QAAA,EAAA,MAAW;EAAA,gBAAA,EAAA,MAAA;aAIhB,EAAA,MAAA;UAED,EAAA,MAAA,GAAA,IAAA;OAEI,EAAA;IAEL,KAAA,EAAA,MAAA;IAEC,UAAA,EAAA,MAAA;;;AAMK,UYzGC,aAAA,CZyGD;;EAEI,KAAA,CAAA,EAAA,MAAA;EAUH;EAAmB,KAAA,CAAA,EAAA,OAAA;;UAGtB,CAAA,EAAA,MAAA;;;;;AAKC,iBYjFO,aAAA,CZiFP,IAAA,EAAA,MAAA,EAAA,OAAA,EY/EJ,QZ+EI,CY/EK,aZ+EL,CAAA,CAAA,EY9EZ,OZ8EY,CY9EJ,cZ8EI,GAAA,IAAA,CAAA;;;AAUf;AA+FgB,iBY0DM,kBAAA,CZ1DK,IAAA,EAAA,MAAA,CAAA,EY0D6B,OZ1D7B,CAAA,MAAA,EAAA,CAAA;;;;AAAkC,iBYyEvC,mBAAA,CZzEuC,KAAA,EAAA,MAAA,EAAA,EAAA,OAAA,CAAA,EY2EjD,aZ3EiD,CAAA,EY4E1D,OZ5E0D,CY4ElD,GZ5EkD,CAAA,MAAA,EY4EtC,cZ5EsC,GAAA,IAAA,CAAA,CAAA;AAa7D;;;AAAuD,iBYkHjC,eAAA,CZlHiC,IAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EYoHvC,GZpHuC,CAAA,MAAA,EYoH3B,cZpH2B,GAAA,IAAA,CAAA,EAAA,OAAA,CAAA,EYqH3C,aZrH2C,CAAA,EYsHpD,OZtHoD,CAAA,MAAA,CAAA;;;;;;;AApQvD;AAwBA;AAYA;AAUiB,Ua3CA,OAAA,Cb2CW;EAYX,GAAA,EAAA,MAAA;EAUA,KAAA,EAAA,MAAA;EAYA,WAAA,CAAA,EAAU,MAAA;EAwBV,KAAA,CAAA,EAAA,MAAW;EAAA,QAAA,CAAA,EAAA,MAAA;SAIhB,CAAA,EAAA,MAAA;;AAIG,UapGE,UAAA,CboGF;;SAIJ,CAAA,EAAA,MAAA;;OAIA,CAAA,EAAA,OAAA;;UAID,CAAA,EAAA,MAAA;EAAU;EAUH,SAAA,CAAA,EAAA,MAAA;;;;;AAKP,iBaNY,YAAA,CbMZ,GAAA,EAAA,MAAA,EAAA,OAAA,EaJC,QbID,CaJU,UbIV,CAAA,CAAA,EaHP,ObGO,CaHC,ObGD,GAAA,IAAA,CAAA;;;;AAID,iBa+Ka,cAAA,Cb/Kb,IAAA,EAAA,MAAA,CAAA,Ea+K2C,Ob/K3C,CAAA,MAAA,EAAA,CAAA;;AAST;AA+FA;AAA2B,iBasFL,eAAA,CbtFK,IAAA,EAAA,MAAA,EAAA,EAAA,OAAA,CAAA,EawFf,UbxFe,CAAA,EayFxB,ObzFwB,CayFhB,GbzFgB,CAAA,MAAA,EayFJ,ObzFI,GAAA,IAAA,CAAA,CAAA;;;;AAaX,iBa6HM,YAAA,Cb7HK,IAAA,EAAA,MAAA,EAAA,UAAA,CAAA,Ea+HZ,Gb/HY,CAAA,MAAA,Ea+HA,Ob/HA,GAAA,IAAA,CAAA,EAAA,OAAA,CAAA,EagIf,UbhIe,CAAA,EaiIxB,ObjIwB,CAAA,MAAA,CAAA;;;;;;;AApQ3B;AAwBA;AAYA;AAUA;AAYiB,UcvDA,cAAA,CduDW;EAUX;EAYA,KAAA,CAAA,EAAA,SAAU,GAAA,MAAA,GAAA,QAAA,GAAA,SAAA,GAAA,MAAA;AAwB3B;;;;;AAUU,iBc/CY,sBAAA,Cd+CZ,IAAA,EAAA,MAAA,EAAA,QAAA,CAAA,Ec7CG,cd6CH,CAAA,Ec5CP,Od4CO,CAAA,MAAA,CAAA;;;;AAQM,cczBH,mBAAA,GdyBG,EAAA;;;;;;;;AARN,UexFO,mBAAA,CfwFP;MAEC,CAAA,EAAA,OAAA;SAEA,CAAA,EAAA,OAAA;QAEA,CAAA,EAAA,OAAA;KAEK,CAAA,EAAA,OAAA;SAEN,CAAA,EAAA,OAAA;EAAU,WAAA,CAAA,EAAA,MAAA;AAUpB;;;;AAIS,iBepGa,mBAAA,CfoGb,IAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EelGE,mBfkGF,CAAA,EejGN,OfiGM,CAAA,MAAA,CAAA;;;;;;;AA1IT;AAwBA;AAYA;AAUiB,KgB3CL,YAAA,GhB2CgB,OAAA,GAAA,MAAA,GAAA,SAAA,GAAA,OAAA;AAYX,UgBrDA,UAAA,ChBqDW;EAUX,SAAA,EAAA,MAAW;EAYX,IAAA,EgBzET,YhByEmB;EAwBV,UAAA,CAAA,EAAA,MAAW;EAAA,KAAA,EgB/FnB,MhB+FmB,CAAA,MAAA,EAAA,OAAA,CAAA;;AAMjB,UgBlGM,kBAAA,ChBkGN;MAEI,EAAA,MAAA;SAEL,EgBpGC,UhBoGD,EAAA;;;;;;;AAoBV;;;;;;;;;;;AAkBA;AA+FA;;;;;AAaA;;;AAAuD,iBgBnEjC,gBAAA,ChBmEiC,IAAA,EAAA,MAAA,CAAA,EgBnED,OhBmEC,CgBnEO,kBhBmEP,CAAA;;AAoBvD;;AAAsC,iBgBrEtB,UAAA,ChBqEsB,IAAA,EAAA,MAAA,CAAA,EAAA,OAAA;;;;;iBgB7DhB,iBAAA,gBAAiC,QAAQ;AfvN/D;AAYA;AAcA;;AAQU,iBe8LM,uBAAA,Cf9LN,UAAA,EAAA,MAAA,EAAA,CAAA,EAAA,MAAA;;;;;;;ADtCV;AAwBA;AAYA;AAUiB,UiBhDA,oBAAA,CjBgDW;EAYX;EAUA,KAAA,EAAA,MAAA;EAYA;EAwBA,WAAA,CAAA,EAAW,MAAA;EAAA;UAIhB,CAAA,EAAA,MAAA;;QAIG,CAAA,EAAA,MAAA;;MAIJ,CAAA,EAAA,MAAA,EAAA;;MAIA,EAAA,MAAA,CAAA,EAAA,OAAA;;;;AAcX;AAAoC,KiBtHxB,iBAAA,GjBsHwB,CAAA,KAAA,EiBtHI,oBjBsHJ,EAAA,GAAA,MAAA,GiBtHsC,OjBsHtC,CAAA,MAAA,CAAA;;;;AAK1B,UiBtHO,gBAAA,CjBsHP;;;;;;AAaV;AA+FA;;UAAoC,CAAA,EAAA,MAAA;;;AAapC;;;;EAAkE,SAAA,CAAA,EAAA,QAAA,GAAA,QAAA;EAoBlD;;;;EAAuD,KAAA,CAAA,EAAA,MAAA;;;;ACpRvE;EAYiB,MAAA,CAAA,EAAA,MAAS;EAcT;;;;;EAgBA,KAAA,CAAA,EAAA,OAAA;EAgBA;;;;EAMS,WAAA,CAAA,EAAA,MAAA;AAM1B;AA6DA;AAeA;;AAwBQ,UgBzGS,sBAAA,ChByGT;UA6EW,CAAA,EAAA,MAAA;WAKF,EAAA,QAAA,GAAA,QAAA;OAOR,EAAA,MAAA;QAOE,EAAA,MAAA;EAAa,KAAA,EAAA,OAAA;EAaP,WAAA,EAAA,MAAe;;;;;;;;AD3RhC;AAwBA;AAYA;AAUA;AAYA;AAUA;AAYA;AAwBA;;AAIY,UkBrGK,gBAAA,SAAyB,elBqG9B,CAAA;YAED,CAAA,IAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,MAAA,CAAA,EkBtGoE,OlBsGpE,CkBtG4E,MlBsG5E,CAAA;;;;;;;;;AAwBX;;;;;;AAtDA;AAwBA;;AAIY,iBmBrFI,qBAAA,CnBqFJ,OAAA,EmBrFmC,gBnBqFnC,GAAA,SAAA,CAAA,EmBrFgE,sBnBqFhE;;;;AAQD,UmB/EM,gBAAA,CnB+EN;;OAIA,EmBjFF,oBnBiFE;;YAID,EAAA,MAAA;;AAUV;;;AAGc,UmB1FG,aAAA,CnB0FH;YACL,EAAA,MAAA;QACC,EAAA,OAAA;OACA,CAAA,EAAA,MAAA;;;;;AAYV;AA+FA;;;;AAA6D,iBmBwOvC,gBAAA,CnBxOuC,KAAA,EmByOpD,gBnBzOoD,EAAA,EAAA,OAAA,EmB0OlD,sBnB1OkD,EAAA,IAAA,EAAA,MAAA,CAAA,EmB4O1D,OnB5O0D,CmB4OlD,anB5OkD,EAAA,CAAA;AAa7D;;;AA5JA;;;;;;;;;;;;AA8BA;;;;;;;AAOU,iBoBtFM,SAAA,CpBsFN,OAAA,CAAA,EoBtFyB,gBpBsFzB,CAAA,EoBtFiD,MpBsFjD,EAAA"}
package/dist/index.d.ts CHANGED
@@ -426,6 +426,12 @@ interface OxContentOptions {
426
426
  * @default { enabled: true }
427
427
  */
428
428
  search?: SearchOptions | boolean;
429
+ /**
430
+ * Enable OG Viewer dev tool.
431
+ * Accessible at /__og-viewer during development.
432
+ * @default true
433
+ */
434
+ ogViewer?: boolean;
429
435
  }
430
436
  /**
431
437
  * Resolved options with all defaults applied.
@@ -451,6 +457,7 @@ interface ResolvedOptions {
451
457
  transformers: MarkdownTransformer[];
452
458
  docs: ResolvedDocsOptions | false;
453
459
  search: ResolvedSearchOptions;
460
+ ogViewer: boolean;
454
461
  }
455
462
  /**
456
463
  * OG image generation options.
@@ -989,7 +996,7 @@ declare function resolveDocsOptions(options: DocsOptions | false | undefined): R
989
996
  /**
990
997
  * Default HTML template for SSG pages with navigation.
991
998
  */
992
- declare const DEFAULT_HTML_TEMPLATE = "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>{{title}}{{#siteName}} - {{siteName}}{{/siteName}}</title>\n {{#description}}<meta name=\"description\" content=\"{{description}}\">{{/description}}\n <!-- Open Graph -->\n <meta property=\"og:type\" content=\"website\">\n <meta property=\"og:title\" content=\"{{title}}{{#siteName}} - {{siteName}}{{/siteName}}\">\n {{#description}}<meta property=\"og:description\" content=\"{{description}}\">{{/description}}\n {{#ogImage}}<meta property=\"og:image\" content=\"{{ogImage}}\">{{/ogImage}}\n <!-- Twitter Card -->\n <meta name=\"twitter:card\" content=\"summary_large_image\">\n <meta name=\"twitter:title\" content=\"{{title}}{{#siteName}} - {{siteName}}{{/siteName}}\">\n {{#description}}<meta name=\"twitter:description\" content=\"{{description}}\">{{/description}}\n {{#ogImage}}<meta name=\"twitter:image\" content=\"{{ogImage}}\">{{/ogImage}}\n <style>\n :root {\n --sidebar-width: 260px;\n --header-height: 60px;\n --max-content-width: 960px;\n --font-sans: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n --font-mono: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;\n --color-bg: #ffffff;\n --color-bg-alt: #f8f9fa;\n --color-text: #1a1a1a;\n --color-text-muted: #666666;\n --color-border: #e5e7eb;\n --color-primary: #b7410e;\n --color-primary-hover: #ce5937;\n --color-code-bg: #1e293b;\n --color-code-text: #e2e8f0;\n }\n [data-theme=\"dark\"] {\n --color-bg: #141414;\n --color-bg-alt: #141414;\n --color-text: #e5e5e5;\n --color-text-muted: #a3a3a3;\n --color-border: #2a2a2a;\n --color-primary: #c9714a;\n --color-primary-hover: #d4845f;\n --color-code-bg: #1a1a1a;\n --color-code-text: #e5e5e5;\n }\n @media (prefers-color-scheme: dark) {\n :root:not([data-theme=\"light\"]) {\n --color-bg: #141414;\n --color-bg-alt: #141414;\n --color-text: #e5e5e5;\n --color-text-muted: #a3a3a3;\n --color-border: #2a2a2a;\n --color-primary: #c9714a;\n --color-primary-hover: #d4845f;\n --color-code-bg: #1a1a1a;\n --color-code-text: #e5e5e5;\n }\n }\n * { box-sizing: border-box; margin: 0; padding: 0; }\n html { scroll-behavior: smooth; }\n body {\n font-family: var(--font-sans);\n line-height: 1.7;\n color: var(--color-text);\n background: var(--color-bg);\n }\n a { color: var(--color-primary); text-decoration: none; }\n a:hover { color: var(--color-primary-hover); text-decoration: underline; }\n\n /* Header */\n .header {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n height: var(--header-height);\n background: var(--color-bg);\n border-bottom: 1px solid var(--color-border);\n display: flex;\n align-items: center;\n padding: 0 1.5rem;\n z-index: 100;\n }\n .header-title {\n font-size: 1.25rem;\n font-weight: 600;\n color: var(--color-text);\n }\n .header-title:hover { text-decoration: none; }\n .menu-toggle {\n display: none;\n background: none;\n border: none;\n cursor: pointer;\n padding: 0.5rem;\n margin-right: 0.75rem;\n }\n .menu-toggle svg { display: block; }\n .menu-toggle path { stroke: var(--color-text); }\n .header-actions { margin-left: auto; display: flex; align-items: center; gap: 0.5rem; }\n .search-button {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.5rem 0.75rem;\n background: var(--color-bg-alt);\n border: 1px solid var(--color-border);\n border-radius: 6px;\n color: var(--color-text-muted);\n cursor: pointer;\n font-size: 0.875rem;\n transition: border-color 0.15s, color 0.15s;\n }\n .search-button:hover { border-color: var(--color-primary); color: var(--color-text); }\n .search-button svg { width: 16px; height: 16px; }\n .search-button kbd {\n padding: 0.125rem 0.375rem;\n background: var(--color-bg);\n border: 1px solid var(--color-border);\n border-radius: 4px;\n font-family: var(--font-mono);\n font-size: 0.75rem;\n }\n @media (max-width: 640px) {\n .search-button span, .search-button kbd { display: none; }\n .search-button { padding: 0.5rem; }\n }\n .search-modal-overlay {\n display: none;\n position: fixed;\n inset: 0;\n z-index: 200;\n background: rgba(0,0,0,0.6);\n backdrop-filter: blur(4px);\n justify-content: center;\n padding-top: 10vh;\n }\n .search-modal-overlay.open { display: flex; }\n .search-modal {\n width: 100%;\n max-width: 560px;\n margin: 0 1rem;\n background: var(--color-bg);\n border: 1px solid var(--color-border);\n border-radius: 12px;\n overflow: hidden;\n box-shadow: 0 25px 50px -12px rgba(0,0,0,0.4);\n max-height: 70vh;\n display: flex;\n flex-direction: column;\n }\n .search-header {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n padding: 1rem;\n border-bottom: 1px solid var(--color-border);\n }\n .search-header svg { flex-shrink: 0; color: var(--color-text-muted); }\n .search-input {\n flex: 1;\n background: none;\n border: none;\n outline: none;\n font-size: 1rem;\n color: var(--color-text);\n }\n .search-input::placeholder { color: var(--color-text-muted); }\n .search-close {\n padding: 0.25rem 0.5rem;\n background: var(--color-bg-alt);\n border: 1px solid var(--color-border);\n border-radius: 4px;\n color: var(--color-text-muted);\n font-family: var(--font-mono);\n font-size: 0.75rem;\n cursor: pointer;\n }\n .search-results {\n flex: 1;\n overflow-y: auto;\n padding: 0.5rem;\n }\n .search-result {\n display: block;\n padding: 0.75rem 1rem;\n border-radius: 8px;\n color: var(--color-text);\n text-decoration: none;\n }\n .search-result:hover, .search-result.selected { background: var(--color-bg-alt); text-decoration: none; }\n .search-result-title { font-weight: 600; font-size: 0.875rem; margin-bottom: 0.25rem; }\n .search-result-snippet { font-size: 0.8125rem; color: var(--color-text-muted); }\n .search-empty { padding: 2rem 1rem; text-align: center; color: var(--color-text-muted); }\n .search-footer {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 1rem;\n padding: 0.75rem 1rem;\n border-top: 1px solid var(--color-border);\n background: var(--color-bg-alt);\n font-size: 0.75rem;\n color: var(--color-text-muted);\n }\n .search-footer kbd {\n padding: 0.125rem 0.375rem;\n background: var(--color-bg);\n border: 1px solid var(--color-border);\n border-radius: 4px;\n font-family: var(--font-mono);\n }\n .theme-toggle {\n background: none;\n border: none;\n cursor: pointer;\n padding: 0.5rem;\n border-radius: 6px;\n color: var(--color-text-muted);\n transition: background 0.15s, color 0.15s;\n }\n .theme-toggle:hover { background: var(--color-bg-alt); color: var(--color-text); }\n .theme-toggle svg { display: block; width: 20px; height: 20px; }\n .theme-toggle .icon-sun { display: none; }\n .theme-toggle .icon-moon { display: block; }\n [data-theme=\"dark\"] .theme-toggle .icon-sun { display: block; }\n [data-theme=\"dark\"] .theme-toggle .icon-moon { display: none; }\n @media (prefers-color-scheme: dark) {\n :root:not([data-theme=\"light\"]) .theme-toggle .icon-sun { display: block; }\n :root:not([data-theme=\"light\"]) .theme-toggle .icon-moon { display: none; }\n }\n\n /* Layout */\n .layout {\n display: flex;\n padding-top: var(--header-height);\n min-height: 100vh;\n }\n\n /* Sidebar */\n .sidebar {\n position: fixed;\n top: var(--header-height);\n left: 0;\n bottom: 0;\n width: var(--sidebar-width);\n background: var(--color-bg-alt);\n border-right: 1px solid var(--color-border);\n overflow-y: auto;\n padding: 1.5rem 1rem;\n }\n .nav-section { margin-bottom: 1.5rem; }\n .nav-title {\n font-size: 0.75rem;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: var(--color-text-muted);\n margin-bottom: 0.5rem;\n padding: 0 0.75rem;\n }\n .nav-list { list-style: none; }\n .nav-item { margin: 0.125rem 0; }\n .nav-link {\n display: block;\n padding: 0.5rem 0.75rem;\n border-radius: 6px;\n color: var(--color-text);\n font-size: 0.875rem;\n transition: background 0.15s;\n }\n .nav-link:hover {\n background: var(--color-border);\n text-decoration: none;\n }\n .nav-link.active {\n background: var(--color-primary);\n color: white;\n }\n\n /* Main content */\n .main {\n flex: 1;\n margin-left: var(--sidebar-width);\n padding: 2rem;\n min-width: 0;\n overflow-x: hidden;\n }\n .content {\n max-width: var(--max-content-width);\n margin: 0 auto;\n overflow-wrap: break-word;\n word-wrap: break-word;\n word-break: break-word;\n }\n\n /* TOC (right sidebar) */\n .toc {\n position: fixed;\n top: calc(var(--header-height) + 2rem);\n right: 2rem;\n width: 200px;\n font-size: 0.8125rem;\n }\n .toc-title {\n font-weight: 600;\n margin-bottom: 0.75rem;\n color: var(--color-text-muted);\n }\n .toc-list { list-style: none; }\n .toc-item { margin: 0.375rem 0; }\n .toc-link {\n color: var(--color-text-muted);\n display: block;\n padding-left: calc((var(--depth, 1) - 1) * 0.75rem);\n }\n .toc-link:hover { color: var(--color-primary); }\n @media (max-width: 1200px) { .toc { display: none; } }\n\n /* Typography */\n .content h1 { font-size: 2.25rem; margin-bottom: 1rem; line-height: 1.2; }\n .content h2 { font-size: 1.5rem; margin-top: 2.5rem; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 1px solid var(--color-border); }\n .content h3 { font-size: 1.25rem; margin-top: 2rem; margin-bottom: 0.75rem; }\n .content h4 { font-size: 1rem; margin-top: 1.5rem; margin-bottom: 0.5rem; }\n .content p { margin-bottom: 1rem; }\n .content ul, .content ol { margin: 1rem 0; padding-left: 1.5rem; }\n .content li { margin: 0.375rem 0; }\n .content blockquote {\n border-left: 4px solid var(--color-primary);\n padding: 0.5rem 1rem;\n margin: 1rem 0;\n background: var(--color-bg-alt);\n border-radius: 0 6px 6px 0;\n }\n .content code {\n font-family: var(--font-mono);\n font-size: 0.875em;\n background: var(--color-bg-alt);\n padding: 0.2em 0.4em;\n border-radius: 4px;\n word-break: break-all;\n }\n .content pre {\n background: var(--color-code-bg);\n color: var(--color-code-text);\n padding: 1rem 1.25rem;\n border-radius: 8px;\n overflow-x: auto;\n margin: 1.5rem 0;\n line-height: 1.5;\n }\n .content pre code {\n background: transparent;\n padding: 0;\n font-size: 0.8125rem;\n }\n .content table {\n width: 100%;\n border-collapse: collapse;\n margin: 1.5rem 0;\n font-size: 0.875rem;\n }\n .content th, .content td {\n border: 1px solid var(--color-border);\n padding: 0.75rem 1rem;\n text-align: left;\n }\n .content th { background: var(--color-bg-alt); font-weight: 600; }\n .content img { max-width: 100%; height: auto; border-radius: 8px; display: block; }\n .content img[alt*=\"Logo\"] { max-width: 200px; display: block; margin: 1rem 0; }\n .content img[alt*=\"Architecture\"] { max-width: 600px; }\n .content img[alt*=\"Benchmark\"] { max-width: 680px; }\n .content hr { border: none; border-top: 1px solid var(--color-border); margin: 2rem 0; }\n\n /* Responsive */\n @media (max-width: 768px) {\n .menu-toggle { display: block; }\n .sidebar {\n transform: translateX(-100%);\n transition: transform 0.3s ease;\n z-index: 99;\n width: 280px;\n }\n .sidebar.open { transform: translateX(0); }\n .main { margin-left: 0; padding: 1rem 0.75rem; }\n .content { padding: 0 0.25rem; }\n .content h1 { font-size: 1.5rem; line-height: 1.3; margin-bottom: 0.75rem; }\n .content h2 { font-size: 1.2rem; margin-top: 2rem; }\n .content h3 { font-size: 1.1rem; }\n .content p { font-size: 0.9375rem; margin-bottom: 0.875rem; }\n .content ul, .content ol { padding-left: 1.25rem; font-size: 0.9375rem; }\n .content pre {\n padding: 0.75rem;\n font-size: 0.75rem;\n margin: 1rem -0.75rem;\n border-radius: 0;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .content code { font-size: 0.8125em; }\n .content table {\n display: block;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n font-size: 0.8125rem;\n margin: 1rem -0.75rem;\n width: calc(100% + 1.5rem);\n }\n .content th, .content td { padding: 0.5rem 0.75rem; white-space: nowrap; }\n .content img { margin: 1rem 0; }\n .content img[alt*=\"Logo\"] { max-width: 150px; }\n .content img[alt*=\"Architecture\"] { max-width: 100%; }\n .content img[alt*=\"Benchmark\"] { max-width: 100%; }\n .content blockquote { padding: 0.5rem 0.75rem; margin: 1rem 0; font-size: 0.9375rem; }\n .header { padding: 0 1rem; }\n .header-title { font-size: 1rem; }\n .header-title img { width: 24px; height: 24px; }\n .overlay {\n display: none;\n position: fixed;\n inset: 0;\n background: rgba(0,0,0,0.5);\n z-index: 98;\n }\n .overlay.open { display: block; }\n }\n\n /* Extra small devices */\n @media (max-width: 480px) {\n .main { padding: 0.75rem 0.5rem; }\n .content h1 { font-size: 1.35rem; }\n .content pre { font-size: 0.6875rem; padding: 0.625rem; }\n .content table { font-size: 0.75rem; }\n .content th, .content td { padding: 0.375rem 0.5rem; }\n }\n </style>\n</head>\n<body>\n <header class=\"header\">\n <button class=\"menu-toggle\" aria-label=\"Toggle menu\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\">\n <path d=\"M3 12h18M3 6h18M3 18h18\"/>\n </svg>\n </button>\n <a href=\"{{base}}index.html\" class=\"header-title\">\n <img src=\"{{base}}logo.svg\" alt=\"\" width=\"28\" height=\"28\" style=\"margin-right: 8px; vertical-align: middle;\" />\n {{siteName}}\n </a>\n <div class=\"header-actions\">\n <button class=\"search-button\" aria-label=\"Search\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\">\n <circle cx=\"11\" cy=\"11\" r=\"8\"/><path d=\"m21 21-4.3-4.3\"/>\n </svg>\n <span>Search</span>\n <kbd>/</kbd>\n </button>\n <button class=\"theme-toggle\" aria-label=\"Toggle theme\">\n <svg class=\"icon-sun\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\">\n <circle cx=\"12\" cy=\"12\" r=\"5\"/><path d=\"M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42\"/>\n </svg>\n <svg class=\"icon-moon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\">\n <path d=\"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z\"/>\n </svg>\n </button>\n </div>\n </header>\n <div class=\"search-modal-overlay\">\n <div class=\"search-modal\">\n <div class=\"search-header\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\">\n <circle cx=\"11\" cy=\"11\" r=\"8\"/><path d=\"m21 21-4.3-4.3\"/>\n </svg>\n <input type=\"text\" class=\"search-input\" placeholder=\"Search documentation...\" />\n <button class=\"search-close\">Esc</button>\n </div>\n <div class=\"search-results\"></div>\n <div class=\"search-footer\">\n <span><kbd>\u2191</kbd><kbd>\u2193</kbd> to navigate</span>\n <span><kbd>Enter</kbd> to select</span>\n <span><kbd>Esc</kbd> to close</span>\n </div>\n </div>\n </div>\n <div class=\"overlay\"></div>\n <div class=\"layout\">\n <aside class=\"sidebar\">\n <nav>\n{{navigation}}\n </nav>\n </aside>\n <main class=\"main\">\n <article class=\"content\">\n{{content}}\n </article>\n </main>\n{{#hasToc}}\n <aside class=\"toc\">\n <div class=\"toc-title\">On this page</div>\n <ul class=\"toc-list\">\n{{toc}}\n </ul>\n </aside>\n{{/hasToc}}\n </div>\n <script>\n // Menu toggle\n const toggle = document.querySelector('.menu-toggle');\n const sidebar = document.querySelector('.sidebar');\n const overlay = document.querySelector('.overlay');\n if (toggle && sidebar && overlay) {\n const close = () => { sidebar.classList.remove('open'); overlay.classList.remove('open'); };\n toggle.addEventListener('click', () => {\n sidebar.classList.toggle('open');\n overlay.classList.toggle('open');\n });\n overlay.addEventListener('click', close);\n sidebar.querySelectorAll('a').forEach(a => a.addEventListener('click', close));\n }\n\n // Theme toggle\n const themeToggle = document.querySelector('.theme-toggle');\n const getPreferredTheme = () => {\n const stored = localStorage.getItem('theme');\n if (stored) return stored;\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n };\n const setTheme = (theme) => {\n document.documentElement.setAttribute('data-theme', theme);\n localStorage.setItem('theme', theme);\n };\n // Initialize theme\n setTheme(getPreferredTheme());\n if (themeToggle) {\n themeToggle.addEventListener('click', () => {\n const current = document.documentElement.getAttribute('data-theme') || getPreferredTheme();\n setTheme(current === 'dark' ? 'light' : 'dark');\n });\n }\n\n // Search functionality\n const searchButton = document.querySelector('.search-button');\n const searchOverlay = document.querySelector('.search-modal-overlay');\n const searchInput = document.querySelector('.search-input');\n const searchResults = document.querySelector('.search-results');\n const searchClose = document.querySelector('.search-close');\n let searchIndex = null;\n let selectedIndex = 0;\n let results = [];\n\n const openSearch = () => {\n searchOverlay.classList.add('open');\n searchInput.focus();\n };\n const closeSearch = () => {\n searchOverlay.classList.remove('open');\n searchInput.value = '';\n searchResults.innerHTML = '';\n selectedIndex = 0;\n results = [];\n };\n\n // Load search index\n const loadSearchIndex = async () => {\n if (searchIndex) return;\n try {\n const res = await fetch('{{base}}search-index.json');\n searchIndex = await res.json();\n } catch (e) {\n console.warn('Failed to load search index:', e);\n }\n };\n\n // Tokenize query\n const tokenize = (text) => {\n const tokens = [];\n let current = '';\n for (const char of text) {\n const isCjk = /[\\u4E00-\\u9FFF\\u3400-\\u4DBF\\u3040-\\u309F\\u30A0-\\u30FF\\uAC00-\\uD7AF]/.test(char);\n if (isCjk) {\n if (current) { tokens.push(current.toLowerCase()); current = ''; }\n tokens.push(char);\n } else if (/[a-zA-Z0-9_]/.test(char)) {\n current += char;\n } else if (current) {\n tokens.push(current.toLowerCase());\n current = '';\n }\n }\n if (current) tokens.push(current.toLowerCase());\n return tokens;\n };\n\n // Perform search\n const performSearch = async (query) => {\n if (!query.trim()) {\n searchResults.innerHTML = '';\n results = [];\n return;\n }\n await loadSearchIndex();\n if (!searchIndex) {\n searchResults.innerHTML = '<div class=\"search-empty\">Search index not available</div>';\n return;\n }\n\n const tokens = tokenize(query);\n if (!tokens.length) {\n searchResults.innerHTML = '';\n results = [];\n return;\n }\n\n const k1 = 1.2, b = 0.75;\n const docScores = new Map();\n\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n const isLast = i === tokens.length - 1;\n let matchingTerms = [];\n if (isLast && token.length >= 2) {\n matchingTerms = Object.keys(searchIndex.index).filter(t => t.startsWith(token));\n } else if (searchIndex.index[token]) {\n matchingTerms = [token];\n }\n\n for (const term of matchingTerms) {\n const postings = searchIndex.index[term] || [];\n const df = searchIndex.df[term] || 1;\n const idf = Math.log((searchIndex.doc_count - df + 0.5) / (df + 0.5) + 1.0);\n\n for (const posting of postings) {\n const doc = searchIndex.documents[posting.doc_idx];\n if (!doc) continue;\n const boost = posting.field === 'Title' ? 10 : posting.field === 'Heading' ? 5 : 1;\n const tf = posting.tf;\n const docLen = doc.body.length;\n const score = idf * ((tf * (k1 + 1)) / (tf + k1 * (1 - b + b * docLen / searchIndex.avg_dl))) * boost;\n\n if (!docScores.has(posting.doc_idx)) {\n docScores.set(posting.doc_idx, { score: 0, matches: new Set() });\n }\n const entry = docScores.get(posting.doc_idx);\n entry.score += score;\n entry.matches.add(term);\n }\n }\n }\n\n results = Array.from(docScores.entries())\n .map(([docIdx, data]) => {\n const doc = searchIndex.documents[docIdx];\n let snippet = '';\n if (doc.body) {\n const bodyLower = doc.body.toLowerCase();\n let firstPos = -1;\n for (const match of data.matches) {\n const pos = bodyLower.indexOf(match);\n if (pos !== -1 && (firstPos === -1 || pos < firstPos)) firstPos = pos;\n }\n const start = Math.max(0, firstPos - 50);\n const end = Math.min(doc.body.length, start + 150);\n snippet = doc.body.slice(start, end);\n if (start > 0) snippet = '...' + snippet;\n if (end < doc.body.length) snippet += '...';\n }\n return { ...doc, score: data.score, snippet };\n })\n .sort((a, b) => b.score - a.score)\n .slice(0, 10);\n\n selectedIndex = 0;\n renderResults();\n };\n\n const renderResults = () => {\n if (!results.length) {\n searchResults.innerHTML = '<div class=\"search-empty\">No results found</div>';\n return;\n }\n searchResults.innerHTML = results.map((r, i) =>\n '<a href=\"' + r.url + '\" class=\"search-result' + (i === selectedIndex ? ' selected' : '') + '\">' +\n '<div class=\"search-result-title\">' + r.title + '</div>' +\n (r.snippet ? '<div class=\"search-result-snippet\">' + r.snippet + '</div>' : '') +\n '</a>'\n ).join('');\n };\n\n // Event listeners\n if (searchButton) searchButton.addEventListener('click', openSearch);\n if (searchClose) searchClose.addEventListener('click', closeSearch);\n if (searchOverlay) searchOverlay.addEventListener('click', (e) => { if (e.target === searchOverlay) closeSearch(); });\n\n let searchTimeout = null;\n if (searchInput) {\n searchInput.addEventListener('input', () => {\n if (searchTimeout) clearTimeout(searchTimeout);\n searchTimeout = setTimeout(() => performSearch(searchInput.value), 150);\n });\n searchInput.addEventListener('keydown', (e) => {\n if (e.key === 'Escape') closeSearch();\n else if (e.key === 'ArrowDown') {\n e.preventDefault();\n if (selectedIndex < results.length - 1) { selectedIndex++; renderResults(); }\n } else if (e.key === 'ArrowUp') {\n e.preventDefault();\n if (selectedIndex > 0) { selectedIndex--; renderResults(); }\n } else if (e.key === 'Enter' && results[selectedIndex]) {\n e.preventDefault();\n window.location.href = results[selectedIndex].url;\n }\n });\n }\n\n // Global keyboard shortcut (/ or Cmd+K)\n document.addEventListener('keydown', (e) => {\n if ((e.key === '/' && !(e.target instanceof HTMLInputElement)) ||\n ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === 'k')) {\n e.preventDefault();\n openSearch();\n }\n });\n </script>\n</body>\n</html>";
999
+ declare const DEFAULT_HTML_TEMPLATE = "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"UTF-8\">\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n <title>{{title}}{{#siteName}} - {{siteName}}{{/siteName}}</title>\n {{#description}}<meta name=\"description\" content=\"{{description}}\">{{/description}}\n <!-- Open Graph -->\n <meta property=\"og:type\" content=\"website\">\n <meta property=\"og:title\" content=\"{{title}}{{#siteName}} - {{siteName}}{{/siteName}}\">\n {{#description}}<meta property=\"og:description\" content=\"{{description}}\">{{/description}}\n {{#ogImage}}<meta property=\"og:image\" content=\"{{ogImage}}\">{{/ogImage}}\n <!-- Twitter Card -->\n {{#ogImage}}<meta name=\"twitter:card\" content=\"summary_large_image\">{{/ogImage}}\n {{^ogImage}}<meta name=\"twitter:card\" content=\"summary\">{{/ogImage}}\n <meta name=\"twitter:title\" content=\"{{title}}{{#siteName}} - {{siteName}}{{/siteName}}\">\n {{#description}}<meta name=\"twitter:description\" content=\"{{description}}\">{{/description}}\n {{#ogImage}}<meta name=\"twitter:image\" content=\"{{ogImage}}\">{{/ogImage}}\n <style>\n :root {\n --sidebar-width: 260px;\n --header-height: 60px;\n --max-content-width: 960px;\n --font-sans: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n --font-mono: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, Consolas, monospace;\n --color-bg: #ffffff;\n --color-bg-alt: #f8f9fa;\n --color-text: #1a1a1a;\n --color-text-muted: #666666;\n --color-border: #e5e7eb;\n --color-primary: #b7410e;\n --color-primary-hover: #ce5937;\n --color-code-bg: #1e293b;\n --color-code-text: #e2e8f0;\n }\n [data-theme=\"dark\"] {\n --color-bg: #141414;\n --color-bg-alt: #141414;\n --color-text: #e5e5e5;\n --color-text-muted: #a3a3a3;\n --color-border: #2a2a2a;\n --color-primary: #c9714a;\n --color-primary-hover: #d4845f;\n --color-code-bg: #1a1a1a;\n --color-code-text: #e5e5e5;\n }\n @media (prefers-color-scheme: dark) {\n :root:not([data-theme=\"light\"]) {\n --color-bg: #141414;\n --color-bg-alt: #141414;\n --color-text: #e5e5e5;\n --color-text-muted: #a3a3a3;\n --color-border: #2a2a2a;\n --color-primary: #c9714a;\n --color-primary-hover: #d4845f;\n --color-code-bg: #1a1a1a;\n --color-code-text: #e5e5e5;\n }\n }\n * { box-sizing: border-box; margin: 0; padding: 0; }\n html { scroll-behavior: smooth; }\n body {\n font-family: var(--font-sans);\n line-height: 1.7;\n color: var(--color-text);\n background: var(--color-bg);\n }\n a { color: var(--color-primary); text-decoration: none; }\n a:hover { color: var(--color-primary-hover); text-decoration: underline; }\n\n /* Header */\n .header {\n position: fixed;\n top: 0;\n left: 0;\n right: 0;\n height: var(--header-height);\n background: var(--color-bg);\n border-bottom: 1px solid var(--color-border);\n display: flex;\n align-items: center;\n padding: 0 1.5rem;\n z-index: 100;\n }\n .header-title {\n font-size: 1.25rem;\n font-weight: 600;\n color: var(--color-text);\n }\n .header-title:hover { text-decoration: none; }\n .menu-toggle {\n display: none;\n background: none;\n border: none;\n cursor: pointer;\n padding: 0.5rem;\n margin-right: 0.75rem;\n }\n .menu-toggle svg { display: block; }\n .menu-toggle path { stroke: var(--color-text); }\n .header-actions { margin-left: auto; display: flex; align-items: center; gap: 0.5rem; }\n .search-button {\n display: flex;\n align-items: center;\n gap: 0.5rem;\n padding: 0.5rem 0.75rem;\n background: var(--color-bg-alt);\n border: 1px solid var(--color-border);\n border-radius: 6px;\n color: var(--color-text-muted);\n cursor: pointer;\n font-size: 0.875rem;\n transition: border-color 0.15s, color 0.15s;\n }\n .search-button:hover { border-color: var(--color-primary); color: var(--color-text); }\n .search-button svg { width: 16px; height: 16px; }\n .search-button kbd {\n padding: 0.125rem 0.375rem;\n background: var(--color-bg);\n border: 1px solid var(--color-border);\n border-radius: 4px;\n font-family: var(--font-mono);\n font-size: 0.75rem;\n }\n @media (max-width: 640px) {\n .search-button span, .search-button kbd { display: none; }\n .search-button { padding: 0.5rem; }\n }\n .search-modal-overlay {\n display: none;\n position: fixed;\n inset: 0;\n z-index: 200;\n background: rgba(0,0,0,0.6);\n backdrop-filter: blur(4px);\n justify-content: center;\n padding-top: 10vh;\n }\n .search-modal-overlay.open { display: flex; }\n .search-modal {\n width: 100%;\n max-width: 560px;\n margin: 0 1rem;\n background: var(--color-bg);\n border: 1px solid var(--color-border);\n border-radius: 12px;\n overflow: hidden;\n box-shadow: 0 25px 50px -12px rgba(0,0,0,0.4);\n max-height: 70vh;\n display: flex;\n flex-direction: column;\n }\n .search-header {\n display: flex;\n align-items: center;\n gap: 0.75rem;\n padding: 1rem;\n border-bottom: 1px solid var(--color-border);\n }\n .search-header svg { flex-shrink: 0; color: var(--color-text-muted); }\n .search-input {\n flex: 1;\n background: none;\n border: none;\n outline: none;\n font-size: 1rem;\n color: var(--color-text);\n }\n .search-input::placeholder { color: var(--color-text-muted); }\n .search-close {\n padding: 0.25rem 0.5rem;\n background: var(--color-bg-alt);\n border: 1px solid var(--color-border);\n border-radius: 4px;\n color: var(--color-text-muted);\n font-family: var(--font-mono);\n font-size: 0.75rem;\n cursor: pointer;\n }\n .search-results {\n flex: 1;\n overflow-y: auto;\n padding: 0.5rem;\n }\n .search-result {\n display: block;\n padding: 0.75rem 1rem;\n border-radius: 8px;\n color: var(--color-text);\n text-decoration: none;\n }\n .search-result:hover, .search-result.selected { background: var(--color-bg-alt); text-decoration: none; }\n .search-result-title { font-weight: 600; font-size: 0.875rem; margin-bottom: 0.25rem; }\n .search-result-snippet { font-size: 0.8125rem; color: var(--color-text-muted); }\n .search-empty { padding: 2rem 1rem; text-align: center; color: var(--color-text-muted); }\n .search-footer {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 1rem;\n padding: 0.75rem 1rem;\n border-top: 1px solid var(--color-border);\n background: var(--color-bg-alt);\n font-size: 0.75rem;\n color: var(--color-text-muted);\n }\n .search-footer kbd {\n padding: 0.125rem 0.375rem;\n background: var(--color-bg);\n border: 1px solid var(--color-border);\n border-radius: 4px;\n font-family: var(--font-mono);\n }\n .theme-toggle {\n background: none;\n border: none;\n cursor: pointer;\n padding: 0.5rem;\n border-radius: 6px;\n color: var(--color-text-muted);\n transition: background 0.15s, color 0.15s;\n }\n .theme-toggle:hover { background: var(--color-bg-alt); color: var(--color-text); }\n .theme-toggle svg { display: block; width: 20px; height: 20px; }\n .theme-toggle .icon-sun { display: none; }\n .theme-toggle .icon-moon { display: block; }\n [data-theme=\"dark\"] .theme-toggle .icon-sun { display: block; }\n [data-theme=\"dark\"] .theme-toggle .icon-moon { display: none; }\n @media (prefers-color-scheme: dark) {\n :root:not([data-theme=\"light\"]) .theme-toggle .icon-sun { display: block; }\n :root:not([data-theme=\"light\"]) .theme-toggle .icon-moon { display: none; }\n }\n\n /* Layout */\n .layout {\n display: flex;\n padding-top: var(--header-height);\n min-height: 100vh;\n }\n\n /* Sidebar */\n .sidebar {\n position: fixed;\n top: var(--header-height);\n left: 0;\n bottom: 0;\n width: var(--sidebar-width);\n background: var(--color-bg-alt);\n border-right: 1px solid var(--color-border);\n overflow-y: auto;\n padding: 1.5rem 1rem;\n }\n .nav-section { margin-bottom: 1.5rem; }\n .nav-title {\n font-size: 0.75rem;\n font-weight: 600;\n text-transform: uppercase;\n letter-spacing: 0.05em;\n color: var(--color-text-muted);\n margin-bottom: 0.5rem;\n padding: 0 0.75rem;\n }\n .nav-list { list-style: none; }\n .nav-item { margin: 0.125rem 0; }\n .nav-link {\n display: block;\n padding: 0.5rem 0.75rem;\n border-radius: 6px;\n color: var(--color-text);\n font-size: 0.875rem;\n transition: background 0.15s;\n }\n .nav-link:hover {\n background: var(--color-border);\n text-decoration: none;\n }\n .nav-link.active {\n background: var(--color-primary);\n color: white;\n }\n\n /* Main content */\n .main {\n flex: 1;\n margin-left: var(--sidebar-width);\n padding: 2rem;\n min-width: 0;\n overflow-x: hidden;\n }\n .content {\n max-width: var(--max-content-width);\n margin: 0 auto;\n overflow-wrap: break-word;\n word-wrap: break-word;\n word-break: break-word;\n }\n\n /* TOC (right sidebar) */\n .toc {\n position: fixed;\n top: calc(var(--header-height) + 2rem);\n right: 2rem;\n width: 200px;\n font-size: 0.8125rem;\n }\n .toc-title {\n font-weight: 600;\n margin-bottom: 0.75rem;\n color: var(--color-text-muted);\n }\n .toc-list { list-style: none; }\n .toc-item { margin: 0.375rem 0; }\n .toc-link {\n color: var(--color-text-muted);\n display: block;\n padding-left: calc((var(--depth, 1) - 1) * 0.75rem);\n }\n .toc-link:hover { color: var(--color-primary); }\n @media (max-width: 1200px) { .toc { display: none; } }\n\n /* Typography */\n .content h1 { font-size: 2.25rem; margin-bottom: 1rem; line-height: 1.2; }\n .content h2 { font-size: 1.5rem; margin-top: 2.5rem; margin-bottom: 1rem; padding-bottom: 0.5rem; border-bottom: 1px solid var(--color-border); }\n .content h3 { font-size: 1.25rem; margin-top: 2rem; margin-bottom: 0.75rem; }\n .content h4 { font-size: 1rem; margin-top: 1.5rem; margin-bottom: 0.5rem; }\n .content p { margin-bottom: 1rem; }\n .content ul, .content ol { margin: 1rem 0; padding-left: 1.5rem; }\n .content li { margin: 0.375rem 0; }\n .content blockquote {\n border-left: 4px solid var(--color-primary);\n padding: 0.5rem 1rem;\n margin: 1rem 0;\n background: var(--color-bg-alt);\n border-radius: 0 6px 6px 0;\n }\n .content code {\n font-family: var(--font-mono);\n font-size: 0.875em;\n background: var(--color-bg-alt);\n padding: 0.2em 0.4em;\n border-radius: 4px;\n word-break: break-all;\n }\n .content pre {\n background: var(--color-code-bg);\n color: var(--color-code-text);\n padding: 1rem 1.25rem;\n border-radius: 8px;\n overflow-x: auto;\n margin: 1.5rem 0;\n line-height: 1.5;\n }\n .content pre code {\n background: transparent;\n padding: 0;\n font-size: 0.8125rem;\n }\n .content table {\n width: 100%;\n border-collapse: collapse;\n margin: 1.5rem 0;\n font-size: 0.875rem;\n }\n .content th, .content td {\n border: 1px solid var(--color-border);\n padding: 0.75rem 1rem;\n text-align: left;\n }\n .content th { background: var(--color-bg-alt); font-weight: 600; }\n .content img { max-width: 100%; height: auto; border-radius: 8px; display: block; }\n .content img[alt*=\"Logo\"] { max-width: 200px; display: block; margin: 1rem 0; }\n .content img[alt*=\"Architecture\"] { max-width: 600px; }\n .content img[alt*=\"Benchmark\"] { max-width: 680px; }\n .content hr { border: none; border-top: 1px solid var(--color-border); margin: 2rem 0; }\n\n /* Responsive */\n @media (max-width: 768px) {\n .menu-toggle { display: block; }\n .sidebar {\n transform: translateX(-100%);\n transition: transform 0.3s ease;\n z-index: 99;\n width: 280px;\n }\n .sidebar.open { transform: translateX(0); }\n .main { margin-left: 0; padding: 1rem 0.75rem; }\n .content { padding: 0 0.25rem; }\n .content h1 { font-size: 1.5rem; line-height: 1.3; margin-bottom: 0.75rem; }\n .content h2 { font-size: 1.2rem; margin-top: 2rem; }\n .content h3 { font-size: 1.1rem; }\n .content p { font-size: 0.9375rem; margin-bottom: 0.875rem; }\n .content ul, .content ol { padding-left: 1.25rem; font-size: 0.9375rem; }\n .content pre {\n padding: 0.75rem;\n font-size: 0.75rem;\n margin: 1rem -0.75rem;\n border-radius: 0;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n }\n .content code { font-size: 0.8125em; }\n .content table {\n display: block;\n overflow-x: auto;\n -webkit-overflow-scrolling: touch;\n font-size: 0.8125rem;\n margin: 1rem -0.75rem;\n width: calc(100% + 1.5rem);\n }\n .content th, .content td { padding: 0.5rem 0.75rem; white-space: nowrap; }\n .content img { margin: 1rem 0; }\n .content img[alt*=\"Logo\"] { max-width: 150px; }\n .content img[alt*=\"Architecture\"] { max-width: 100%; }\n .content img[alt*=\"Benchmark\"] { max-width: 100%; }\n .content blockquote { padding: 0.5rem 0.75rem; margin: 1rem 0; font-size: 0.9375rem; }\n .header { padding: 0 1rem; }\n .header-title { font-size: 1rem; }\n .header-title img { width: 24px; height: 24px; }\n .overlay {\n display: none;\n position: fixed;\n inset: 0;\n background: rgba(0,0,0,0.5);\n z-index: 98;\n }\n .overlay.open { display: block; }\n }\n\n /* Extra small devices */\n @media (max-width: 480px) {\n .main { padding: 0.75rem 0.5rem; }\n .content h1 { font-size: 1.35rem; }\n .content pre { font-size: 0.6875rem; padding: 0.625rem; }\n .content table { font-size: 0.75rem; }\n .content th, .content td { padding: 0.375rem 0.5rem; }\n }\n </style>\n</head>\n<body>\n <header class=\"header\">\n <button class=\"menu-toggle\" aria-label=\"Toggle menu\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke-width=\"2\" stroke-linecap=\"round\">\n <path d=\"M3 12h18M3 6h18M3 18h18\"/>\n </svg>\n </button>\n <a href=\"{{base}}index.html\" class=\"header-title\">\n <img src=\"{{base}}logo.svg\" alt=\"\" width=\"28\" height=\"28\" style=\"margin-right: 8px; vertical-align: middle;\" />\n {{siteName}}\n </a>\n <div class=\"header-actions\">\n <button class=\"search-button\" aria-label=\"Search\">\n <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\">\n <circle cx=\"11\" cy=\"11\" r=\"8\"/><path d=\"m21 21-4.3-4.3\"/>\n </svg>\n <span>Search</span>\n <kbd>/</kbd>\n </button>\n <button class=\"theme-toggle\" aria-label=\"Toggle theme\">\n <svg class=\"icon-sun\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\">\n <circle cx=\"12\" cy=\"12\" r=\"5\"/><path d=\"M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42\"/>\n </svg>\n <svg class=\"icon-moon\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\">\n <path d=\"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z\"/>\n </svg>\n </button>\n </div>\n </header>\n <div class=\"search-modal-overlay\">\n <div class=\"search-modal\">\n <div class=\"search-header\">\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\">\n <circle cx=\"11\" cy=\"11\" r=\"8\"/><path d=\"m21 21-4.3-4.3\"/>\n </svg>\n <input type=\"text\" class=\"search-input\" placeholder=\"Search documentation...\" />\n <button class=\"search-close\">Esc</button>\n </div>\n <div class=\"search-results\"></div>\n <div class=\"search-footer\">\n <span><kbd>\u2191</kbd><kbd>\u2193</kbd> to navigate</span>\n <span><kbd>Enter</kbd> to select</span>\n <span><kbd>Esc</kbd> to close</span>\n </div>\n </div>\n </div>\n <div class=\"overlay\"></div>\n <div class=\"layout\">\n <aside class=\"sidebar\">\n <nav>\n{{navigation}}\n </nav>\n </aside>\n <main class=\"main\">\n <article class=\"content\">\n{{content}}\n </article>\n </main>\n{{#hasToc}}\n <aside class=\"toc\">\n <div class=\"toc-title\">On this page</div>\n <ul class=\"toc-list\">\n{{toc}}\n </ul>\n </aside>\n{{/hasToc}}\n </div>\n <script>\n // Menu toggle\n const toggle = document.querySelector('.menu-toggle');\n const sidebar = document.querySelector('.sidebar');\n const overlay = document.querySelector('.overlay');\n if (toggle && sidebar && overlay) {\n const close = () => { sidebar.classList.remove('open'); overlay.classList.remove('open'); };\n toggle.addEventListener('click', () => {\n sidebar.classList.toggle('open');\n overlay.classList.toggle('open');\n });\n overlay.addEventListener('click', close);\n sidebar.querySelectorAll('a').forEach(a => a.addEventListener('click', close));\n }\n\n // Theme toggle\n const themeToggle = document.querySelector('.theme-toggle');\n const getPreferredTheme = () => {\n const stored = localStorage.getItem('theme');\n if (stored) return stored;\n return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';\n };\n const setTheme = (theme) => {\n document.documentElement.setAttribute('data-theme', theme);\n localStorage.setItem('theme', theme);\n };\n // Initialize theme\n setTheme(getPreferredTheme());\n if (themeToggle) {\n themeToggle.addEventListener('click', () => {\n const current = document.documentElement.getAttribute('data-theme') || getPreferredTheme();\n setTheme(current === 'dark' ? 'light' : 'dark');\n });\n }\n\n // Search functionality\n const searchButton = document.querySelector('.search-button');\n const searchOverlay = document.querySelector('.search-modal-overlay');\n const searchInput = document.querySelector('.search-input');\n const searchResults = document.querySelector('.search-results');\n const searchClose = document.querySelector('.search-close');\n let searchIndex = null;\n let selectedIndex = 0;\n let results = [];\n\n const openSearch = () => {\n searchOverlay.classList.add('open');\n searchInput.focus();\n };\n const closeSearch = () => {\n searchOverlay.classList.remove('open');\n searchInput.value = '';\n searchResults.innerHTML = '';\n selectedIndex = 0;\n results = [];\n };\n\n // Load search index\n const loadSearchIndex = async () => {\n if (searchIndex) return;\n try {\n const res = await fetch('{{base}}search-index.json');\n searchIndex = await res.json();\n } catch (e) {\n console.warn('Failed to load search index:', e);\n }\n };\n\n // Tokenize query\n const tokenize = (text) => {\n const tokens = [];\n let current = '';\n for (const char of text) {\n const isCjk = /[\\u4E00-\\u9FFF\\u3400-\\u4DBF\\u3040-\\u309F\\u30A0-\\u30FF\\uAC00-\\uD7AF]/.test(char);\n if (isCjk) {\n if (current) { tokens.push(current.toLowerCase()); current = ''; }\n tokens.push(char);\n } else if (/[a-zA-Z0-9_]/.test(char)) {\n current += char;\n } else if (current) {\n tokens.push(current.toLowerCase());\n current = '';\n }\n }\n if (current) tokens.push(current.toLowerCase());\n return tokens;\n };\n\n // Perform search\n const performSearch = async (query) => {\n if (!query.trim()) {\n searchResults.innerHTML = '';\n results = [];\n return;\n }\n await loadSearchIndex();\n if (!searchIndex) {\n searchResults.innerHTML = '<div class=\"search-empty\">Search index not available</div>';\n return;\n }\n\n const tokens = tokenize(query);\n if (!tokens.length) {\n searchResults.innerHTML = '';\n results = [];\n return;\n }\n\n const k1 = 1.2, b = 0.75;\n const docScores = new Map();\n\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n const isLast = i === tokens.length - 1;\n let matchingTerms = [];\n if (isLast && token.length >= 2) {\n matchingTerms = Object.keys(searchIndex.index).filter(t => t.startsWith(token));\n } else if (searchIndex.index[token]) {\n matchingTerms = [token];\n }\n\n for (const term of matchingTerms) {\n const postings = searchIndex.index[term] || [];\n const df = searchIndex.df[term] || 1;\n const idf = Math.log((searchIndex.doc_count - df + 0.5) / (df + 0.5) + 1.0);\n\n for (const posting of postings) {\n const doc = searchIndex.documents[posting.doc_idx];\n if (!doc) continue;\n const boost = posting.field === 'Title' ? 10 : posting.field === 'Heading' ? 5 : 1;\n const tf = posting.tf;\n const docLen = doc.body.length;\n const score = idf * ((tf * (k1 + 1)) / (tf + k1 * (1 - b + b * docLen / searchIndex.avg_dl))) * boost;\n\n if (!docScores.has(posting.doc_idx)) {\n docScores.set(posting.doc_idx, { score: 0, matches: new Set() });\n }\n const entry = docScores.get(posting.doc_idx);\n entry.score += score;\n entry.matches.add(term);\n }\n }\n }\n\n results = Array.from(docScores.entries())\n .map(([docIdx, data]) => {\n const doc = searchIndex.documents[docIdx];\n let snippet = '';\n if (doc.body) {\n const bodyLower = doc.body.toLowerCase();\n let firstPos = -1;\n for (const match of data.matches) {\n const pos = bodyLower.indexOf(match);\n if (pos !== -1 && (firstPos === -1 || pos < firstPos)) firstPos = pos;\n }\n const start = Math.max(0, firstPos - 50);\n const end = Math.min(doc.body.length, start + 150);\n snippet = doc.body.slice(start, end);\n if (start > 0) snippet = '...' + snippet;\n if (end < doc.body.length) snippet += '...';\n }\n return { ...doc, score: data.score, snippet };\n })\n .sort((a, b) => b.score - a.score)\n .slice(0, 10);\n\n selectedIndex = 0;\n renderResults();\n };\n\n const renderResults = () => {\n if (!results.length) {\n searchResults.innerHTML = '<div class=\"search-empty\">No results found</div>';\n return;\n }\n searchResults.innerHTML = results.map((r, i) =>\n '<a href=\"' + r.url + '\" class=\"search-result' + (i === selectedIndex ? ' selected' : '') + '\">' +\n '<div class=\"search-result-title\">' + r.title + '</div>' +\n (r.snippet ? '<div class=\"search-result-snippet\">' + r.snippet + '</div>' : '') +\n '</a>'\n ).join('');\n };\n\n // Event listeners\n if (searchButton) searchButton.addEventListener('click', openSearch);\n if (searchClose) searchClose.addEventListener('click', closeSearch);\n if (searchOverlay) searchOverlay.addEventListener('click', (e) => { if (e.target === searchOverlay) closeSearch(); });\n\n let searchTimeout = null;\n if (searchInput) {\n searchInput.addEventListener('input', () => {\n if (searchTimeout) clearTimeout(searchTimeout);\n searchTimeout = setTimeout(() => performSearch(searchInput.value), 150);\n });\n searchInput.addEventListener('keydown', (e) => {\n if (e.key === 'Escape') closeSearch();\n else if (e.key === 'ArrowDown') {\n e.preventDefault();\n if (selectedIndex < results.length - 1) { selectedIndex++; renderResults(); }\n } else if (e.key === 'ArrowUp') {\n e.preventDefault();\n if (selectedIndex > 0) { selectedIndex--; renderResults(); }\n } else if (e.key === 'Enter' && results[selectedIndex]) {\n e.preventDefault();\n window.location.href = results[selectedIndex].url;\n }\n });\n }\n\n // Global keyboard shortcut (/ or Cmd+K)\n document.addEventListener('keydown', (e) => {\n if ((e.key === '/' && !(e.target instanceof HTMLInputElement)) ||\n ((e.metaKey || e.ctrlKey) && e.key.toLowerCase() === 'k')) {\n e.preventDefault();\n openSearch();\n }\n });\n </script>\n</body>\n</html>";
993
1000
  /**
994
1001
  * Bare HTML template (no navigation, no styles).
995
1002
  */
@@ -1743,7 +1750,7 @@ interface ResolvedOgImageOptions {
1743
1750
  * Implements AsyncDisposable for automatic cleanup via `await using`.
1744
1751
  */
1745
1752
  interface OgBrowserSession extends AsyncDisposable {
1746
- renderPage(html: string, width: number, height: number): Promise<Buffer>;
1753
+ renderPage(html: string, width: number, height: number, publicDir?: string): Promise<Buffer>;
1747
1754
  }
1748
1755
  /**
1749
1756
  * Opens a Chromium browser and returns a session for rendering OG images.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","names":[],"sources":["../src/theme.ts","../src/types.ts","../src/environment.ts","../src/transform.ts","../src/docs.ts","../src/ssg.ts","../src/search.ts","../src/jsx-runtime.ts","../src/page-context.ts","../src/theme-renderer.ts","../src/plugins/tabs.ts","../src/plugins/youtube.ts","../src/plugins/github.ts","../src/plugins/ogp.ts","../src/plugins/mermaid.ts","../src/plugins/index.ts","../src/island/parse.ts","../src/og-image/types.ts","../src/og-image/browser.ts","../src/og-image/index.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","names":[],"sources":["../src/theme.ts","../src/types.ts","../src/environment.ts","../src/transform.ts","../src/docs.ts","../src/ssg.ts","../src/search.ts","../src/jsx-runtime.ts","../src/page-context.ts","../src/theme-renderer.ts","../src/plugins/tabs.ts","../src/plugins/youtube.ts","../src/plugins/github.ts","../src/plugins/ogp.ts","../src/plugins/mermaid.ts","../src/plugins/index.ts","../src/island/parse.ts","../src/og-image/types.ts","../src/og-image/browser.ts","../src/og-image/index.ts","../src/index.ts"],"sourcesContent":[],"mappings":"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"}