5.7 KB
raw
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
<title>{% block title %}{{ title }}{% endblock %} · {{ site.title }}</title>
<meta name="description" content="{% block description %}Track stocks, ETFs, and indexes with live charts, fundamentals, and SEC filings.{% endblock %}">
{% if base_url %}<base href="{{ base_url }}">{% endif %}
<meta name="theme-color" content="#f0ece1">
<link rel="icon" type="image/svg+xml" href="/favicon.ico">
{% block extra_head %}{% endblock %}
<link rel="stylesheet" href="{{ vite_asset('static_src/base/index.js', 'css') }}">
{% block extra_css %}{% endblock %}
</head>
<body>
<header class="topbar">
<div class="topbar__inner">
<a class="brand" href="/">
{# Paper Ledger mark: a rising figures line over the accountant's
double underline (the ledger sign for a finalized total). #}
<svg viewBox="0 0 32 32" fill="none" aria-hidden="true">
<polyline points="4,20 12,14 19,17 28,7" stroke="currentColor" stroke-width="2.6" stroke-linecap="round" stroke-linejoin="round"/>
<circle cx="28" cy="7" r="2" fill="currentColor"/>
<line x1="4" y1="26" x2="28" y2="26" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
<line x1="4" y1="30" x2="28" y2="30" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
</svg>
<span class="brand__name">{{ site.title }}</span>
</a>
<form class="search" action="/search" method="get" role="search">
<input type="search" name="q" placeholder="Search ticker or company" autocomplete="off" aria-label="Search">
</form>
<nav class="topnav">
<a href="/"{% if request.path == '/' %} class="is-active"{% endif %}>Markets</a>
<a href="/search"{% if request.path == '/search' %} class="is-active"{% endif %}>Search</a>
</nav>
{% include "includes/status_indicator.html" %}
</div>
</header>
<main>
{% block main %}{% endblock %}
</main>
<nav class="bottomnav">
<a href="/"{% if request.path == '/' %} class="is-active"{% endif %}>
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><path d="M4 19V11M10 19V5M16 19v-6M21 19H3"/></svg>
<span>Markets</span>
</a>
<a href="/search"{% if request.path == '/search' %} class="is-active"{% endif %}>
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="11" cy="11" r="7"/><path d="M21 21l-4.3-4.3"/></svg>
<span>Search</span>
</a>
</nav>
{# Two-tier footer (Phase 7), modeled on the sibling apps' pattern (repos'
`footer__grid` with `// LABEL` mono headers) but in Paper Ledger tokens: a
multi-column upper block over a slim copyright bar. The data attribution
(was the old one-line footer) folds into the About column. #}
<footer class="footer">
<div class="wrap footer__grid">
<div class="footer__about">
<div class="footer__label">// {{ site.title }}</div>
<p>A self-hosted market watcher for stocks, ETFs, indexes, and
commodities: live charts, key stats, fundamentals, SEC filings, and
at-a-glance health reads. For watching the market only — no
portfolio, no accounts.</p>
<p class="footer__attrib">Market data via <span>Yahoo Finance</span> ·
fundamentals & filings via <span>SEC EDGAR</span> · prices are
delayed · <strong>not investment advice</strong>.</p>
</div>
<div class="footer__col">
<div class="footer__label">// Pages</div>
<ul>
<li><a href="/">Markets</a></li>
<li><a href="/search">Search</a></li>
<li><a href="/health">Data health</a></li>
<li><a href="https://github.com/overshard/finance" target="_blank" rel="noopener">Source</a></li>
</ul>
</div>
<div class="footer__col">
<div class="footer__label">// Elsewhere</div>
<ul>
<li><a href="https://isaacbythewood.com/" target="_blank" rel="noopener">Portfolio</a></li>
<li><a href="https://blog.bythewood.me/" target="_blank" rel="noopener">Blog</a></li>
<li><a href="https://analytics.bythewood.me/" target="_blank" rel="noopener">Analytics</a></li>
<li><a href="https://status.bythewood.me/" target="_blank" rel="noopener">Status</a></li>
</ul>
</div>
</div>
</footer>
<div class="footer-bar">
<div class="wrap footer-bar__row">
<small>© {{ now.year }} Isaac Bythewood · Some rights reserved</small>
<a href="https://github.com/overshard/finance" target="_blank" rel="noopener" class="footer-bar__link" aria-label="Source on GitHub">
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="currentColor" viewBox="0 0 16 16" aria-hidden="true">
<path d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.012 8.012 0 0 0 16 8c0-4.42-3.58-8-8-8z"/>
</svg>
</a>
</div>
</div>
<script type="module" src="{{ vite_asset('static_src/base/index.js') }}"></script>
{% block extra_js %}{% endblock %}
</body>
</html>