From 5ca1c080d344e95b013895a8ce8c0770fa89ec7d Mon Sep 17 00:00:00 2001 From: Max Litruv Boonzaayer Date: Thu, 30 Jan 2025 07:24:58 +1100 Subject: [PATCH] Refactor header branding to use an image logo; enhance internal link handling and clean up unused code --- img/logo.png | Bin 0 -> 38773 bytes index.html | 2 +- index.js | 55 --------------------------------------------------- styles.css | 13 +++++++----- 4 files changed, 9 insertions(+), 61 deletions(-) create mode 100644 img/logo.png diff --git a/img/logo.png b/img/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..67f8b9a2ed24805c11541d0f5d99187a9096eca7 GIT binary patch literal 38773 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html index 3da6cbb..68ae32c 100644 --- a/index.html +++ b/index.html @@ -27,7 +27,7 @@
- Litruv + / Documentation
diff --git a/index.js b/index.js index e3a095d..390a1f6 100644 --- a/index.js +++ b/index.js @@ -9,13 +9,9 @@ let markedPromise = new Promise((resolve) => { async function initializeMarked() { const marked = await markedPromise; - // Create a new renderer const renderer = new marked.Renderer(); - - // Store the original link renderer const originalLink = renderer.link.bind(renderer); - // Override the link renderer renderer.link = (href, title, text) => { const isExternal = href.startsWith('http') || href.startsWith('https'); const attrs = isExternal ? ' target="_blank" rel="noopener noreferrer"' : ''; @@ -26,7 +22,6 @@ async function initializeMarked() { return link.replace(/^ json > filename const titleContent = metadata.title || (docEntry && docEntry.title) || path.split('/').pop().replace('.md', ''); - // Process Obsidian internal links before adding the title let processedContent = content.replace(/\[\[(.*?)\]\]/g, (match, linkText) => { - // Skip image/media processing if (linkText.match(/\.(png|jpg|jpeg|gif|mp4|webm)$/i)) { return match; } @@ -281,7 +264,6 @@ async function loadDocument(path) { processedContent = `# ${titleContent}\n\n${processedContent}`; - // Process images/media after internal links const finalContent = processedContent.replace(/!\[\[(.*?)\]\]/g, (match, filename) => { const mediaPath = `${basePath}/images/${filename}`; @@ -295,33 +277,6 @@ async function loadDocument(path) { return `\n![${filename}](${mediaPath})\n\n`; }); - const description = metadata.description || `Documentation for ${titleContent}`; - const url = `${window.location.origin}${window.location.pathname}${window.location.search}`; - - document.title = `Litruv / ${titleContent}`; - document.querySelector('meta[name="description"]').setAttribute('content', description); - document.querySelector('meta[property="og:title"]').setAttribute('content', titleContent); - document.querySelector('meta[property="og:description"]').setAttribute('content', description); - document.querySelector('meta[property="og:url"]').setAttribute('content', url); - document.querySelector('meta[name="twitter:title"]').setAttribute('content', titleContent); - document.querySelector('meta[name="twitter:description"]').setAttribute('content', description); - - if (metadata.image) { - const imageUrl = `${window.location.origin}${window.location.pathname}${basePath}/images/${metadata.image}`; - document.querySelector('meta[property="og:image"]')?.remove(); - document.querySelector('meta[name="twitter:image"]')?.remove(); - - const ogImage = document.createElement('meta'); - ogImage.setAttribute('property', 'og:image'); - ogImage.setAttribute('content', imageUrl); - document.head.appendChild(ogImage); - - const twitterImage = document.createElement('meta'); - twitterImage.setAttribute('name', 'twitter:image'); - twitterImage.setAttribute('content', imageUrl); - document.head.appendChild(twitterImage); - } - document.title = `Litruv / ${titleContent}`; document.querySelector('.title-text .page-title').textContent = titleContent; @@ -342,11 +297,9 @@ async function loadDocument(path) { const link = document.createElement('a'); link.href = `${window.location.pathname}${window.location.search}#${heading.id}`; link.textContent = heading.textContent; - // Add non-zero indentation link.style.paddingLeft = (heading.tagName[1] * 15) + 'px'; headingLinks.set(heading, link); - // Add extra space to avoid scrolling beneath the header heading.style.scrollMarginTop = 'var(--title-bar-height)'; link.onclick = (e) => { @@ -365,7 +318,6 @@ async function loadDocument(path) { documentOutline.appendChild(link); }); - // Replace the existing observer with this refined version const observer = new IntersectionObserver((entries) => { const visibleHeadings = entries .filter(entry => entry.isIntersecting) @@ -383,11 +335,9 @@ async function loadDocument(path) { headings.forEach(heading => observer.observe(heading)); - // Clean up observer when loading new document return () => observer.disconnect(); } catch (error) { - console.error('Error loading document:', error); document.getElementById('document-content').innerHTML = '
Error loading document. Please try again.
'; } @@ -429,16 +379,13 @@ function setupMobileMenu() { } window.addEventListener('load', () => { - console.log('Window loaded, initializing...'); setupMobileMenu(); loadIndex().catch(error => { - console.error('Failed to initialize:', error); document.getElementById('document-content').innerHTML = '
Failed to load documentation. Please try refreshing the page.
'; }); }); -// Globally intercept clicks on internal links document.addEventListener('click', async (e) => { const target = e.target.closest('a[data-internal="true"]'); if (target) { @@ -448,8 +395,6 @@ document.addEventListener('click', async (e) => { const matchingDoc = findDocumentBySlug(indexData.documents, slug); if (matchingDoc) { await loadDocument(matchingDoc.path); - // Scroll to the top after loading - window.scrollTo({ top: 0, behavior: 'smooth' }); history.pushState(null, '', target.href); } } diff --git a/styles.css b/styles.css index 7246690..8030825 100644 --- a/styles.css +++ b/styles.css @@ -489,11 +489,14 @@ social-links a:hover { gap: 0.5rem; } -.title-text .brand { - color: var(--ifm-color-primary); - font-weight: 800; - letter-spacing: -0.01em; - font-size: 1.2rem; +.brand-logo { + height: 24px; + width: auto; + display: block; +} + +.title-text .divider { + padding: 0 0 0 10px; } .title-text .divider,