Adds cmjs/js/i18n.js (t()/loadStrings()/getLocale()) and cmjs/strings/en.json as the default string table; every hardcoded Czech UI string in views.js/router.js/discovery.js and the static index.html shell now goes through it, so a translation just means adding cmjs/strings/<locale>.json and setting <html lang>. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AXSVPS3UmmASiiprPfcnUd
53 lines
2.0 KiB
HTML
53 lines
2.0 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1">
|
|
<title>Expedition Blogs</title>
|
|
<link rel="stylesheet" href="css/reset.css">
|
|
<link rel="stylesheet" href="css/header.css">
|
|
<link rel="stylesheet" href="css/layout.css">
|
|
<link rel="stylesheet" href="cmjs/css/components/card.css">
|
|
<link rel="stylesheet" href="cmjs/css/components/article.css">
|
|
<link rel="stylesheet" href="cmjs/css/components/content.css">
|
|
<link rel="stylesheet" href="cmjs/css/components/pagination.css">
|
|
<link rel="stylesheet" href="cmjs/css/components/toc.css">
|
|
<link rel="stylesheet" href="cmjs/css/components/author-profile.css">
|
|
</head>
|
|
<body class="blog-page">
|
|
<header>
|
|
<!-- Site title always links back to the article list -->
|
|
<a href="#" id="site-title">Expedition Blogs</a>
|
|
|
|
<!-- Search form — submits to #search/query via router.js -->
|
|
<form id="search-form" role="search">
|
|
<input type="search" id="search-input" placeholder="Search articles…" autocomplete="off" aria-label="Search articles">
|
|
<button type="submit">Search</button>
|
|
</form>
|
|
</header>
|
|
|
|
<main class="blog-shell">
|
|
<section class="blog-content" aria-label="Articles">
|
|
<!-- Article list: shown when no hash is present -->
|
|
<div id="list-view"></div>
|
|
|
|
<!-- Article view: shown when a slug hash is present -->
|
|
<div id="article-view" hidden></div>
|
|
</section>
|
|
|
|
<aside class="blog-sidebar" aria-label="Blog filters">
|
|
<section class="filter-section">
|
|
<h2>Years</h2>
|
|
<nav id="year-filters" aria-label="Filter by year"></nav>
|
|
</section>
|
|
<section class="filter-section">
|
|
<h2>Tags</h2>
|
|
<nav id="tag-filters" aria-label="Filter by tag"></nav>
|
|
</section>
|
|
</aside>
|
|
</main>
|
|
|
|
<script type="module" src="cmjs/js/router.js"></script>
|
|
</body>
|
|
</html>
|