fix(a11y): sweep all remaining accent-600 contrast failures across all components, pages, CSS and JS
Bump all text-accent-600/dark:text-accent-400 to accent-700/300 for WCAG AA. Bluesky brand blue fixed: #0085ff -> #0057c7 (light) / keep #0085ff (dark). 37 files changed across widgets, sections, layouts, pages, CSS and JS. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -37,7 +37,7 @@
|
||||
{{ authorName }}
|
||||
</h1>
|
||||
{% if authorTitle %}
|
||||
<p class="text-lg sm:text-xl text-accent-600 dark:text-accent-400 mb-3 sm:mb-4">
|
||||
<p class="text-lg sm:text-xl text-accent-700 dark:text-accent-300 mb-3 sm:mb-4">
|
||||
{{ authorTitle }}
|
||||
</p>
|
||||
{% endif %}
|
||||
@@ -48,7 +48,7 @@
|
||||
{% endif %}
|
||||
{% if authorDescription %}
|
||||
<details class="mb-4 sm:mb-6">
|
||||
<summary class="text-sm font-medium text-accent-600 dark:text-accent-400 cursor-pointer hover:underline list-none">
|
||||
<summary class="text-sm font-medium text-accent-700 dark:text-accent-300 cursor-pointer hover:underline list-none">
|
||||
More about me ↓
|
||||
</summary>
|
||||
<p class="text-base sm:text-lg text-surface-700 dark:text-surface-300 mt-3">
|
||||
@@ -82,13 +82,13 @@
|
||||
<span>{{ cvOrg }}</span>
|
||||
{% endif %}
|
||||
{% if cvUrl %}
|
||||
<span><a href="{{ cvUrl }}" class="text-accent-600 dark:text-accent-400 hover:underline" target="_blank" rel="noopener">{{ cvUrl | replace("https://", "") | replace("http://", "") }}</a></span>
|
||||
<span><a href="{{ cvUrl }}" class="text-accent-700 dark:text-accent-300 hover:underline" target="_blank" rel="noopener">{{ cvUrl | replace("https://", "") | replace("http://", "") }}</a></span>
|
||||
{% endif %}
|
||||
{% if cvEmail %}
|
||||
<span><a href="mailto:{{ cvEmail }}" class="text-accent-600 dark:text-accent-400 hover:underline">{{ cvEmail }}</a></span>
|
||||
<span><a href="mailto:{{ cvEmail }}" class="text-accent-700 dark:text-accent-300 hover:underline">{{ cvEmail }}</a></span>
|
||||
{% endif %}
|
||||
{% if cvKeyUrl %}
|
||||
<span><a href="{{ cvKeyUrl }}" class="text-accent-600 dark:text-accent-400 hover:underline" target="_blank" rel="noopener">PGP Key</a></span>
|
||||
<span><a href="{{ cvKeyUrl }}" class="text-accent-700 dark:text-accent-300 hover:underline" target="_blank" rel="noopener">PGP Key</a></span>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
@@ -37,7 +37,7 @@
|
||||
>
|
||||
</a>
|
||||
<div>
|
||||
<a href="{{ authorUrl }}" class="u-url p-name font-bold text-lg block hover:text-accent-600 dark:hover:text-accent-400" itemprop="name">
|
||||
<a href="{{ authorUrl }}" class="u-url p-name font-bold text-lg block hover:text-accent-700 dark:hover:text-accent-300" itemprop="name">
|
||||
{{ authorName }}
|
||||
</a>
|
||||
{% if authorPronoun %}
|
||||
@@ -78,7 +78,7 @@
|
||||
<div class="mt-2 flex flex-wrap gap-3 text-sm">
|
||||
{% if authorEmail %}
|
||||
{# Display text obfuscated to deter spam harvesters; href kept plain for browser compatibility #}
|
||||
<a href="mailto:{{ authorEmail }}" class="u-email text-accent-600 dark:text-accent-400 hover:underline" itemprop="email" aria-label="Email {{ authorEmail }}">
|
||||
<a href="mailto:{{ authorEmail }}" class="u-email text-accent-700 dark:text-accent-300 hover:underline" itemprop="email" aria-label="Email {{ authorEmail }}">
|
||||
✉️ {{ authorEmail | obfuscateEmail | safe }}
|
||||
</a>
|
||||
{% endif %}
|
||||
@@ -106,7 +106,7 @@
|
||||
<a
|
||||
href="{{ link.url }}"
|
||||
rel="{{ link.rel }} noopener"
|
||||
class="u-url text-surface-600 dark:text-surface-400 hover:text-accent-600 dark:hover:text-accent-400 transition-colors"
|
||||
class="u-url text-surface-600 dark:text-surface-400 hover:text-accent-700 dark:hover:text-accent-300 transition-colors"
|
||||
aria-label="{{ link.name }} (opens in new tab)"
|
||||
target="_blank">
|
||||
{{ socialIcon(link.icon, "w-5 h-5") }}
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
{% else %}
|
||||
<div class="p-4 sm:p-5">
|
||||
<span class="text-[10px] sm:text-xs font-semibold uppercase tracking-wide text-surface-600 dark:text-surface-400 block mb-2">← Previous</span>
|
||||
<span class="text-sm sm:text-base font-medium text-surface-900 dark:text-surface-100 group-hover:text-accent-600 dark:group-hover:text-accent-400 line-clamp-2 transition-colors">
|
||||
<span class="text-sm sm:text-base font-medium text-surface-900 dark:text-surface-100 group-hover:text-accent-700 dark:group-hover:text-accent-300 line-clamp-2 transition-colors">
|
||||
{{ _prevTitle }}
|
||||
</span>
|
||||
<time class="text-xs text-surface-600 dark:text-surface-400 mt-1 block font-mono" datetime="{{ _prevPost.date | isoDate }}">{{ _prevPost.date | dateDisplay }}</time>
|
||||
@@ -86,7 +86,7 @@
|
||||
{% else %}
|
||||
<div class="p-4 sm:p-5 text-right">
|
||||
<span class="text-[10px] sm:text-xs font-semibold uppercase tracking-wide text-surface-600 dark:text-surface-400 block mb-2">Next →</span>
|
||||
<span class="text-sm sm:text-base font-medium text-surface-900 dark:text-surface-100 group-hover:text-accent-600 dark:group-hover:text-accent-400 line-clamp-2 transition-colors">
|
||||
<span class="text-sm sm:text-base font-medium text-surface-900 dark:text-surface-100 group-hover:text-accent-700 dark:group-hover:text-accent-300 line-clamp-2 transition-colors">
|
||||
{{ _nextTitle }}
|
||||
</span>
|
||||
<time class="text-xs text-surface-600 dark:text-surface-400 mt-1 block font-mono" datetime="{{ _nextPost.date | isoDate }}">{{ _nextPost.date | dateDisplay }}</time>
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
{{ post.templateContent | safe }}
|
||||
</div>
|
||||
{% endif %}
|
||||
<a class="u-url text-xs text-accent-600 dark:text-accent-400 hover:underline mt-2 inline-block" href="{{ post.url }}" aria-label="Permalink: {{ post.data.title or (post.date | dateDisplay) }}">Permalink</a>
|
||||
<a class="u-url text-xs text-accent-700 dark:text-accent-300 hover:underline mt-2 inline-block" href="{{ post.url }}" aria-label="Permalink: {{ post.data.title or (post.date | dateDisplay) }}">Permalink</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -89,7 +89,7 @@
|
||||
</div>
|
||||
{% if post.data.title %}
|
||||
<h3 class="p-name font-semibold mt-1">
|
||||
<a class="text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400 hover:underline" href="{{ post.url }}">{{ post.data.title }}</a>
|
||||
<a class="text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300 hover:underline" href="{{ post.url }}">{{ post.data.title }}</a>
|
||||
</h3>
|
||||
{% endif %}
|
||||
{{ bookmarkedUrl | unfurlCard | safe }}
|
||||
@@ -101,7 +101,7 @@
|
||||
{{ post.templateContent | safe }}
|
||||
</div>
|
||||
{% endif %}
|
||||
<a class="u-url text-xs text-accent-600 dark:text-accent-400 hover:underline mt-2 inline-block" href="{{ post.url }}" aria-label="Permalink: {{ post.data.title or (post.date | dateDisplay) }}">Permalink</a>
|
||||
<a class="u-url text-xs text-accent-700 dark:text-accent-300 hover:underline mt-2 inline-block" href="{{ post.url }}" aria-label="Permalink: {{ post.data.title or (post.date | dateDisplay) }}">Permalink</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -129,7 +129,7 @@
|
||||
{{ post.templateContent | safe }}
|
||||
</div>
|
||||
{% endif %}
|
||||
<a class="u-url text-xs text-accent-600 dark:text-accent-400 hover:underline mt-2 inline-block" href="{{ post.url }}" aria-label="Permalink: {{ post.data.title or (post.date | dateDisplay) }}">Permalink</a>
|
||||
<a class="u-url text-xs text-accent-700 dark:text-accent-300 hover:underline mt-2 inline-block" href="{{ post.url }}" aria-label="Permalink: {{ post.data.title or (post.date | dateDisplay) }}">Permalink</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -157,7 +157,7 @@
|
||||
{{ post.templateContent | safe }}
|
||||
</div>
|
||||
{% endif %}
|
||||
<a class="u-url text-xs text-accent-600 dark:text-accent-400 hover:underline mt-2 inline-block" href="{{ post.url }}" aria-label="Permalink: {{ post.data.title or (post.date | dateDisplay) }}">Permalink</a>
|
||||
<a class="u-url text-xs text-accent-700 dark:text-accent-300 hover:underline mt-2 inline-block" href="{{ post.url }}" aria-label="Permalink: {{ post.data.title or (post.date | dateDisplay) }}">Permalink</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -193,14 +193,14 @@
|
||||
{{ post.templateContent | safe }}
|
||||
</div>
|
||||
{% endif %}
|
||||
<a class="u-url text-xs text-accent-600 dark:text-accent-400 hover:underline mt-2 inline-block" href="{{ post.url }}" aria-label="Permalink: {{ post.data.title or (post.date | dateDisplay) }}">Permalink</a>
|
||||
<a class="u-url text-xs text-accent-700 dark:text-accent-300 hover:underline mt-2 inline-block" href="{{ post.url }}" aria-label="Permalink: {{ post.data.title or (post.date | dateDisplay) }}">Permalink</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% elif post.data.title %}
|
||||
{# ── Article/Page card ── #}
|
||||
<h3 class="p-name font-semibold mb-1">
|
||||
<a href="{{ post.url }}" class="u-url text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400 hover:underline">
|
||||
<a href="{{ post.url }}" class="u-url text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300 hover:underline">
|
||||
{{ post.data.title }}
|
||||
</a>
|
||||
</h3>
|
||||
@@ -239,7 +239,7 @@
|
||||
{{ post.templateContent | safe }}
|
||||
</div>
|
||||
{% endif %}
|
||||
<a href="{{ post.url }}" class="text-xs text-accent-600 dark:text-accent-400 hover:underline mt-2 inline-block" aria-label="Permalink: {{ post.data.title or (post.date | dateDisplay) }}">
|
||||
<a href="{{ post.url }}" class="text-xs text-accent-700 dark:text-accent-300 hover:underline mt-2 inline-block" aria-label="Permalink: {{ post.data.title or (post.date | dateDisplay) }}">
|
||||
Permalink
|
||||
</a>
|
||||
{% endif %}
|
||||
@@ -250,7 +250,7 @@
|
||||
|
||||
{% if collections.featuredPosts.length > maxItems %}
|
||||
<div class="mt-4 text-center">
|
||||
<a href="/featured/" class="inline-flex items-center gap-1 text-sm text-accent-600 dark:text-accent-400 hover:underline font-medium">
|
||||
<a href="/featured/" class="inline-flex items-center gap-1 text-sm text-accent-700 dark:text-accent-300 hover:underline font-medium">
|
||||
View all {{ collections.featuredPosts.length }} featured posts →
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -36,7 +36,7 @@
|
||||
{# Introduction #}
|
||||
<div class="flex-1 min-w-0">
|
||||
<h1 class="text-2xl sm:text-3xl md:text-4xl font-bold text-surface-900 dark:text-surface-100 mb-2">
|
||||
<a href="{{ authorUrl }}" class="p-name u-url u-uid hover:text-accent-600 dark:hover:text-accent-400" rel="me">{{ authorName }}</a>
|
||||
<a href="{{ authorUrl }}" class="p-name u-url u-uid hover:text-accent-700 dark:hover:text-accent-300" rel="me">{{ authorName }}</a>
|
||||
</h1>
|
||||
{% if authorTitle %}
|
||||
<p class="p-job-title text-lg sm:text-xl text-accent-700 dark:text-accent-300 mb-3 sm:mb-4">
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
{% set graphOptions = { limit: sectionConfig.limit } %}
|
||||
{% endif %}
|
||||
{% postGraph collections.posts, graphOptions %}
|
||||
<a href="/graph/" class="text-sm text-accent-600 dark:text-accent-400 hover:underline mt-4 inline-flex items-center gap-1">
|
||||
<a href="/graph/" class="text-sm text-accent-700 dark:text-accent-300 hover:underline mt-4 inline-flex items-center gap-1">
|
||||
View full history
|
||||
<svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"/>
|
||||
|
||||
@@ -327,7 +327,7 @@
|
||||
</ul>
|
||||
|
||||
{% if sectionConfig.showViewAll != false %}
|
||||
<a href="{{ sectionConfig.viewAllUrl or '/blog/' }}" class="text-sm text-accent-600 dark:text-accent-400 hover:underline mt-4 inline-flex items-center gap-1">
|
||||
<a href="{{ sectionConfig.viewAllUrl or '/blog/' }}" class="text-sm text-accent-700 dark:text-accent-300 hover:underline mt-4 inline-flex items-center gap-1">
|
||||
{{ sectionConfig.viewAllText or "View all posts" }}
|
||||
<svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"/>
|
||||
|
||||
@@ -168,7 +168,7 @@
|
||||
{% for mention in otherMentions %}
|
||||
<li>
|
||||
<a href="{{ mention.url }}"
|
||||
class="text-accent-600 dark:text-accent-400 hover:underline"
|
||||
class="text-accent-700 dark:text-accent-300 hover:underline"
|
||||
target="_blank"
|
||||
rel="noopener">
|
||||
{{ mention.author.name }} mentioned this on <time class="font-mono" datetime="{{ mention.published }}">{{ mention.published | date("MMM d, yyyy") }}</time>
|
||||
|
||||
@@ -18,11 +18,11 @@
|
||||
<div class="text-[10px] text-surface-600 dark:text-surface-400">Total</div>
|
||||
</div>
|
||||
<div class="text-center p-2 rounded-lg bg-surface-50 dark:bg-surface-800 border border-surface-200 dark:border-surface-700">
|
||||
<div class="text-lg font-bold text-amber-600 dark:text-amber-400">{{ stats.aiCount }}</div>
|
||||
<div class="text-lg font-bold text-amber-700 dark:text-amber-300">{{ stats.aiCount }}</div>
|
||||
<div class="text-[10px] text-surface-600 dark:text-surface-400">AI-involved</div>
|
||||
</div>
|
||||
<div class="text-center p-2 rounded-lg bg-surface-50 dark:bg-surface-800 border border-surface-200 dark:border-surface-700">
|
||||
<div class="text-lg font-bold text-emerald-600 dark:text-emerald-400">{{ stats.total - stats.aiCount }}</div>
|
||||
<div class="text-lg font-bold text-emerald-700 dark:text-emerald-300">{{ stats.total - stats.aiCount }}</div>
|
||||
<div class="text-[10px] text-surface-600 dark:text-surface-400">Human-only</div>
|
||||
</div>
|
||||
<div class="text-center p-2 rounded-lg bg-surface-50 dark:bg-surface-800 border border-surface-200 dark:border-surface-700">
|
||||
@@ -53,7 +53,7 @@
|
||||
{% postGraph aiPostsList, { prefix: "ai-widget", limit: 1, noLabels: true, boxColorDark: "#44403c", highlightColorLight: "#d97706", highlightColorDark: "#fbbf24" } %}
|
||||
{% endif %}
|
||||
|
||||
<a href="/ai/" class="text-sm text-amber-600 dark:text-amber-400 hover:underline flex items-center gap-1 mt-3">
|
||||
<a href="/ai/" class="text-sm text-amber-700 dark:text-amber-300 hover:underline flex items-center gap-1 mt-3">
|
||||
View full AI report
|
||||
<svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"/></svg>
|
||||
</a>
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
>
|
||||
</a>
|
||||
<div>
|
||||
<a href="{{ authorUrl }}" class="u-url p-name font-medium text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400 transition-colors">
|
||||
<a href="{{ authorUrl }}" class="u-url p-name font-medium text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300 transition-colors">
|
||||
{{ authorName }}
|
||||
</a>
|
||||
{% if authorTitle %}
|
||||
|
||||
@@ -2,10 +2,10 @@
|
||||
<is-land on:visible>
|
||||
<div class="widget" x-data="blogrollWidget()" x-init="init()">
|
||||
<h3 class="widget-title flex items-center gap-2">
|
||||
<svg class="w-5 h-5 text-accent-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<svg class="w-5 h-5 text-accent-700" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z"/>
|
||||
</svg>
|
||||
<a href="/blogroll/" class="hover:text-accent-600 dark:hover:text-accent-400">Blogroll</a>
|
||||
<a href="/blogroll/" class="hover:text-accent-700 dark:hover:text-accent-300">Blogroll</a>
|
||||
</h3>
|
||||
|
||||
{# Source tabs - only shown when multiple sources exist #}
|
||||
@@ -18,7 +18,7 @@
|
||||
aria-controls="blogroll-panel"
|
||||
@click="activeTab = tab.key"
|
||||
:class="activeTab === tab.key
|
||||
? 'border-b-2 border-accent-600 text-accent-600 dark:text-accent-400 dark:border-accent-400'
|
||||
? 'border-b-2 border-accent-600 text-accent-700 dark:text-accent-300 dark:border-accent-400'
|
||||
: 'text-surface-600 dark:text-surface-400 hover:text-surface-700 dark:hover:text-surface-300'"
|
||||
class="px-2 py-1 text-xs font-medium transition-colors -mb-px"
|
||||
x-text="tab.label + ' (' + tab.count + ')'"
|
||||
@@ -31,7 +31,7 @@
|
||||
<li>
|
||||
<a
|
||||
:href="blog.siteUrl || blog.feedUrl"
|
||||
class="flex items-center gap-2 text-sm text-surface-700 dark:text-surface-300 hover:text-accent-600 dark:hover:text-accent-400 hover:underline transition-colors"
|
||||
class="flex items-center gap-2 text-sm text-surface-700 dark:text-surface-300 hover:text-accent-700 dark:hover:text-accent-300 hover:underline transition-colors"
|
||||
target="_blank"
|
||||
rel="noopener"
|
||||
>
|
||||
@@ -48,7 +48,7 @@
|
||||
No blogs loaded yet.
|
||||
</div>
|
||||
|
||||
<a x-show="allBlogs.length > 0" href="/blogroll/" class="text-sm text-accent-600 dark:text-accent-400 hover:underline mt-3 inline-flex items-center gap-1">
|
||||
<a x-show="allBlogs.length > 0" href="/blogroll/" class="text-sm text-accent-700 dark:text-accent-300 hover:underline mt-3 inline-flex items-center gap-1">
|
||||
View all <span x-text="allBlogs.length"></span> blogs
|
||||
<svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"/></svg>
|
||||
</a>
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
<div class="flex gap-1 mb-4 border-b border-surface-200 dark:border-surface-700" role="tablist" aria-label="GitHub activity">
|
||||
<button
|
||||
@click="activeTab = 'commits'"
|
||||
:class="activeTab === 'commits' ? 'border-b-2 border-accent-500 text-accent-600 dark:text-accent-400' : 'text-surface-600 dark:text-surface-400 hover:text-surface-700 dark:hover:text-surface-300'"
|
||||
:class="activeTab === 'commits' ? 'border-b-2 border-accent-500 text-accent-700 dark:text-accent-300' : 'text-surface-600 dark:text-surface-400 hover:text-surface-700 dark:hover:text-surface-300'"
|
||||
:aria-selected="(activeTab === 'commits').toString()"
|
||||
role="tab" id="gh-tab-commits" aria-controls="gh-panel-commits"
|
||||
class="flex items-center gap-1.5 px-2 py-2 text-xs font-medium transition-colors -mb-px"
|
||||
@@ -36,7 +36,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="activeTab = 'repos'"
|
||||
:class="activeTab === 'repos' ? 'border-b-2 border-accent-500 text-accent-600 dark:text-accent-400' : 'text-surface-600 dark:text-surface-400 hover:text-surface-700 dark:hover:text-surface-300'"
|
||||
:class="activeTab === 'repos' ? 'border-b-2 border-accent-500 text-accent-700 dark:text-accent-300' : 'text-surface-600 dark:text-surface-400 hover:text-surface-700 dark:hover:text-surface-300'"
|
||||
:aria-selected="(activeTab === 'repos').toString()"
|
||||
role="tab" id="gh-tab-repos" aria-controls="gh-panel-repos"
|
||||
class="flex items-center gap-1.5 px-2 py-2 text-xs font-medium transition-colors -mb-px"
|
||||
@@ -45,7 +45,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="activeTab = 'featured'"
|
||||
:class="activeTab === 'featured' ? 'border-b-2 border-accent-500 text-accent-600 dark:text-accent-400' : 'text-surface-600 dark:text-surface-400 hover:text-surface-700 dark:hover:text-surface-300'"
|
||||
:class="activeTab === 'featured' ? 'border-b-2 border-accent-500 text-accent-700 dark:text-accent-300' : 'text-surface-600 dark:text-surface-400 hover:text-surface-700 dark:hover:text-surface-300'"
|
||||
:aria-selected="(activeTab === 'featured').toString()"
|
||||
role="tab" id="gh-tab-featured" aria-controls="gh-panel-featured"
|
||||
class="flex items-center gap-1.5 px-2 py-2 text-xs font-medium transition-colors -mb-px"
|
||||
@@ -54,7 +54,7 @@
|
||||
</button>
|
||||
<button
|
||||
@click="activeTab = 'prs'"
|
||||
:class="activeTab === 'prs' ? 'border-b-2 border-accent-500 text-accent-600 dark:text-accent-400' : 'text-surface-600 dark:text-surface-400 hover:text-surface-700 dark:hover:text-surface-300'"
|
||||
:class="activeTab === 'prs' ? 'border-b-2 border-accent-500 text-accent-700 dark:text-accent-300' : 'text-surface-600 dark:text-surface-400 hover:text-surface-700 dark:hover:text-surface-300'"
|
||||
:aria-selected="(activeTab === 'prs').toString()"
|
||||
role="tab" id="gh-tab-prs" aria-controls="gh-panel-prs"
|
||||
class="flex items-center gap-1.5 px-2 py-2 text-xs font-medium transition-colors -mb-px"
|
||||
@@ -175,7 +175,7 @@
|
||||
|
||||
{# Footer link #}
|
||||
{% if githubProfileUrl %}
|
||||
<a href="{{ githubProfileUrl }}" target="_blank" rel="noopener" class="text-sm text-accent-600 dark:text-accent-400 hover:underline mt-3 inline-flex items-center gap-1">
|
||||
<a href="{{ githubProfileUrl }}" target="_blank" rel="noopener" class="text-sm text-accent-700 dark:text-accent-300 hover:underline mt-3 inline-flex items-center gap-1">
|
||||
View on GitHub
|
||||
<svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/></svg>
|
||||
</a>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
{% set _bookmarkedUrl = _prevPost.data.bookmarkOf or _prevPost.data.bookmark_of %}
|
||||
{% set _repostedUrl = _prevPost.data.repostOf or _prevPost.data.repost_of %}
|
||||
{% set _replyToUrl = _prevPost.data.inReplyTo or _prevPost.data.in_reply_to %}
|
||||
<a href="{{ _prevPost.url }}" class="text-sm text-accent-600 dark:text-accent-400 hover:underline line-clamp-2 flex items-center gap-1.5">
|
||||
<a href="{{ _prevPost.url }}" class="text-sm text-accent-700 dark:text-accent-300 hover:underline line-clamp-2 flex items-center gap-1.5">
|
||||
{% if _likedUrl %}
|
||||
<svg class="w-3.5 h-3.5 text-red-500 flex-shrink-0" fill="currentColor" viewBox="0 0 24 24"><path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"/></svg>
|
||||
Liked {{ _likedUrl | replace("https://", "") | truncate(35) }}
|
||||
@@ -41,7 +41,7 @@
|
||||
{% set _bookmarkedUrl = _nextPost.data.bookmarkOf or _nextPost.data.bookmark_of %}
|
||||
{% set _repostedUrl = _nextPost.data.repostOf or _nextPost.data.repost_of %}
|
||||
{% set _replyToUrl = _nextPost.data.inReplyTo or _nextPost.data.in_reply_to %}
|
||||
<a href="{{ _nextPost.url }}" class="text-sm text-accent-600 dark:text-accent-400 hover:underline line-clamp-2 flex items-center gap-1.5">
|
||||
<a href="{{ _nextPost.url }}" class="text-sm text-accent-700 dark:text-accent-300 hover:underline line-clamp-2 flex items-center gap-1.5">
|
||||
{% if _likedUrl %}
|
||||
<svg class="w-3.5 h-3.5 text-red-500 flex-shrink-0" fill="currentColor" viewBox="0 0 24 24"><path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"/></svg>
|
||||
Liked {{ _likedUrl | replace("https://", "") | truncate(35) }}
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<span class="font-medium">{{ comment.author.name or "Anonymous" }}</span>
|
||||
<p class="text-surface-600 dark:text-surface-400 line-clamp-2">{{ comment.content.text | truncate(80) }}</p>
|
||||
{% if comment["comment-target"] %}
|
||||
<a href="{{ comment['comment-target'] }}" class="text-xs text-accent-600 dark:text-accent-400 hover:underline">View post</a>
|
||||
<a href="{{ comment['comment-target'] }}" class="text-xs text-accent-700 dark:text-accent-300 hover:underline">View post</a>
|
||||
{% endif %}
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
<div class="flex items-start gap-2">
|
||||
<svg class="w-4 h-4 text-red-500 flex-shrink-0 mt-0.5" fill="currentColor" viewBox="0 0 24 24" aria-hidden="true"><path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"/></svg>
|
||||
<div class="min-w-0">
|
||||
<a href="{{ post.url }}" class="text-sm text-red-600 dark:text-red-400 hover:underline break-all line-clamp-1">
|
||||
<a href="{{ post.url }}" class="text-sm text-red-700 dark:text-red-300 hover:underline break-all line-clamp-1">
|
||||
Liked {{ _likedUrl | replace("https://", "") | truncate(40) }}
|
||||
</a>
|
||||
<time class="text-xs text-surface-600 dark:text-surface-400 block font-mono" datetime="{{ (post.data.published or post.date) | isoDate }}">
|
||||
@@ -31,7 +31,7 @@
|
||||
<div class="flex items-start gap-2">
|
||||
<svg class="w-4 h-4 text-amber-500 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z"/></svg>
|
||||
<div class="min-w-0">
|
||||
<a href="{{ post.url }}" class="text-sm text-amber-600 dark:text-amber-400 hover:underline line-clamp-1">
|
||||
<a href="{{ post.url }}" class="text-sm text-amber-700 dark:text-amber-300 hover:underline line-clamp-1">
|
||||
{{ post.data.title or ("Bookmarked " + (_bookmarkedUrl | replace("https://", "") | truncate(35))) }}
|
||||
</a>
|
||||
<time class="text-xs text-surface-600 dark:text-surface-400 block font-mono" datetime="{{ (post.data.published or post.date) | isoDate }}">
|
||||
@@ -44,7 +44,7 @@
|
||||
<div class="flex items-start gap-2">
|
||||
<svg class="w-4 h-4 text-green-500 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"/></svg>
|
||||
<div class="min-w-0">
|
||||
<a href="{{ post.url }}" class="text-sm text-green-600 dark:text-green-400 hover:underline break-all line-clamp-1">
|
||||
<a href="{{ post.url }}" class="text-sm text-green-700 dark:text-green-300 hover:underline break-all line-clamp-1">
|
||||
Reposted {{ _repostedUrl | replace("https://", "") | truncate(40) }}
|
||||
</a>
|
||||
<time class="text-xs text-surface-600 dark:text-surface-400 block font-mono" datetime="{{ (post.data.published or post.date) | isoDate }}">
|
||||
@@ -57,7 +57,7 @@
|
||||
<div class="flex items-start gap-2">
|
||||
<svg class="w-4 h-4 text-sky-500 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 10h10a8 8 0 018 8v2M3 10l6 6m-6-6l6-6"/></svg>
|
||||
<div class="min-w-0">
|
||||
<a href="{{ post.url }}" class="text-sm text-sky-600 dark:text-sky-400 hover:underline line-clamp-1">
|
||||
<a href="{{ post.url }}" class="text-sm text-sky-700 dark:text-sky-300 hover:underline line-clamp-1">
|
||||
Reply to {{ _replyToUrl | replace("https://", "") | truncate(40) }}
|
||||
</a>
|
||||
<time class="text-xs text-surface-600 dark:text-surface-400 block font-mono" datetime="{{ (post.data.published or post.date) | isoDate }}">
|
||||
@@ -72,7 +72,7 @@
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/>
|
||||
</svg>
|
||||
<div class="min-w-0">
|
||||
<a href="{{ post.url }}" class="text-sm text-indigo-600 dark:text-indigo-400 hover:underline line-clamp-1">
|
||||
<a href="{{ post.url }}" class="text-sm text-indigo-700 dark:text-indigo-300 hover:underline line-clamp-1">
|
||||
{{ post.data.title }}
|
||||
</a>
|
||||
<time class="text-xs text-surface-600 dark:text-surface-400 block font-mono" datetime="{{ (post.data.published or post.date) | isoDate }}">
|
||||
@@ -87,7 +87,7 @@
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 8h10M7 12h4m1 8l-4-4H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-3l-4 4z"/>
|
||||
</svg>
|
||||
<div class="min-w-0">
|
||||
<a href="{{ post.url }}" class="text-sm text-teal-600 dark:text-teal-400 hover:underline line-clamp-1">
|
||||
<a href="{{ post.url }}" class="text-sm text-teal-700 dark:text-teal-300 hover:underline line-clamp-1">
|
||||
{{ post.templateContent | striptags | truncate(50) or "Note" }}
|
||||
</a>
|
||||
<time class="text-xs text-surface-600 dark:text-surface-400 block font-mono" datetime="{{ (post.data.published or post.date) | isoDate }}">
|
||||
@@ -100,7 +100,7 @@
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<a href="/blog/" class="text-sm text-accent-600 dark:text-accent-400 hover:underline mt-3 inline-block">
|
||||
<a href="/blog/" class="text-sm text-accent-700 dark:text-accent-300 hover:underline mt-3 inline-block">
|
||||
View all posts
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
<path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"/>
|
||||
</svg>
|
||||
<div class="min-w-0">
|
||||
<a href="{{ post.url }}" class="text-sm text-red-600 dark:text-red-400 hover:underline break-all line-clamp-1">
|
||||
<a href="{{ post.url }}" class="text-sm text-red-700 dark:text-red-300 hover:underline break-all line-clamp-1">
|
||||
Liked {{ likedUrl | replace("https://", "") | truncate(40) }}
|
||||
</a>
|
||||
<time class="text-xs text-surface-600 dark:text-surface-400 block font-mono" datetime="{{ (post.data.published or post.date) | isoDate }}">
|
||||
@@ -35,7 +35,7 @@
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z"/>
|
||||
</svg>
|
||||
<div class="min-w-0">
|
||||
<a href="{{ post.url }}" class="text-sm text-amber-600 dark:text-amber-400 hover:underline line-clamp-1">
|
||||
<a href="{{ post.url }}" class="text-sm text-amber-700 dark:text-amber-300 hover:underline line-clamp-1">
|
||||
{{ post.data.title or ("Bookmarked " + (bookmarkedUrl | replace("https://", "") | truncate(35))) }}
|
||||
</a>
|
||||
<time class="text-xs text-surface-600 dark:text-surface-400 block font-mono" datetime="{{ (post.data.published or post.date) | isoDate }}">
|
||||
@@ -50,7 +50,7 @@
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"/>
|
||||
</svg>
|
||||
<div class="min-w-0">
|
||||
<a href="{{ post.url }}" class="text-sm text-green-600 dark:text-green-400 hover:underline break-all line-clamp-1">
|
||||
<a href="{{ post.url }}" class="text-sm text-green-700 dark:text-green-300 hover:underline break-all line-clamp-1">
|
||||
Reposted {{ repostedUrl | replace("https://", "") | truncate(40) }}
|
||||
</a>
|
||||
<time class="text-xs text-surface-600 dark:text-surface-400 block font-mono" datetime="{{ (post.data.published or post.date) | isoDate }}">
|
||||
@@ -65,7 +65,7 @@
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 10h10a8 8 0 018 8v2M3 10l6 6m-6-6l6-6"/>
|
||||
</svg>
|
||||
<div class="min-w-0">
|
||||
<a href="{{ post.url }}" class="text-sm text-sky-600 dark:text-sky-400 hover:underline break-all line-clamp-1">
|
||||
<a href="{{ post.url }}" class="text-sm text-sky-700 dark:text-sky-300 hover:underline break-all line-clamp-1">
|
||||
Reply to {{ replyToUrl | replace("https://", "") | truncate(40) }}
|
||||
</a>
|
||||
<time class="text-xs text-surface-600 dark:text-surface-400 block font-mono" datetime="{{ (post.data.published or post.date) | isoDate }}">
|
||||
@@ -81,7 +81,7 @@
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z"/>
|
||||
</svg>
|
||||
<div class="min-w-0">
|
||||
<a href="{{ post.url }}" class="text-sm text-indigo-600 dark:text-indigo-400 hover:underline line-clamp-1">
|
||||
<a href="{{ post.url }}" class="text-sm text-indigo-700 dark:text-indigo-300 hover:underline line-clamp-1">
|
||||
{{ post.data.title }}
|
||||
</a>
|
||||
<time class="text-xs text-surface-600 dark:text-surface-400 block font-mono" datetime="{{ (post.data.published or post.date) | isoDate }}">
|
||||
@@ -97,7 +97,7 @@
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 8h10M7 12h4m1 8l-4-4H5a2 2 0 01-2-2V6a2 2 0 012-2h14a2 2 0 012 2v8a2 2 0 01-2 2h-3l-4 4z"/>
|
||||
</svg>
|
||||
<div class="min-w-0">
|
||||
<a href="{{ post.url }}" class="text-sm text-teal-600 dark:text-teal-400 hover:underline line-clamp-1">
|
||||
<a href="{{ post.url }}" class="text-sm text-teal-700 dark:text-teal-300 hover:underline line-clamp-1">
|
||||
{{ post.templateContent | striptags | truncate(50) or "Note" }}
|
||||
</a>
|
||||
<time class="text-xs text-surface-600 dark:text-surface-400 block font-mono" datetime="{{ (post.data.published or post.date) | isoDate }}">
|
||||
@@ -109,7 +109,7 @@
|
||||
</li>
|
||||
{% endfor %}
|
||||
</ul>
|
||||
<a href="/blog/" class="text-sm text-accent-600 dark:text-accent-400 hover:underline mt-3 block">
|
||||
<a href="/blog/" class="text-sm text-accent-700 dark:text-accent-300 hover:underline mt-3 block">
|
||||
View all posts
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
{% if blueskyFeed and blueskyFeed.length %}
|
||||
<button
|
||||
@click="activeTab = 'bluesky'"
|
||||
:class="activeTab === 'bluesky' ? 'border-b-2 border-[#0085ff] text-[#0085ff]' : 'text-surface-600 dark:text-surface-400 hover:text-surface-700 dark:hover:text-surface-300'"
|
||||
:class="activeTab === 'bluesky' ? 'border-b-2 border-[#0085ff] text-[#0057c7]' : 'text-surface-600 dark:text-surface-400 hover:text-surface-700 dark:hover:text-surface-300'"
|
||||
:aria-selected="(activeTab === 'bluesky').toString()"
|
||||
role="tab" id="social-tab-bluesky" aria-controls="social-panel-bluesky"
|
||||
class="flex items-center gap-1.5 px-3 py-2 text-sm font-medium transition-colors -mb-px"
|
||||
@@ -81,7 +81,7 @@
|
||||
{% endfor %}
|
||||
</ul>
|
||||
{% if blueskyProfileUrl %}
|
||||
<a href="{{ blueskyProfileUrl }}" target="_blank" rel="noopener" class="text-sm text-[#0085ff] hover:underline mt-3 inline-flex items-center gap-1">
|
||||
<a href="{{ blueskyProfileUrl }}" target="_blank" rel="noopener" class="text-sm text-[#0057c7] dark:text-[#0085ff] hover:underline mt-3 inline-flex items-center gap-1">
|
||||
View on Bluesky
|
||||
<svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/></svg>
|
||||
</a>
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
<ul class="space-y-1 text-sm">
|
||||
{% for item in toc %}
|
||||
<li class="{% if item.level == 3 %}ml-3{% elif item.level == 4 %}ml-6{% elif item.level == 5 %}ml-9{% elif item.level == 6 %}ml-12{% endif %}">
|
||||
<a href="#{{ item.slug }}" class="text-surface-600 dark:text-surface-400 hover:text-accent-600 dark:hover:text-accent-400 hover:underline transition-colors">
|
||||
<a href="#{{ item.slug }}" class="text-surface-600 dark:text-surface-400 hover:text-accent-700 dark:hover:text-accent-300 hover:underline transition-colors">
|
||||
{{ item.text }}
|
||||
</a>
|
||||
</li>
|
||||
@@ -46,7 +46,7 @@
|
||||
|
||||
const link = document.createElement("a");
|
||||
link.href = `#${heading.id}`;
|
||||
link.className = "text-surface-600 dark:text-surface-400 hover:text-accent-600 dark:hover:text-accent-400 hover:underline transition-colors";
|
||||
link.className = "text-surface-600 dark:text-surface-400 hover:text-accent-700 dark:hover:text-accent-300 hover:underline transition-colors";
|
||||
link.textContent = heading.textContent ? heading.textContent.trim() : heading.id;
|
||||
item.appendChild(link);
|
||||
fallbackList.appendChild(item);
|
||||
|
||||
@@ -14,14 +14,14 @@
|
||||
<div class="flex border-b border-surface-200 dark:border-surface-700 mb-3">
|
||||
<button
|
||||
@click="tab = 'inbound'"
|
||||
:class="tab === 'inbound' ? 'border-accent-500 text-accent-600 dark:text-accent-400' : 'border-transparent text-surface-600 dark:text-surface-400 hover:text-surface-700 dark:hover:text-surface-300'"
|
||||
:class="tab === 'inbound' ? 'border-accent-500 text-accent-700 dark:text-accent-300' : 'border-transparent text-surface-600 dark:text-surface-400 hover:text-surface-700 dark:hover:text-surface-300'"
|
||||
class="px-2 py-1.5 text-xs font-medium border-b-2 -mb-px transition-colors">
|
||||
Received
|
||||
<span x-show="mentions.length" x-text="mentions.length" class="ml-0.5 text-xs opacity-75"></span>
|
||||
</button>
|
||||
<button
|
||||
@click="tab = 'outbound'"
|
||||
:class="tab === 'outbound' ? 'border-accent-500 text-accent-600 dark:text-accent-400' : 'border-transparent text-surface-600 dark:text-surface-400 hover:text-surface-700 dark:hover:text-surface-300'"
|
||||
:class="tab === 'outbound' ? 'border-accent-500 text-accent-700 dark:text-accent-300' : 'border-transparent text-surface-600 dark:text-surface-400 hover:text-surface-700 dark:hover:text-surface-300'"
|
||||
class="px-2 py-1.5 text-xs font-medium border-b-2 -mb-px transition-colors">
|
||||
Sent
|
||||
</button>
|
||||
@@ -66,7 +66,7 @@
|
||||
|
||||
{# Link to full interactions page #}
|
||||
<div x-show="mentions.length > 0" class="mt-2 pt-2 border-t border-surface-200 dark:border-surface-700">
|
||||
<a href="/interactions/" class="text-xs text-accent-600 dark:text-accent-400 hover:underline">
|
||||
<a href="/interactions/" class="text-xs text-accent-700 dark:text-accent-300 hover:underline">
|
||||
View all →
|
||||
</a>
|
||||
</div>
|
||||
@@ -111,7 +111,7 @@
|
||||
{% endfor %}
|
||||
</div>
|
||||
<div class="mt-2 pt-2 border-t border-surface-200 dark:border-surface-700">
|
||||
<a href="/interactions/" class="text-xs text-accent-600 dark:text-accent-400 hover:underline">
|
||||
<a href="/interactions/" class="text-xs text-accent-700 dark:text-accent-300 hover:underline">
|
||||
View all →
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -90,7 +90,7 @@ withBlogSidebar: true
|
||||
{% if aiDescription %}
|
||||
<p class="mt-1 pl-5">{{ aiDescription }}</p>
|
||||
{% endif %}
|
||||
<p class="mt-1 pl-5"><a href="/ai/" class="hover:text-accent-600 dark:hover:text-accent-400 underline">Learn more about AI usage on this site</a></p>
|
||||
<p class="mt-1 pl-5"><a href="/ai/" class="hover:text-accent-700 dark:hover:text-accent-300 underline">Learn more about AI usage on this site</a></p>
|
||||
<div class="hidden">
|
||||
<span class="p-ai-text-level">{{ aiTextLevel }}</span>
|
||||
<span class="p-ai-code-level">{{ aiCodeLevel or "0" }}</span>
|
||||
|
||||
@@ -11,7 +11,7 @@ withSidebar: true
|
||||
Recent check-ins captured by this site via Micropub.
|
||||
</p>
|
||||
<p class="mt-2 text-sm">
|
||||
<a href="/been/" class="text-accent-600 hover:underline">See all past check-ins →</a>
|
||||
<a href="/been/" class="text-accent-700 hover:underline">See all past check-ins →</a>
|
||||
</p>
|
||||
{% if content %}
|
||||
<div class="prose prose-surface dark:prose-invert max-w-none mt-3">
|
||||
|
||||
@@ -17,7 +17,7 @@ eleventyExcludeFromCollections: true
|
||||
{{ site.author.name }}
|
||||
</h1>
|
||||
{% if site.author.title %}
|
||||
<p class="p-job-title text-xl text-accent-600 dark:text-accent-400 mb-2">
|
||||
<p class="p-job-title text-xl text-accent-700 dark:text-accent-300 mb-2">
|
||||
{{ site.author.title }}
|
||||
</p>
|
||||
{% endif %}
|
||||
|
||||
2
been.njk
2
been.njk
@@ -104,6 +104,6 @@ withSidebar: true
|
||||
<p class="text-surface-600 dark:text-surface-400">No past check-ins found.</p>
|
||||
{% endif %}
|
||||
<p class="mt-2 text-sm">
|
||||
<a href="/where/" class="text-accent-600 hover:underline">Back to newest check-in →</a>
|
||||
<a href="/where/" class="text-accent-700 hover:underline">Back to newest check-in →</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -54,7 +54,7 @@ eleventyComputed:
|
||||
<li class="h-entry post-card {{ borderClass }}">
|
||||
<div class="post-header">
|
||||
<h2 class="text-xl font-semibold mb-1 flex-1">
|
||||
<a class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400" href="{{ post.url }}">
|
||||
<a class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300" href="{{ post.url }}">
|
||||
{{ post.data.title or post.templateContent | striptags | truncate(60) or "Untitled" }}
|
||||
</a>
|
||||
</h2>
|
||||
@@ -68,7 +68,7 @@ eleventyComputed:
|
||||
<p class="p-summary text-surface-700 dark:text-surface-300 mt-3">
|
||||
{{ post.templateContent | striptags | truncate(250) }}
|
||||
</p>
|
||||
<a href="{{ post.url }}" class="text-sm text-accent-600 dark:text-accent-400 hover:underline mt-3 inline-block">
|
||||
<a href="{{ post.url }}" class="text-sm text-accent-700 dark:text-accent-300 hover:underline mt-3 inline-block">
|
||||
View →
|
||||
</a>
|
||||
</li>
|
||||
@@ -79,6 +79,6 @@ eleventyComputed:
|
||||
{% endif %}
|
||||
|
||||
<div class="mt-8">
|
||||
<a href="/categories/" class="text-accent-600 dark:text-accent-400 hover:underline">← All categories</a>
|
||||
<a href="/categories/" class="text-accent-700 dark:text-accent-300 hover:underline">← All categories</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -18,7 +18,7 @@ withSidebar: false
|
||||
<template x-for="tab in tabs" :key="tab.key">
|
||||
<button
|
||||
@click="activeTab = tab.key"
|
||||
:class="activeTab === tab.key ? 'border-b-2 border-accent-500 text-accent-600 dark:text-accent-400' : 'text-surface-600 dark:text-surface-400 hover:text-surface-700 dark:hover:text-surface-300'"
|
||||
:class="activeTab === tab.key ? 'border-b-2 border-accent-500 text-accent-700 dark:text-accent-300' : 'text-surface-600 dark:text-surface-400 hover:text-surface-700 dark:hover:text-surface-300'"
|
||||
:aria-selected="(activeTab === tab.key).toString()"
|
||||
role="tab"
|
||||
class="flex items-center gap-1.5 px-3 py-2 text-sm font-medium transition-colors -mb-px whitespace-nowrap flex-shrink-0"
|
||||
@@ -53,7 +53,7 @@ withSidebar: false
|
||||
<li class="bg-surface-50 dark:bg-surface-800 border border-surface-200 dark:border-surface-700 rounded-lg p-4 shadow-sm">
|
||||
<div class="flex items-start gap-3">
|
||||
<a :href="commit.url" target="_blank" rel="noopener"
|
||||
class="font-mono text-xs bg-surface-100 dark:bg-surface-800 px-1.5 py-0.5 rounded text-accent-600 dark:text-accent-400 hover:underline flex-shrink-0 mt-0.5"
|
||||
class="font-mono text-xs bg-surface-100 dark:bg-surface-800 px-1.5 py-0.5 rounded text-accent-700 dark:text-accent-300 hover:underline flex-shrink-0 mt-0.5"
|
||||
x-text="commit.sha"></a>
|
||||
<div class="min-w-0 flex-1">
|
||||
<p class="text-sm font-medium text-surface-900 dark:text-surface-100 break-words" x-text="commit.title"></p>
|
||||
@@ -64,7 +64,7 @@ withSidebar: false
|
||||
x-text="categoryLabels[commit.category] || commit.category"
|
||||
></span>
|
||||
<a :href="commit.repoUrl" target="_blank" rel="noopener"
|
||||
class="text-xs px-2 py-0.5 rounded-full bg-surface-100 dark:bg-surface-800 text-surface-600 dark:text-surface-400 hover:text-accent-600 dark:hover:text-accent-400"
|
||||
class="text-xs px-2 py-0.5 rounded-full bg-surface-100 dark:bg-surface-800 text-surface-600 dark:text-surface-400 hover:text-accent-700 dark:hover:text-accent-300"
|
||||
x-text="commit.repoName"></a>
|
||||
<span class="text-xs text-surface-600 dark:text-surface-400 font-mono" x-text="formatDate(commit.date)"></span>
|
||||
<span class="text-xs text-surface-600 dark:text-surface-400" x-text="'by ' + commit.author"></span>
|
||||
|
||||
@@ -292,7 +292,7 @@
|
||||
}
|
||||
|
||||
.site-footer a {
|
||||
@apply text-accent-600 dark:text-accent-400 hover:underline;
|
||||
@apply text-accent-700 dark:text-accent-300 hover:underline;
|
||||
}
|
||||
|
||||
/* Layout with sidebar - mobile-first with responsive grid */
|
||||
@@ -544,7 +544,7 @@
|
||||
}
|
||||
|
||||
.fab-menu-item {
|
||||
@apply flex items-center gap-3 px-4 py-3 rounded-lg bg-surface-50 dark:bg-surface-800 shadow-sm border border-surface-200 dark:border-surface-700 text-surface-700 dark:text-surface-200 hover:text-accent-600 dark:hover:text-accent-400 no-underline transition-all duration-150 text-sm font-medium;
|
||||
@apply flex items-center gap-3 px-4 py-3 rounded-lg bg-surface-50 dark:bg-surface-800 shadow-sm border border-surface-200 dark:border-surface-700 text-surface-700 dark:text-surface-200 hover:text-accent-700 dark:hover:text-accent-300 no-underline transition-all duration-150 text-sm font-medium;
|
||||
}
|
||||
|
||||
.fab-menu-divider {
|
||||
@@ -552,7 +552,7 @@
|
||||
}
|
||||
|
||||
.admin-nav-link {
|
||||
@apply text-accent-600 dark:text-accent-400 hover:text-accent-700 dark:hover:text-accent-300 no-underline transition-colors py-2 inline-flex items-center gap-1;
|
||||
@apply text-accent-700 dark:text-accent-300 hover:text-accent-700 dark:hover:text-accent-300 no-underline transition-colors py-2 inline-flex items-center gap-1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
10
cv.njk
10
cv.njk
@@ -51,7 +51,7 @@ pagefindIgnore: true
|
||||
{{ authorName }}
|
||||
</h1>
|
||||
{% if authorTitle %}
|
||||
<p class="text-lg sm:text-xl text-accent-600 dark:text-accent-400 mb-3 sm:mb-4">
|
||||
<p class="text-lg sm:text-xl text-accent-700 dark:text-accent-300 mb-3 sm:mb-4">
|
||||
{{ authorTitle }}
|
||||
</p>
|
||||
{% endif %}
|
||||
@@ -86,13 +86,13 @@ pagefindIgnore: true
|
||||
<span>{{ cvOrg }}</span>
|
||||
{% endif %}
|
||||
{% if cvUrl %}
|
||||
<span><a href="{{ cvUrl }}" class="text-accent-600 dark:text-accent-400 hover:underline" target="_blank" rel="noopener">{{ cvUrl | replace("https://", "") | replace("http://", "") }}</a></span>
|
||||
<span><a href="{{ cvUrl }}" class="text-accent-700 dark:text-accent-300 hover:underline" target="_blank" rel="noopener">{{ cvUrl | replace("https://", "") | replace("http://", "") }}</a></span>
|
||||
{% endif %}
|
||||
{% if cvEmail %}
|
||||
<span><a href="mailto:{{ cvEmail }}" class="text-accent-600 dark:text-accent-400 hover:underline">{{ cvEmail }}</a></span>
|
||||
<span><a href="mailto:{{ cvEmail }}" class="text-accent-700 dark:text-accent-300 hover:underline">{{ cvEmail }}</a></span>
|
||||
{% endif %}
|
||||
{% if cvKeyUrl %}
|
||||
<span><a href="{{ cvKeyUrl }}" class="text-accent-600 dark:text-accent-400 hover:underline" target="_blank" rel="noopener">PGP Key</a></span>
|
||||
<span><a href="{{ cvKeyUrl }}" class="text-accent-700 dark:text-accent-300 hover:underline" target="_blank" rel="noopener">PGP Key</a></span>
|
||||
{% endif %}
|
||||
</div>
|
||||
{% endif %}
|
||||
@@ -139,7 +139,7 @@ pagefindIgnore: true
|
||||
<h1 class="text-2xl font-bold text-surface-900 dark:text-surface-100 mb-4">CV</h1>
|
||||
<p class="text-surface-600 dark:text-surface-400">
|
||||
No CV data available yet. Add your experience, projects, and skills via the
|
||||
<a href="/dashboard" class="text-accent-600 dark:text-accent-400 hover:underline">admin dashboard</a>.
|
||||
<a href="/dashboard" class="text-accent-700 dark:text-accent-300 hover:underline">admin dashboard</a>.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@ permalink: "digest/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNumb
|
||||
{% for d in paginatedDigests %}
|
||||
<li class="p-4 bg-surface-50 dark:bg-surface-800 border border-surface-200 dark:border-surface-700 rounded-lg hover:border-amber-400 dark:hover:border-amber-600 transition-colors shadow-sm">
|
||||
<a href="/digest/{{ d.slug }}/" class="block">
|
||||
<h2 class="font-semibold text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400">
|
||||
<h2 class="font-semibold text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300">
|
||||
{{ d.label }}
|
||||
</h2>
|
||||
<p class="text-sm text-surface-600 dark:text-surface-400 mt-1">
|
||||
|
||||
12
digest.njk
12
digest.njk
@@ -49,7 +49,7 @@ permalink: "digest/{{ digest.slug }}/"
|
||||
<div class="flex items-start gap-2">
|
||||
<span class="text-red-500 flex-shrink-0">❤</span>
|
||||
<div>
|
||||
<a href="{{ targetUrl }}" class="text-accent-600 dark:text-accent-400 hover:underline break-all">{{ targetUrl }}</a>
|
||||
<a href="{{ targetUrl }}" class="text-accent-700 dark:text-accent-300 hover:underline break-all">{{ targetUrl }}</a>
|
||||
<div class="text-sm text-surface-600 dark:text-surface-400 mt-1">
|
||||
<time class="dt-published font-mono text-sm" datetime="{{ post.date | isoDate }}">{{ post.date | dateDisplay }}</time>
|
||||
· <a href="{{ post.url }}" class="hover:underline" aria-label="Permalink: {{ post.data.title or (post.date | dateDisplay) }}">Permalink</a>
|
||||
@@ -63,9 +63,9 @@ permalink: "digest/{{ digest.slug }}/"
|
||||
<span class="text-amber-500 flex-shrink-0">🔖</span>
|
||||
<div>
|
||||
{% if post.data.title %}
|
||||
<a href="{{ post.url }}" class="font-medium text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400">{{ post.data.title }}</a>
|
||||
<a href="{{ post.url }}" class="font-medium text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300">{{ post.data.title }}</a>
|
||||
{% else %}
|
||||
<a href="{{ targetUrl }}" class="text-accent-600 dark:text-accent-400 hover:underline break-all">{{ targetUrl }}</a>
|
||||
<a href="{{ targetUrl }}" class="text-accent-700 dark:text-accent-300 hover:underline break-all">{{ targetUrl }}</a>
|
||||
{% endif %}
|
||||
<div class="text-sm text-surface-600 dark:text-surface-400 mt-1">
|
||||
<time class="dt-published font-mono text-sm" datetime="{{ post.date | isoDate }}">{{ post.date | dateDisplay }}</time>
|
||||
@@ -79,7 +79,7 @@ permalink: "digest/{{ digest.slug }}/"
|
||||
<div class="flex items-start gap-2">
|
||||
<span class="text-green-500 flex-shrink-0">🔁</span>
|
||||
<div>
|
||||
<a href="{{ targetUrl }}" class="text-accent-600 dark:text-accent-400 hover:underline break-all">{{ targetUrl }}</a>
|
||||
<a href="{{ targetUrl }}" class="text-accent-700 dark:text-accent-300 hover:underline break-all">{{ targetUrl }}</a>
|
||||
<div class="text-sm text-surface-600 dark:text-surface-400 mt-1">
|
||||
<time class="dt-published font-mono text-sm" datetime="{{ post.date | isoDate }}">{{ post.date | dateDisplay }}</time>
|
||||
· <a href="{{ post.url }}" class="hover:underline" aria-label="Permalink: {{ post.data.title or (post.date | dateDisplay) }}">Permalink</a>
|
||||
@@ -99,7 +99,7 @@ permalink: "digest/{{ digest.slug }}/"
|
||||
</a>
|
||||
{% endif %}
|
||||
{% if post.data.title %}
|
||||
<a href="{{ post.url }}" class="font-medium text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400">{{ post.data.title }}</a>
|
||||
<a href="{{ post.url }}" class="font-medium text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300">{{ post.data.title }}</a>
|
||||
{% elif post.templateContent %}
|
||||
<p class="text-surface-700 dark:text-surface-300 text-sm">{{ post.templateContent | striptags | truncate(120) }}</p>
|
||||
{% endif %}
|
||||
@@ -111,7 +111,7 @@ permalink: "digest/{{ digest.slug }}/"
|
||||
|
||||
{% elif typeInfo.key == "articles" %}
|
||||
<div>
|
||||
<a href="{{ post.url }}" class="font-medium text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400">
|
||||
<a href="{{ post.url }}" class="font-medium text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300">
|
||||
{{ post.data.title | default("Untitled") }}
|
||||
</a>
|
||||
{% if post.templateContent %}
|
||||
|
||||
@@ -121,7 +121,7 @@ permalink: "featured/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNu
|
||||
{% if post.templateContent %}
|
||||
<p class="p-summary text-surface-700 dark:text-surface-300 mt-3">{{ post.templateContent | striptags | truncate(250) }}</p>
|
||||
{% endif %}
|
||||
<a href="{{ post.url }}" class="text-sm text-accent-600 dark:text-accent-400 hover:underline mt-3 inline-block">Read more →</a>
|
||||
<a href="{{ post.url }}" class="text-sm text-accent-700 dark:text-accent-300 hover:underline mt-3 inline-block">Read more →</a>
|
||||
|
||||
{% else %}
|
||||
{# ── Note ── #}
|
||||
@@ -137,7 +137,7 @@ permalink: "featured/{% if pagination.pageNumber > 0 %}page/{{ pagination.pageNu
|
||||
<div class="e-content prose dark:prose-invert prose-sm mt-3 max-w-none">{{ post.templateContent | safe }}</div>
|
||||
{% endif %}
|
||||
<div class="post-footer mt-3">
|
||||
<a href="{{ post.url }}" class="text-sm text-accent-600 dark:text-accent-400 hover:underline" aria-label="Permalink: {{ post.data.title or ('Post from ' + (post.date | dateDisplay)) }}">Permalink</a>
|
||||
<a href="{{ post.url }}" class="text-sm text-accent-700 dark:text-accent-300 hover:underline" aria-label="Permalink: {{ post.data.title or ('Post from ' + (post.date | dateDisplay)) }}">Permalink</a>
|
||||
</div>
|
||||
{% endif %}
|
||||
|
||||
|
||||
@@ -292,7 +292,7 @@
|
||||
dateLink.appendChild(timeEl);
|
||||
|
||||
const newBadge = document.createElement('span');
|
||||
newBadge.className = 'text-xs text-accent-600 dark:text-accent-400 font-medium';
|
||||
newBadge.className = 'text-xs text-accent-700 dark:text-accent-300 font-medium';
|
||||
newBadge.textContent = 'NEW';
|
||||
|
||||
headerDiv.appendChild(authorLink);
|
||||
@@ -343,13 +343,13 @@
|
||||
|
||||
const link = document.createElement('a');
|
||||
link.href = item.url || '#';
|
||||
link.className = 'text-accent-600 dark:text-accent-400 hover:underline';
|
||||
link.className = 'text-accent-700 dark:text-accent-300 hover:underline';
|
||||
link.target = '_blank';
|
||||
link.rel = 'noopener';
|
||||
link.textContent = `${author.name || 'Someone'} mentioned this on ${formatDate(published)}`;
|
||||
|
||||
const badge = document.createElement('span');
|
||||
badge.className = 'text-xs text-accent-600 dark:text-accent-400 font-medium ml-1';
|
||||
badge.className = 'text-xs text-accent-700 dark:text-accent-300 font-medium ml-1';
|
||||
badge.textContent = 'NEW';
|
||||
|
||||
li.appendChild(link);
|
||||
|
||||
14
news.njk
14
news.njk
@@ -12,7 +12,7 @@ withSidebar: true
|
||||
</p>
|
||||
<p class="text-xs text-surface-600 dark:text-surface-400 mt-2" x-show="lastUpdated">
|
||||
Last updated: <span class="font-mono" x-text="formatDate(lastUpdated, 'full')"></span>
|
||||
<button @click="refresh()" class="ml-2 text-accent-600 hover:text-accent-700 dark:text-accent-400 rounded" :disabled="loading" aria-label="Refresh news">
|
||||
<button @click="refresh()" class="ml-2 text-accent-700 hover:text-accent-700 dark:text-accent-300 rounded" :disabled="loading" aria-label="Refresh news">
|
||||
<svg class="w-3 h-3 inline" :class="{ 'animate-spin': loading }" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15"/>
|
||||
</svg>
|
||||
@@ -116,7 +116,7 @@ withSidebar: true
|
||||
</svg>
|
||||
Syncing...
|
||||
</div>
|
||||
<div x-show="loading && items.length > 0" class="flex items-center gap-2 text-accent-600 dark:text-accent-400 ml-auto">
|
||||
<div x-show="loading && items.length > 0" class="flex items-center gap-2 text-accent-700 dark:text-accent-300 ml-auto">
|
||||
<svg class="w-4 h-4 animate-spin" fill="none" viewBox="0 0 24 24">
|
||||
<circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle>
|
||||
<path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path>
|
||||
@@ -142,7 +142,7 @@ withSidebar: true
|
||||
<h2 class="font-semibold text-surface-900 dark:text-surface-100 mb-1">
|
||||
<a
|
||||
:href="item.link"
|
||||
class="hover:text-accent-600 dark:hover:text-accent-400"
|
||||
class="hover:text-accent-700 dark:hover:text-accent-300"
|
||||
target="_blank"
|
||||
rel="noopener"
|
||||
x-text="item.title || item.link"
|
||||
@@ -162,7 +162,7 @@ withSidebar: true
|
||||
<time class="font-mono text-sm" :datetime="item.pubDate" x-text="formatDate(item.pubDate)"></time>
|
||||
<span class="hidden sm:inline" x-show="item.categories?.length">
|
||||
<template x-for="cat in item.categories.slice(0, 3)" :key="cat">
|
||||
<span class="text-accent-600 dark:text-accent-400" x-text="'#' + cat"></span>
|
||||
<span class="text-accent-700 dark:text-accent-300" x-text="'#' + cat"></span>
|
||||
</template>
|
||||
</span>
|
||||
<button
|
||||
@@ -208,7 +208,7 @@ withSidebar: true
|
||||
<h2 class="font-semibold text-surface-900 dark:text-surface-100 mb-2 line-clamp-2">
|
||||
<a
|
||||
:href="item.link"
|
||||
class="hover:text-accent-600 dark:hover:text-accent-400"
|
||||
class="hover:text-accent-700 dark:hover:text-accent-300"
|
||||
target="_blank"
|
||||
rel="noopener"
|
||||
x-text="item.title || item.link"
|
||||
@@ -275,7 +275,7 @@ withSidebar: true
|
||||
<h2 class="text-xl sm:text-2xl font-bold text-surface-900 dark:text-surface-100 mb-4">
|
||||
<a
|
||||
:href="item.link"
|
||||
class="hover:text-accent-600 dark:hover:text-accent-400"
|
||||
class="hover:text-accent-700 dark:hover:text-accent-300"
|
||||
target="_blank"
|
||||
rel="noopener"
|
||||
x-text="item.title || item.link"
|
||||
@@ -319,7 +319,7 @@ withSidebar: true
|
||||
</button>
|
||||
<div x-show="item.categories?.length" class="flex flex-wrap gap-2">
|
||||
<template x-for="cat in item.categories" :key="cat">
|
||||
<span class="px-2 py-1 text-xs bg-accent-100 dark:bg-accent-900/30 text-accent-700 dark:text-accent-400 rounded-full" x-text="cat"></span>
|
||||
<span class="px-2 py-1 text-xs bg-accent-100 dark:bg-accent-900/30 text-accent-700 dark:text-accent-300 rounded-full" x-text="cat"></span>
|
||||
</template>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -14,7 +14,7 @@ pagefindIgnore: true
|
||||
<noscript>
|
||||
<div class="p-6 bg-surface-100 dark:bg-surface-800 rounded-lg mt-4">
|
||||
<p class="text-surface-700 dark:text-surface-300">Search requires JavaScript to be enabled. Please enable JavaScript in your browser settings to use the search feature.</p>
|
||||
<p class="text-surface-600 dark:text-surface-400 text-sm mt-2">Alternatively, you can browse content via the <a href="/blog/" class="text-accent-600 dark:text-accent-400 hover:underline">blog archive</a> or <a href="/categories/" class="text-accent-600 dark:text-accent-400 hover:underline">categories</a>.</p>
|
||||
<p class="text-surface-600 dark:text-surface-400 text-sm mt-2">Alternatively, you can browse content via the <a href="/blog/" class="text-accent-700 dark:text-accent-300 hover:underline">blog archive</a> or <a href="/categories/" class="text-accent-700 dark:text-accent-300 hover:underline">categories</a>.</p>
|
||||
</div>
|
||||
</noscript>
|
||||
|
||||
|
||||
46
slashes.njk
46
slashes.njk
@@ -10,7 +10,7 @@ eleventyImport:
|
||||
<div class="h-feed">
|
||||
<h1 class="text-2xl sm:text-3xl font-bold text-surface-900 dark:text-surface-100 mb-2">Slash Pages</h1>
|
||||
<p class="text-surface-600 dark:text-surface-400 mb-6 sm:mb-8">
|
||||
Root-level pages on this site. Inspired by <a href="https://slashpages.net" class="text-accent-600 dark:text-accent-400 hover:underline" target="_blank" rel="noopener">slashpages.net</a>.
|
||||
Root-level pages on this site. Inspired by <a href="https://slashpages.net" class="text-accent-700 dark:text-accent-300 hover:underline" target="_blank" rel="noopener">slashpages.net</a>.
|
||||
</p>
|
||||
|
||||
{# Dynamic pages (created via Indiekit) #}
|
||||
@@ -22,7 +22,7 @@ eleventyImport:
|
||||
<li class="h-entry post-card">
|
||||
<div class="post-header">
|
||||
<h3 class="text-xl font-semibold">
|
||||
<a href="{{ page.url }}" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400">
|
||||
<a href="{{ page.url }}" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300">
|
||||
/{{ page.fileSlug }}
|
||||
</a>
|
||||
</h3>
|
||||
@@ -72,7 +72,7 @@ eleventyImport:
|
||||
<li class="h-entry post-card">
|
||||
<div class="post-header">
|
||||
<h3 class="text-xl font-semibold">
|
||||
<a href="/blogroll/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400">/blogroll</a>
|
||||
<a href="/blogroll/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300">/blogroll</a>
|
||||
</h3>
|
||||
</div>
|
||||
<p class="text-surface-600 dark:text-surface-400 mt-2">Sites I follow</p>
|
||||
@@ -82,7 +82,7 @@ eleventyImport:
|
||||
<li class="h-entry post-card">
|
||||
<div class="post-header">
|
||||
<h3 class="text-xl font-semibold">
|
||||
<a href="/funkwhale/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400">/funkwhale</a>
|
||||
<a href="/funkwhale/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300">/funkwhale</a>
|
||||
</h3>
|
||||
</div>
|
||||
<p class="text-surface-600 dark:text-surface-400 mt-2">Funkwhale activity</p>
|
||||
@@ -92,7 +92,7 @@ eleventyImport:
|
||||
<li class="h-entry post-card">
|
||||
<div class="post-header">
|
||||
<h3 class="text-xl font-semibold">
|
||||
<a href="/github/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400">/github</a>
|
||||
<a href="/github/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300">/github</a>
|
||||
</h3>
|
||||
</div>
|
||||
<p class="text-surface-600 dark:text-surface-400 mt-2">GitHub activity</p>
|
||||
@@ -102,7 +102,7 @@ eleventyImport:
|
||||
<li class="h-entry post-card">
|
||||
<div class="post-header">
|
||||
<h3 class="text-xl font-semibold">
|
||||
<a href="/listening/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400">/listening</a>
|
||||
<a href="/listening/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300">/listening</a>
|
||||
</h3>
|
||||
</div>
|
||||
<p class="text-surface-600 dark:text-surface-400 mt-2">Last.fm scrobbles</p>
|
||||
@@ -112,7 +112,7 @@ eleventyImport:
|
||||
<li class="h-entry post-card">
|
||||
<div class="post-header">
|
||||
<h3 class="text-xl font-semibold">
|
||||
<a href="/news/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400">/news</a>
|
||||
<a href="/news/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300">/news</a>
|
||||
</h3>
|
||||
</div>
|
||||
<p class="text-surface-600 dark:text-surface-400 mt-2">RSS feed aggregator</p>
|
||||
@@ -122,7 +122,7 @@ eleventyImport:
|
||||
<li class="h-entry post-card">
|
||||
<div class="post-header">
|
||||
<h3 class="text-xl font-semibold">
|
||||
<a href="/podroll/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400">/podroll</a>
|
||||
<a href="/podroll/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300">/podroll</a>
|
||||
</h3>
|
||||
</div>
|
||||
<p class="text-surface-600 dark:text-surface-400 mt-2">Podcasts I listen to</p>
|
||||
@@ -132,7 +132,7 @@ eleventyImport:
|
||||
<li class="h-entry post-card">
|
||||
<div class="post-header">
|
||||
<h3 class="text-xl font-semibold">
|
||||
<a href="/youtube/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400">/youtube</a>
|
||||
<a href="/youtube/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300">/youtube</a>
|
||||
</h3>
|
||||
</div>
|
||||
<p class="text-surface-600 dark:text-surface-400 mt-2">YouTube channel</p>
|
||||
@@ -152,7 +152,7 @@ eleventyImport:
|
||||
<li class="h-entry post-card">
|
||||
<div class="post-header">
|
||||
<h3 class="text-xl font-semibold">
|
||||
<a href="/blog/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400">/blog</a>
|
||||
<a href="/blog/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300">/blog</a>
|
||||
</h3>
|
||||
</div>
|
||||
<p class="text-surface-600 dark:text-surface-400 mt-2">All posts chronologically</p>
|
||||
@@ -160,7 +160,7 @@ eleventyImport:
|
||||
<li class="h-entry post-card">
|
||||
<div class="post-header">
|
||||
<h3 class="text-xl font-semibold">
|
||||
<a href="/til/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400">/til</a>
|
||||
<a href="/til/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300">/til</a>
|
||||
</h3>
|
||||
</div>
|
||||
<p class="text-surface-600 dark:text-surface-400 mt-2">Today I Learned — small things learnt day to day</p>
|
||||
@@ -168,7 +168,7 @@ eleventyImport:
|
||||
<li class="h-entry post-card">
|
||||
<div class="post-header">
|
||||
<h3 class="text-xl font-semibold">
|
||||
<a href="/cv/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400">/cv</a>
|
||||
<a href="/cv/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300">/cv</a>
|
||||
</h3>
|
||||
</div>
|
||||
<p class="text-surface-600 dark:text-surface-400 mt-2">Curriculum vitae</p>
|
||||
@@ -176,7 +176,7 @@ eleventyImport:
|
||||
<li class="h-entry post-card">
|
||||
<div class="post-header">
|
||||
<h3 class="text-xl font-semibold">
|
||||
<a href="/changelog/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400">/changelog</a>
|
||||
<a href="/changelog/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300">/changelog</a>
|
||||
</h3>
|
||||
</div>
|
||||
<p class="text-surface-600 dark:text-surface-400 mt-2">Site changes and updates</p>
|
||||
@@ -184,7 +184,7 @@ eleventyImport:
|
||||
<li class="h-entry post-card">
|
||||
<div class="post-header">
|
||||
<h3 class="text-xl font-semibold">
|
||||
<a href="/digest/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400">/digest</a>
|
||||
<a href="/digest/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300">/digest</a>
|
||||
</h3>
|
||||
</div>
|
||||
<p class="text-surface-600 dark:text-surface-400 mt-2">Content digest</p>
|
||||
@@ -192,7 +192,7 @@ eleventyImport:
|
||||
<li class="h-entry post-card">
|
||||
<div class="post-header">
|
||||
<h3 class="text-xl font-semibold">
|
||||
<a href="/featured/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400">/featured</a>
|
||||
<a href="/featured/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300">/featured</a>
|
||||
</h3>
|
||||
</div>
|
||||
<p class="text-surface-600 dark:text-surface-400 mt-2">Featured posts</p>
|
||||
@@ -200,7 +200,7 @@ eleventyImport:
|
||||
<li class="h-entry post-card">
|
||||
<div class="post-header">
|
||||
<h3 class="text-xl font-semibold">
|
||||
<a href="/graph/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400">/graph</a>
|
||||
<a href="/graph/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300">/graph</a>
|
||||
</h3>
|
||||
</div>
|
||||
<p class="text-surface-600 dark:text-surface-400 mt-2">Content graph visualization</p>
|
||||
@@ -208,7 +208,7 @@ eleventyImport:
|
||||
<li class="h-entry post-card">
|
||||
<div class="post-header">
|
||||
<h3 class="text-xl font-semibold">
|
||||
<a href="/interactions/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400">/interactions</a>
|
||||
<a href="/interactions/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300">/interactions</a>
|
||||
</h3>
|
||||
</div>
|
||||
<p class="text-surface-600 dark:text-surface-400 mt-2">Social interactions (likes, reposts, replies)</p>
|
||||
@@ -216,7 +216,7 @@ eleventyImport:
|
||||
<li class="h-entry post-card">
|
||||
<div class="post-header">
|
||||
<h3 class="text-xl font-semibold">
|
||||
<a href="/where/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400">/where</a>
|
||||
<a href="/where/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300">/where</a>
|
||||
</h3>
|
||||
</div>
|
||||
<p class="text-surface-600 dark:text-surface-400 mt-2">Location check-ins</p>
|
||||
@@ -224,7 +224,7 @@ eleventyImport:
|
||||
<li class="h-entry post-card">
|
||||
<div class="post-header">
|
||||
<h3 class="text-xl font-semibold">
|
||||
<a href="/been/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400">/been</a>
|
||||
<a href="/been/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300">/been</a>
|
||||
</h3>
|
||||
</div>
|
||||
<p class="text-surface-600 dark:text-surface-400 mt-2">Past check-ins</p>
|
||||
@@ -232,7 +232,7 @@ eleventyImport:
|
||||
<li class="h-entry post-card">
|
||||
<div class="post-header">
|
||||
<h3 class="text-xl font-semibold">
|
||||
<a href="/readlater/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400">/readlater</a>
|
||||
<a href="/readlater/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300">/readlater</a>
|
||||
</h3>
|
||||
</div>
|
||||
<p class="text-surface-600 dark:text-surface-400 mt-2">Read later queue</p>
|
||||
@@ -240,7 +240,7 @@ eleventyImport:
|
||||
<li class="h-entry post-card">
|
||||
<div class="post-header">
|
||||
<h3 class="text-xl font-semibold">
|
||||
<a href="/search/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400">/search</a>
|
||||
<a href="/search/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300">/search</a>
|
||||
</h3>
|
||||
</div>
|
||||
<p class="text-surface-600 dark:text-surface-400 mt-2">Full-text search</p>
|
||||
@@ -248,7 +248,7 @@ eleventyImport:
|
||||
<li class="h-entry post-card">
|
||||
<div class="post-header">
|
||||
<h3 class="text-xl font-semibold">
|
||||
<a href="/github/starred/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-600 dark:hover:text-accent-400">/github/starred</a>
|
||||
<a href="/github/starred/" class="p-name u-url text-surface-900 dark:text-surface-100 hover:text-accent-700 dark:hover:text-accent-300">/github/starred</a>
|
||||
</h3>
|
||||
</div>
|
||||
<p class="text-surface-600 dark:text-surface-400 mt-2">Starred GitHub repositories</p>
|
||||
@@ -260,7 +260,7 @@ eleventyImport:
|
||||
<div class="mt-8 p-4 bg-surface-100 dark:bg-surface-800 rounded-lg border border-surface-200 dark:border-surface-700 shadow-sm">
|
||||
<h2 class="text-lg font-semibold text-surface-800 dark:text-surface-200 mb-2">Want more slash pages?</h2>
|
||||
<p class="text-surface-600 dark:text-surface-400 text-sm">
|
||||
Check out <a href="https://slashpages.net" class="text-accent-600 dark:text-accent-400 hover:underline" target="_blank" rel="noopener">slashpages.net</a>
|
||||
Check out <a href="https://slashpages.net" class="text-accent-700 dark:text-accent-300 hover:underline" target="_blank" rel="noopener">slashpages.net</a>
|
||||
for inspiration on pages like <code>/now</code>, <code>/uses</code>, <code>/colophon</code>, <code>/blogroll</code>, and more.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
@@ -8,7 +8,7 @@ eleventyExcludeFromCollections: true
|
||||
<div class="starred-page" x-data="starredPage" x-cloak>
|
||||
<header class="mb-6 sm:mb-8">
|
||||
<div class="flex items-center gap-2 mb-4">
|
||||
<a href="/github/" class="text-sm text-accent-600 dark:text-accent-400 hover:underline">← GitHub Activity</a>
|
||||
<a href="/github/" class="text-sm text-accent-700 dark:text-accent-300 hover:underline">← GitHub Activity</a>
|
||||
</div>
|
||||
<h1 class="text-2xl sm:text-3xl font-bold text-surface-900 dark:text-surface-100 mb-2 flex items-center gap-3">
|
||||
<svg class="w-8 h-8 text-yellow-500" fill="currentColor" viewBox="0 0 24 24">
|
||||
|
||||
@@ -48,7 +48,7 @@ pagefindIgnore: true
|
||||
{% if allMentions.length > 0 or legacyUrls.length > 0 %}
|
||||
<tr class="hover:bg-surface-50 dark:hover:bg-surface-800/50">
|
||||
<td class="p-2">
|
||||
<a href="{{ post.url }}" class="text-accent-600 dark:text-accent-400 hover:underline">
|
||||
<a href="{{ post.url }}" class="text-accent-700 dark:text-accent-300 hover:underline">
|
||||
{{ post.url }}
|
||||
</a>
|
||||
</td>
|
||||
|
||||
@@ -108,6 +108,6 @@ withSidebar: true
|
||||
<p class="text-surface-600 dark:text-surface-400">No check-ins found.</p>
|
||||
{% endif %}
|
||||
<p class="mt-2 text-sm">
|
||||
<a href="/been/" class="text-accent-600 hover:underline">See all past check-ins →</a>
|
||||
<a href="/been/" class="text-accent-700 hover:underline">See all past check-ins →</a>
|
||||
</p>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user