184 lines
11 KiB
HTML
184 lines
11 KiB
HTML
<section class="circuit-hero" aria-label="Labyricorn navigation hero" data-circuit-hero>
|
|
<div class="circuit-hero-topline">
|
|
<span><strong>LABYRICORN</strong> // SIGNAL ROUTER</span>
|
|
<span>REG. NO. 004 — EST. LOCAL</span>
|
|
</div>
|
|
|
|
<div class="circuit-brand-block">
|
|
<p class="circuit-brand-kicker">{{ this.eyebrow }}</p>
|
|
<h1>{{ this.summary|replace(' Signals', '<br>Signals')|safe }}</h1>
|
|
<div class="circuit-dek">{{ this.body }}</div>
|
|
<p class="circuit-status"><span aria-hidden="true"></span> network active / routes resolving</p>
|
|
</div>
|
|
|
|
<div class="circuit-stage" aria-hidden="true">
|
|
<svg viewBox="0 0 1200 720" preserveAspectRatio="none">
|
|
<g class="circuit-ambient">
|
|
<path d="M35 95 H185 V125 H410"/><path d="M55 150 H155 V185 H300"/>
|
|
<path d="M300 45 V115 H455"/><path d="M465 65 H610 V100 H690"/>
|
|
<path d="M705 55 H835 V90 H930"/><path d="M900 115 H1050 V80 H1160"/>
|
|
<path d="M1010 230 H1140 V335 H1085"/><path d="M940 430 H1095 V465 H1165"/>
|
|
<path d="M45 455 H170 V475 H250"/><path d="M40 585 H130 V555 H205"/>
|
|
<path d="M250 670 H390 V690 H520"/><path d="M535 680 H770 V700"/>
|
|
<path d="M805 685 H930 V665 H1035"/><path d="M1035 690 H1165"/>
|
|
</g>
|
|
<g class="circuit-ambient-packets">
|
|
<path d="M35 95 H185 V125 H410"/><path class="circuit-live-alt" d="M55 150 H155 V185 H300"/>
|
|
<path class="circuit-live-gold" d="M300 45 V115 H455"/><path class="circuit-live-alt" d="M465 65 H610 V100 H690"/>
|
|
<path d="M705 55 H835 V90 H930"/><path class="circuit-live-gold" d="M900 115 H1050 V80 H1160"/>
|
|
<path d="M1010 230 H1140 V335 H1085"/><path class="circuit-live-alt" d="M940 430 H1095 V465 H1165"/>
|
|
<path d="M45 455 H170 V475 H250"/><path class="circuit-live-gold" d="M40 585 H130 V555 H205"/>
|
|
<path class="circuit-live-alt" d="M250 670 H390 V690 H520"/><path d="M535 680 H770 V700"/>
|
|
<path class="circuit-live-gold" d="M805 685 H930 V665 H1035"/><path d="M1035 690 H1165"/>
|
|
</g>
|
|
<g class="circuit-ghost">
|
|
<path d="M70 350 H510 V180 H720 V140 H805"/>
|
|
<path d="M180 390 H565 V320 H865"/>
|
|
<path d="M95 425 H470 V470 H720"/>
|
|
<path d="M90 505 H260 V530 H345"/>
|
|
<path d="M190 560 H350 V585 H430"/>
|
|
<path d="M430 610 H515 V630 H585"/>
|
|
<path d="M610 650 H700 V655 H755"/>
|
|
<path d="M790 605 H885 V590 H930"/>
|
|
<path d="M970 540 H1030 V515 H1060"/>
|
|
</g>
|
|
<g class="circuit-base">
|
|
<path d="M70 350 H510 V180 H720 V140 H805"/>
|
|
<path d="M180 390 H565 V320 H865"/>
|
|
<path d="M95 425 H470 V470 H720"/>
|
|
<path d="M90 505 H260 V530 H345"/>
|
|
<path d="M190 560 H350 V585 H430"/>
|
|
<path d="M430 610 H515 V630 H585"/>
|
|
<path d="M610 650 H700 V655 H755"/>
|
|
<path d="M790 605 H885 V590 H930"/>
|
|
<path d="M970 540 H1030 V515 H1060"/>
|
|
</g>
|
|
<g class="circuit-traces">
|
|
<path d="M45 200 H260 V255 H390"/><path d="M110 240 H185 V300 H410"/>
|
|
<path d="M975 180 H1125 V285 H1080"/><path d="M955 375 H1110 V410 H1160"/>
|
|
<path d="M36 650 H120 V610 H220"/><path d="M1080 645 H1145 V580"/>
|
|
</g>
|
|
<g class="circuit-live">
|
|
<path id="route-projects" d="M70 350 H510 V180 H720 V140 H805"/>
|
|
<path id="route-articles" class="circuit-live-alt" d="M180 390 H565 V320 H865"/>
|
|
<path id="route-blog" d="M95 425 H470 V470 H720"/>
|
|
<path id="route-github" class="circuit-live-alt" d="M90 505 H260 V530 H345"/>
|
|
<path id="route-gitea" d="M190 560 H350 V585 H430"/>
|
|
<path id="route-linkedin" class="circuit-live-alt" d="M430 610 H515 V630 H585"/>
|
|
<path id="route-twitch" d="M610 650 H700 V655 H755"/>
|
|
<path id="route-youtube" class="circuit-live-alt" d="M790 605 H885 V590 H930"/>
|
|
<path id="route-kofi" d="M970 540 H1030 V515 H1060"/>
|
|
</g>
|
|
<g class="circuit-vias">
|
|
<circle cx="70" cy="350" r="4"/><circle cx="805" cy="140" r="4"/>
|
|
<circle cx="180" cy="390" r="4"/><circle cx="865" cy="320" r="4"/>
|
|
<circle cx="95" cy="425" r="4"/><circle cx="720" cy="470" r="4"/>
|
|
<circle cx="90" cy="505" r="3"/><circle cx="345" cy="530" r="3"/>
|
|
<circle cx="190" cy="560" r="3"/><circle cx="430" cy="585" r="3"/>
|
|
<circle cx="585" cy="630" r="3"/><circle cx="755" cy="655" r="3"/>
|
|
<circle cx="930" cy="590" r="3"/><circle cx="1060" cy="515" r="3"/>
|
|
</g>
|
|
</svg>
|
|
</div>
|
|
|
|
<nav class="circuit-routes" aria-label="Signal routes">
|
|
<a class="circuit-node circuit-node-main" data-route-node="projects" data-route-text="PROJECTS" href="{{ '/projects'|url }}" aria-label="Projects"><span data-route-output>Projects</span><i aria-hidden="true">_</i></a>
|
|
<a class="circuit-node circuit-node-main" data-route-node="articles" data-route-text="ARTICLES" href="{{ '/articles'|url }}" aria-label="Articles"><span data-route-output>Articles</span><i aria-hidden="true">_</i></a>
|
|
<a class="circuit-node circuit-node-main" data-route-node="blog" data-route-text="BLOG" href="{{ '/blog'|url }}" aria-label="Blog"><span data-route-output>Blog</span><i aria-hidden="true">_</i></a>
|
|
<a class="circuit-node circuit-node-sub" data-route-node="github" data-route-text="GITHUB" href="https://github.com/Labyricorn" aria-label="GitHub" rel="me"><span data-route-output>GitHub</span></a>
|
|
<a class="circuit-node circuit-node-sub" data-route-node="gitea" data-route-text="GITEA" href="https://git.labyricorn.com/" aria-label="Gitea"><span data-route-output>Gitea</span></a>
|
|
<a class="circuit-node circuit-node-sub" data-route-node="linkedin" data-route-text="LINKEDIN" href="https://www.linkedin.com/in/christopher-chambers-694b7a86/" aria-label="LinkedIn"><span data-route-output>LinkedIn</span></a>
|
|
<a class="circuit-node circuit-node-sub" data-route-node="twitch" data-route-text="TWITCH" href="https://www.twitch.tv/labyricorn" aria-label="Twitch"><span data-route-output>Twitch</span></a>
|
|
<a class="circuit-node circuit-node-sub" data-route-node="youtube" data-route-text="YOUTUBE" href="https://www.youtube.com/@labyricorn" aria-label="YouTube"><span data-route-output>YouTube</span></a>
|
|
<a class="circuit-node circuit-node-sub" data-route-node="kofi" data-route-text="KO-FI" href="https://ko-fi.com/labyricorn" aria-label="Ko-fi"><span data-route-output>Ko-fi</span></a>
|
|
</nav>
|
|
|
|
<div class="circuit-legend" aria-hidden="true"><span>◆ live packet</span><span>— Labyricorn bus</span></div>
|
|
<button class="circuit-replay" type="button" data-circuit-replay>Replay signal sequence</button>
|
|
</section>
|
|
|
|
<section class="activity-section">
|
|
<div class="shell">
|
|
<div class="homepage-discovery-grid">
|
|
<section class="homepage-panel" aria-labelledby="recent-activity-heading">
|
|
<div class="section-heading">
|
|
<span id="recent-activity-heading">Recent Activity</span>
|
|
<span>Sorted by date</span>
|
|
</div>
|
|
<div class="timeline" id="recent-activity-list" data-activity-feed data-batch-size="6">
|
|
{% set entries = [] %}
|
|
{% for section_id in ['articles', 'blog'] %}
|
|
{% for item in site.get('/' ~ section_id).children %}
|
|
{% if entries.append(item) %}{% endif %}
|
|
{% endfor %}
|
|
{% endfor %}
|
|
{% for project in site.query('/projects').filter(F._model == 'project') %}
|
|
{% set devlog = site.get(project.path ~ '/devlog') %}
|
|
{% if devlog %}
|
|
{% set latest_devlog_entry = devlog.children.order_by('-date', '-source_commit_time').first() %}
|
|
{% if latest_devlog_entry and entries.append(latest_devlog_entry) %}{% endif %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% for item in entries|sort(attribute='date', reverse=true) %}
|
|
<article class="timeline-entry accent-{{ item.kicker|lower }}" data-activity-item>
|
|
<div class="entry-meta">
|
|
<span class="label">{{ item.kicker }}</span>
|
|
<time datetime="{{ item.date }}">{{ item.date|dateformat('YYYY.MM.dd') }}</time>
|
|
</div>
|
|
<h2><a href="{{ item|url }}">{{ item.title }}</a></h2>
|
|
<p>{{ item.summary }}</p>
|
|
<a class="read-more" href="{{ item|url }}">Read entry →</a>
|
|
</article>
|
|
{% endfor %}
|
|
</div>
|
|
<div class="activity-controls" data-activity-controls hidden>
|
|
<p class="activity-status" data-activity-status aria-live="polite"></p>
|
|
<button class="activity-more-button" type="button" data-activity-more aria-controls="recent-activity-list">Show 6 more</button>
|
|
</div>
|
|
</section>
|
|
|
|
<section class="homepage-panel featured-projects-panel" aria-labelledby="featured-projects-heading">
|
|
<div class="section-heading">
|
|
<span id="featured-projects-heading">Featured Projects</span>
|
|
<span>Curated work</span>
|
|
</div>
|
|
<div class="featured-project-list">
|
|
{% for project in site.query('/projects').filter(F._model == 'project').filter(F.featured == true).order_by('featured_order', '-date').limit(3) %}
|
|
{% set devlog = site.get(project.path ~ '/devlog') %}
|
|
{% set latest_activity = devlog.children.order_by('-date', '-source_commit_time').first() if devlog else none %}
|
|
<article class="featured-project-card">
|
|
<div class="featured-project-meta">
|
|
<span class="label">{{ project.status }}</span>
|
|
<time datetime="{{ project.date }}">{{ project.date|dateformat('YYYY.MM.dd') }}</time>
|
|
</div>
|
|
<h2><a href="{{ project|url }}">{{ project.title }}</a></h2>
|
|
<p>{{ project.summary }}</p>
|
|
{% if project.technology_labels %}
|
|
<div class="featured-project-technologies" aria-label="Technologies">
|
|
{% for technology in project.technology_labels[:4] %}
|
|
{% set parts = technology.split('\t', 1) %}
|
|
<span>{{ parts[1] if parts|length > 1 else parts[0] }}</span>
|
|
{% endfor %}
|
|
</div>
|
|
{% endif %}
|
|
{% if latest_activity %}
|
|
<div class="featured-project-latest">
|
|
<span>Latest activity</span>
|
|
<a href="{{ latest_activity|url }}"><time datetime="{{ latest_activity.date }}">{{ latest_activity.date|dateformat('YYYY.MM.dd') }}</time> {{ latest_activity.title }} →</a>
|
|
</div>
|
|
{% endif %}
|
|
<div class="featured-project-actions">
|
|
<a href="{{ project|url }}">View project →</a>
|
|
{% if devlog %}<a href="{{ devlog|url }}">Devlog →</a>{% endif %}
|
|
</div>
|
|
</article>
|
|
{% else %}
|
|
<p class="featured-projects-empty">Selected projects will appear here.</p>
|
|
{% endfor %}
|
|
</div>
|
|
<a class="featured-projects-link" href="{{ '/projects'|url }}">View all projects →</a>
|
|
</section>
|
|
</div>
|
|
</div>
|
|
</section>
|