landing page updates
All checks were successful
Apply Kuberentes Configs / update-repo (push) Successful in 1s
Apply Kuberentes Configs / update-infrastructure (push) Successful in 4s
Apply Kuberentes Configs / notify-on-failure (push) Has been skipped

This commit is contained in:
2026-03-05 10:36:32 -07:00
parent a5e2ce944e
commit ab27bb1183
3 changed files with 7 additions and 36 deletions

View File

@@ -65,35 +65,6 @@
background-clip: text; background-clip: text;
} }
.hero-links {
display: flex;
gap: var(--space-xs);
justify-content: center;
flex-wrap: wrap;
}
.btn-primary {
padding: var(--space-2xs) var(--space-lg);
border-radius: var(--radius-md);
background: var(--color-success);
color: var(--color-white);
font-weight: 600;
font-size: var(--text-btn);
text-decoration: none;
transition: background 0.2s;
}
.btn-primary:hover { background: var(--color-success-hover); }
.btn-ghost {
padding: var(--space-2xs) var(--space-lg);
border-radius: var(--radius-md);
border: 1px solid var(--color-border-muted);
color: var(--color-text);
font-weight: 600;
font-size: var(--text-btn);
text-decoration: none;
transition: border-color 0.2s, background 0.2s;
}
.btn-ghost:hover { border-color: var(--color-accent); background: var(--color-accent-subtle); }
/* Projects section */ /* Projects section */
.projects-section { .projects-section {
max-width: 1100px; max-width: 1100px;

View File

@@ -5,10 +5,6 @@
<section class="hero"> <section class="hero">
<div class="hero-inner"> <div class="hero-inner">
<h1>Alex Mickelson</h1> <h1>Alex Mickelson</h1>
<div class="hero-links">
<a href="/explore/repos" class="btn-primary">Browse All Projects</a>
<a href="/user/login" class="btn-ghost">Sign In</a>
</div>
</div> </div>
</section> </section>

View File

@@ -87,9 +87,10 @@
card.href = esc(repoUrl); card.href = esc(repoUrl);
card.innerHTML = ` card.innerHTML = `
<div class="repo-card-header"> <div class="repo-card-header">
<span class="repo-icon">📦</span>
<span class="repo-name">${esc(shortName)}</span> <span class="repo-name">${esc(shortName)}</span>
</div> </div>
<div class="repo-desc" style="color:#8b949e;font-size:0.85em">${esc(repoName)}</div> <div class="repo-desc">${esc(repoName)}</div>
<div class="repo-commit"> <div class="repo-commit">
<span class="commit-dot"></span> <span class="commit-dot"></span>
<span class="commit-msg">${esc(commitMsg)}</span> <span class="commit-msg">${esc(commitMsg)}</span>
@@ -147,9 +148,12 @@
const description = item.querySelector('description')?.textContent || ''; const description = item.querySelector('description')?.textContent || '';
const when = pubDate ? timeAgo(pubDate) : ''; const when = pubDate ? timeAgo(pubDate) : '';
// Strip HTML from title for plain text display // Parse title HTML — Gitea only puts <a> tags in it, safe to use as innerHTML
const titleDoc = new DOMParser().parseFromString(title, 'text/html'); const titleDoc = new DOMParser().parseFromString(title, 'text/html');
const titleText = titleDoc.body.textContent || title; const titleText = titleDoc.body.textContent || title;
// Preserve links but strip any unsafe tags (only <a> expected from Gitea)
titleDoc.body.querySelectorAll('*:not(a)').forEach(el => el.replaceWith(el.textContent));
const titleHtmlSafe = titleDoc.body.innerHTML;
let icon = '⚡'; let icon = '⚡';
const t = titleText.toLowerCase(); const t = titleText.toLowerCase();
@@ -192,7 +196,7 @@
el.innerHTML = ` el.innerHTML = `
<div class="activity-op-icon">${icon}</div> <div class="activity-op-icon">${icon}</div>
<div class="activity-body"> <div class="activity-body">
<div class="activity-headline"><a href="${esc(link)}">${esc(titleText)}</a></div> <div class="activity-headline">${titleHtmlSafe}</div>
${commitsHtml} ${commitsHtml}
</div> </div>
<span class="activity-time">${when}</span> <span class="activity-time">${when}</span>