mirror of
https://github.com/logos-co/roadmap.git
synced 2026-08-27 09:01:07 +00:00
Add prev/next week navigation to all weekly reports
Inject a small <nav class="week-nav"> element after each report's <header>, with data-router-ignore links to the adjacent reports' HTML files. The first report (2026-01-26) has no prev link; the latest (2026-06-29) has no next link — placeholders are used so layout stays consistent. Matching CSS is added once per file inside the existing <style> block, delimited with /* week-nav-css */ markers so the script is idempotent and re-runnable when new weeks are added.
This commit is contained in:
@@ -437,6 +437,41 @@
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
/* week-nav-css */
|
||||
.week-nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 1.5rem;
|
||||
padding: 0.75rem 1.5rem;
|
||||
background: var(--bg-secondary);
|
||||
border-radius: 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
.week-nav a {
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 8px;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 500;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
.week-nav a:hover {
|
||||
background: var(--bg-tertiary);
|
||||
}
|
||||
.week-nav .prev {
|
||||
margin-right: auto;
|
||||
}
|
||||
.week-nav .next {
|
||||
margin-left: auto;
|
||||
}
|
||||
.week-nav .spacer {
|
||||
flex: 1;
|
||||
}
|
||||
/* /week-nav-css */
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -446,6 +481,11 @@
|
||||
<p class="date">Week 4, 2026 (January 26, 2026)</p>
|
||||
</header>
|
||||
|
||||
<nav class="week-nav">
|
||||
<span class="spacer"></span>
|
||||
<a class="next" data-router-ignore href="/reports/weekly/2026-02-02.html">2026-02-02 →</a>
|
||||
</nav>
|
||||
|
||||
<div class="stats-bar">
|
||||
<div class="stat">
|
||||
<div class="stat-value">5</div>
|
||||
|
||||
@@ -481,6 +481,41 @@
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
/* week-nav-css */
|
||||
.week-nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 1.5rem;
|
||||
padding: 0.75rem 1.5rem;
|
||||
background: var(--bg-secondary);
|
||||
border-radius: 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
.week-nav a {
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 8px;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 500;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
.week-nav a:hover {
|
||||
background: var(--bg-tertiary);
|
||||
}
|
||||
.week-nav .prev {
|
||||
margin-right: auto;
|
||||
}
|
||||
.week-nav .next {
|
||||
margin-left: auto;
|
||||
}
|
||||
.week-nav .spacer {
|
||||
flex: 1;
|
||||
}
|
||||
/* /week-nav-css */
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -490,6 +525,11 @@
|
||||
<p class="date">Week 5, 2026 (February 2, 2026)</p>
|
||||
</header>
|
||||
|
||||
<nav class="week-nav">
|
||||
<a class="prev" data-router-ignore href="/reports/weekly/2026-01-26.html">← 2026-01-26</a>
|
||||
<a class="next" data-router-ignore href="/reports/weekly/2026-02-09.html">2026-02-09 →</a>
|
||||
</nav>
|
||||
|
||||
<div class="stats-bar">
|
||||
<div class="stat">
|
||||
<div class="stat-value">5</div>
|
||||
|
||||
@@ -481,6 +481,41 @@
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
/* week-nav-css */
|
||||
.week-nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 1.5rem;
|
||||
padding: 0.75rem 1.5rem;
|
||||
background: var(--bg-secondary);
|
||||
border-radius: 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
.week-nav a {
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 8px;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 500;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
.week-nav a:hover {
|
||||
background: var(--bg-tertiary);
|
||||
}
|
||||
.week-nav .prev {
|
||||
margin-right: auto;
|
||||
}
|
||||
.week-nav .next {
|
||||
margin-left: auto;
|
||||
}
|
||||
.week-nav .spacer {
|
||||
flex: 1;
|
||||
}
|
||||
/* /week-nav-css */
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -490,6 +525,11 @@
|
||||
<p class="date">Week 6, 2026 (February 9, 2026)</p>
|
||||
</header>
|
||||
|
||||
<nav class="week-nav">
|
||||
<a class="prev" data-router-ignore href="/reports/weekly/2026-02-02.html">← 2026-02-02</a>
|
||||
<a class="next" data-router-ignore href="/reports/weekly/2026-02-16.html">2026-02-16 →</a>
|
||||
</nav>
|
||||
|
||||
<div class="stats-bar">
|
||||
<div class="stat">
|
||||
<div class="stat-value">5</div>
|
||||
|
||||
@@ -481,6 +481,41 @@
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
/* week-nav-css */
|
||||
.week-nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 1.5rem;
|
||||
padding: 0.75rem 1.5rem;
|
||||
background: var(--bg-secondary);
|
||||
border-radius: 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
.week-nav a {
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 8px;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 500;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
.week-nav a:hover {
|
||||
background: var(--bg-tertiary);
|
||||
}
|
||||
.week-nav .prev {
|
||||
margin-right: auto;
|
||||
}
|
||||
.week-nav .next {
|
||||
margin-left: auto;
|
||||
}
|
||||
.week-nav .spacer {
|
||||
flex: 1;
|
||||
}
|
||||
/* /week-nav-css */
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -490,6 +525,11 @@
|
||||
<p class="date">Week 7, 2026 (February 16, 2026)</p>
|
||||
</header>
|
||||
|
||||
<nav class="week-nav">
|
||||
<a class="prev" data-router-ignore href="/reports/weekly/2026-02-09.html">← 2026-02-09</a>
|
||||
<a class="next" data-router-ignore href="/reports/weekly/2026-02-23.html">2026-02-23 →</a>
|
||||
</nav>
|
||||
|
||||
<div class="stats-bar">
|
||||
<div class="stat">
|
||||
<div class="stat-value">5</div>
|
||||
|
||||
@@ -481,6 +481,41 @@
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
/* week-nav-css */
|
||||
.week-nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 1.5rem;
|
||||
padding: 0.75rem 1.5rem;
|
||||
background: var(--bg-secondary);
|
||||
border-radius: 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
.week-nav a {
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 8px;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 500;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
.week-nav a:hover {
|
||||
background: var(--bg-tertiary);
|
||||
}
|
||||
.week-nav .prev {
|
||||
margin-right: auto;
|
||||
}
|
||||
.week-nav .next {
|
||||
margin-left: auto;
|
||||
}
|
||||
.week-nav .spacer {
|
||||
flex: 1;
|
||||
}
|
||||
/* /week-nav-css */
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -490,6 +525,11 @@
|
||||
<p class="date">Week 8, 2026 (February 23, 2026)</p>
|
||||
</header>
|
||||
|
||||
<nav class="week-nav">
|
||||
<a class="prev" data-router-ignore href="/reports/weekly/2026-02-16.html">← 2026-02-16</a>
|
||||
<a class="next" data-router-ignore href="/reports/weekly/2026-03-02.html">2026-03-02 →</a>
|
||||
</nav>
|
||||
|
||||
<div class="stats-bar">
|
||||
<div class="stat">
|
||||
<div class="stat-value">3</div>
|
||||
|
||||
@@ -481,6 +481,41 @@
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
/* week-nav-css */
|
||||
.week-nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 1.5rem;
|
||||
padding: 0.75rem 1.5rem;
|
||||
background: var(--bg-secondary);
|
||||
border-radius: 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
.week-nav a {
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 8px;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 500;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
.week-nav a:hover {
|
||||
background: var(--bg-tertiary);
|
||||
}
|
||||
.week-nav .prev {
|
||||
margin-right: auto;
|
||||
}
|
||||
.week-nav .next {
|
||||
margin-left: auto;
|
||||
}
|
||||
.week-nav .spacer {
|
||||
flex: 1;
|
||||
}
|
||||
/* /week-nav-css */
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -490,6 +525,11 @@
|
||||
<p class="date">Week 9, 2026 (March 2, 2026)</p>
|
||||
</header>
|
||||
|
||||
<nav class="week-nav">
|
||||
<a class="prev" data-router-ignore href="/reports/weekly/2026-02-23.html">← 2026-02-23</a>
|
||||
<a class="next" data-router-ignore href="/reports/weekly/2026-03-09.html">2026-03-09 →</a>
|
||||
</nav>
|
||||
|
||||
<div class="stats-bar">
|
||||
<div class="stat">
|
||||
<div class="stat-value">4</div>
|
||||
|
||||
@@ -481,6 +481,41 @@
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
/* week-nav-css */
|
||||
.week-nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 1.5rem;
|
||||
padding: 0.75rem 1.5rem;
|
||||
background: var(--bg-secondary);
|
||||
border-radius: 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
.week-nav a {
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 8px;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 500;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
.week-nav a:hover {
|
||||
background: var(--bg-tertiary);
|
||||
}
|
||||
.week-nav .prev {
|
||||
margin-right: auto;
|
||||
}
|
||||
.week-nav .next {
|
||||
margin-left: auto;
|
||||
}
|
||||
.week-nav .spacer {
|
||||
flex: 1;
|
||||
}
|
||||
/* /week-nav-css */
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -490,6 +525,11 @@
|
||||
<p class="date">Week 10, 2026 (March 9, 2026)</p>
|
||||
</header>
|
||||
|
||||
<nav class="week-nav">
|
||||
<a class="prev" data-router-ignore href="/reports/weekly/2026-03-02.html">← 2026-03-02</a>
|
||||
<a class="next" data-router-ignore href="/reports/weekly/2026-03-16.html">2026-03-16 →</a>
|
||||
</nav>
|
||||
|
||||
<div class="stats-bar">
|
||||
<div class="stat">
|
||||
<div class="stat-value">1</div>
|
||||
|
||||
@@ -481,6 +481,41 @@
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
/* week-nav-css */
|
||||
.week-nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 1.5rem;
|
||||
padding: 0.75rem 1.5rem;
|
||||
background: var(--bg-secondary);
|
||||
border-radius: 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
.week-nav a {
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 8px;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 500;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
.week-nav a:hover {
|
||||
background: var(--bg-tertiary);
|
||||
}
|
||||
.week-nav .prev {
|
||||
margin-right: auto;
|
||||
}
|
||||
.week-nav .next {
|
||||
margin-left: auto;
|
||||
}
|
||||
.week-nav .spacer {
|
||||
flex: 1;
|
||||
}
|
||||
/* /week-nav-css */
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -490,6 +525,11 @@
|
||||
<p class="date">Week 11, 2026 (March 16, 2026)</p>
|
||||
</header>
|
||||
|
||||
<nav class="week-nav">
|
||||
<a class="prev" data-router-ignore href="/reports/weekly/2026-03-09.html">← 2026-03-09</a>
|
||||
<a class="next" data-router-ignore href="/reports/weekly/2026-03-23.html">2026-03-23 →</a>
|
||||
</nav>
|
||||
|
||||
<div class="stats-bar">
|
||||
<div class="stat">
|
||||
<div class="stat-value">3</div>
|
||||
|
||||
@@ -481,6 +481,41 @@
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
/* week-nav-css */
|
||||
.week-nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 1.5rem;
|
||||
padding: 0.75rem 1.5rem;
|
||||
background: var(--bg-secondary);
|
||||
border-radius: 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
.week-nav a {
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 8px;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 500;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
.week-nav a:hover {
|
||||
background: var(--bg-tertiary);
|
||||
}
|
||||
.week-nav .prev {
|
||||
margin-right: auto;
|
||||
}
|
||||
.week-nav .next {
|
||||
margin-left: auto;
|
||||
}
|
||||
.week-nav .spacer {
|
||||
flex: 1;
|
||||
}
|
||||
/* /week-nav-css */
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -490,6 +525,11 @@
|
||||
<p class="date">Week 12, 2026 (March 23, 2026)</p>
|
||||
</header>
|
||||
|
||||
<nav class="week-nav">
|
||||
<a class="prev" data-router-ignore href="/reports/weekly/2026-03-16.html">← 2026-03-16</a>
|
||||
<a class="next" data-router-ignore href="/reports/weekly/2026-03-30.html">2026-03-30 →</a>
|
||||
</nav>
|
||||
|
||||
<div class="stats-bar">
|
||||
<div class="stat">
|
||||
<div class="stat-value">2</div>
|
||||
|
||||
@@ -481,6 +481,41 @@
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
/* week-nav-css */
|
||||
.week-nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 1.5rem;
|
||||
padding: 0.75rem 1.5rem;
|
||||
background: var(--bg-secondary);
|
||||
border-radius: 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
.week-nav a {
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 8px;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 500;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
.week-nav a:hover {
|
||||
background: var(--bg-tertiary);
|
||||
}
|
||||
.week-nav .prev {
|
||||
margin-right: auto;
|
||||
}
|
||||
.week-nav .next {
|
||||
margin-left: auto;
|
||||
}
|
||||
.week-nav .spacer {
|
||||
flex: 1;
|
||||
}
|
||||
/* /week-nav-css */
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -490,6 +525,11 @@
|
||||
<p class="date">Week 13, 2026 (March 30, 2026)</p>
|
||||
</header>
|
||||
|
||||
<nav class="week-nav">
|
||||
<a class="prev" data-router-ignore href="/reports/weekly/2026-03-23.html">← 2026-03-23</a>
|
||||
<a class="next" data-router-ignore href="/reports/weekly/2026-04-06.html">2026-04-06 →</a>
|
||||
</nav>
|
||||
|
||||
<div class="stats-bar">
|
||||
<div class="stat">
|
||||
<div class="stat-value">4</div>
|
||||
|
||||
@@ -481,6 +481,41 @@
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
/* week-nav-css */
|
||||
.week-nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 1.5rem;
|
||||
padding: 0.75rem 1.5rem;
|
||||
background: var(--bg-secondary);
|
||||
border-radius: 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
.week-nav a {
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 8px;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 500;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
.week-nav a:hover {
|
||||
background: var(--bg-tertiary);
|
||||
}
|
||||
.week-nav .prev {
|
||||
margin-right: auto;
|
||||
}
|
||||
.week-nav .next {
|
||||
margin-left: auto;
|
||||
}
|
||||
.week-nav .spacer {
|
||||
flex: 1;
|
||||
}
|
||||
/* /week-nav-css */
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -490,6 +525,11 @@
|
||||
<p class="date">Week 14, 2026 (April 6, 2026)</p>
|
||||
</header>
|
||||
|
||||
<nav class="week-nav">
|
||||
<a class="prev" data-router-ignore href="/reports/weekly/2026-03-30.html">← 2026-03-30</a>
|
||||
<a class="next" data-router-ignore href="/reports/weekly/2026-04-13.html">2026-04-13 →</a>
|
||||
</nav>
|
||||
|
||||
<div class="stats-bar">
|
||||
<div class="stat">
|
||||
<div class="stat-value">5</div>
|
||||
|
||||
@@ -433,6 +433,41 @@
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
/* week-nav-css */
|
||||
.week-nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 1.5rem;
|
||||
padding: 0.75rem 1.5rem;
|
||||
background: var(--bg-secondary);
|
||||
border-radius: 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
.week-nav a {
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 8px;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 500;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
.week-nav a:hover {
|
||||
background: var(--bg-tertiary);
|
||||
}
|
||||
.week-nav .prev {
|
||||
margin-right: auto;
|
||||
}
|
||||
.week-nav .next {
|
||||
margin-left: auto;
|
||||
}
|
||||
.week-nav .spacer {
|
||||
flex: 1;
|
||||
}
|
||||
/* /week-nav-css */
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -442,6 +477,11 @@
|
||||
<p class="date">Week 15, 2026 (April 13, 2026)</p>
|
||||
</header>
|
||||
|
||||
<nav class="week-nav">
|
||||
<a class="prev" data-router-ignore href="/reports/weekly/2026-04-06.html">← 2026-04-06</a>
|
||||
<a class="next" data-router-ignore href="/reports/weekly/2026-04-20.html">2026-04-20 →</a>
|
||||
</nav>
|
||||
|
||||
<div class="stats-bar">
|
||||
<div class="stat">
|
||||
<div class="stat-value">5</div>
|
||||
|
||||
@@ -433,6 +433,41 @@
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
/* week-nav-css */
|
||||
.week-nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 1.5rem;
|
||||
padding: 0.75rem 1.5rem;
|
||||
background: var(--bg-secondary);
|
||||
border-radius: 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
.week-nav a {
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 8px;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 500;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
.week-nav a:hover {
|
||||
background: var(--bg-tertiary);
|
||||
}
|
||||
.week-nav .prev {
|
||||
margin-right: auto;
|
||||
}
|
||||
.week-nav .next {
|
||||
margin-left: auto;
|
||||
}
|
||||
.week-nav .spacer {
|
||||
flex: 1;
|
||||
}
|
||||
/* /week-nav-css */
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -442,6 +477,11 @@
|
||||
<p class="date">Week 16, 2026 (April 20, 2026)</p>
|
||||
</header>
|
||||
|
||||
<nav class="week-nav">
|
||||
<a class="prev" data-router-ignore href="/reports/weekly/2026-04-13.html">← 2026-04-13</a>
|
||||
<a class="next" data-router-ignore href="/reports/weekly/2026-04-27.html">2026-04-27 →</a>
|
||||
</nav>
|
||||
|
||||
<div class="stats-bar">
|
||||
<div class="stat">
|
||||
<div class="stat-value">5</div>
|
||||
|
||||
@@ -433,6 +433,41 @@
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
/* week-nav-css */
|
||||
.week-nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 1.5rem;
|
||||
padding: 0.75rem 1.5rem;
|
||||
background: var(--bg-secondary);
|
||||
border-radius: 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
.week-nav a {
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 8px;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 500;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
.week-nav a:hover {
|
||||
background: var(--bg-tertiary);
|
||||
}
|
||||
.week-nav .prev {
|
||||
margin-right: auto;
|
||||
}
|
||||
.week-nav .next {
|
||||
margin-left: auto;
|
||||
}
|
||||
.week-nav .spacer {
|
||||
flex: 1;
|
||||
}
|
||||
/* /week-nav-css */
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -442,6 +477,11 @@
|
||||
<p class="date">Week 17, 2026 (April 27, 2026)</p>
|
||||
</header>
|
||||
|
||||
<nav class="week-nav">
|
||||
<a class="prev" data-router-ignore href="/reports/weekly/2026-04-20.html">← 2026-04-20</a>
|
||||
<a class="next" data-router-ignore href="/reports/weekly/2026-05-04.html">2026-05-04 →</a>
|
||||
</nav>
|
||||
|
||||
<div class="stats-bar">
|
||||
<div class="stat">
|
||||
<div class="stat-value">5</div>
|
||||
|
||||
@@ -481,6 +481,41 @@
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
/* week-nav-css */
|
||||
.week-nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 1.5rem;
|
||||
padding: 0.75rem 1.5rem;
|
||||
background: var(--bg-secondary);
|
||||
border-radius: 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
.week-nav a {
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 8px;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 500;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
.week-nav a:hover {
|
||||
background: var(--bg-tertiary);
|
||||
}
|
||||
.week-nav .prev {
|
||||
margin-right: auto;
|
||||
}
|
||||
.week-nav .next {
|
||||
margin-left: auto;
|
||||
}
|
||||
.week-nav .spacer {
|
||||
flex: 1;
|
||||
}
|
||||
/* /week-nav-css */
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -490,6 +525,11 @@
|
||||
<p class="date">Week 18, 2026 (May 4, 2026)</p>
|
||||
</header>
|
||||
|
||||
<nav class="week-nav">
|
||||
<a class="prev" data-router-ignore href="/reports/weekly/2026-04-27.html">← 2026-04-27</a>
|
||||
<a class="next" data-router-ignore href="/reports/weekly/2026-05-11.html">2026-05-11 →</a>
|
||||
</nav>
|
||||
|
||||
<div class="stats-bar">
|
||||
<div class="stat">
|
||||
<div class="stat-value">5</div>
|
||||
|
||||
@@ -481,6 +481,41 @@
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
/* week-nav-css */
|
||||
.week-nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 1.5rem;
|
||||
padding: 0.75rem 1.5rem;
|
||||
background: var(--bg-secondary);
|
||||
border-radius: 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
.week-nav a {
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 8px;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 500;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
.week-nav a:hover {
|
||||
background: var(--bg-tertiary);
|
||||
}
|
||||
.week-nav .prev {
|
||||
margin-right: auto;
|
||||
}
|
||||
.week-nav .next {
|
||||
margin-left: auto;
|
||||
}
|
||||
.week-nav .spacer {
|
||||
flex: 1;
|
||||
}
|
||||
/* /week-nav-css */
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -490,6 +525,11 @@
|
||||
<p class="date">Week 19, 2026 (May 11, 2026)</p>
|
||||
</header>
|
||||
|
||||
<nav class="week-nav">
|
||||
<a class="prev" data-router-ignore href="/reports/weekly/2026-05-04.html">← 2026-05-04</a>
|
||||
<a class="next" data-router-ignore href="/reports/weekly/2026-05-18.html">2026-05-18 →</a>
|
||||
</nav>
|
||||
|
||||
<div class="stats-bar">
|
||||
<div class="stat">
|
||||
<div class="stat-value">5</div>
|
||||
|
||||
@@ -481,6 +481,41 @@
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
/* week-nav-css */
|
||||
.week-nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 1.5rem;
|
||||
padding: 0.75rem 1.5rem;
|
||||
background: var(--bg-secondary);
|
||||
border-radius: 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
.week-nav a {
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 8px;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 500;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
.week-nav a:hover {
|
||||
background: var(--bg-tertiary);
|
||||
}
|
||||
.week-nav .prev {
|
||||
margin-right: auto;
|
||||
}
|
||||
.week-nav .next {
|
||||
margin-left: auto;
|
||||
}
|
||||
.week-nav .spacer {
|
||||
flex: 1;
|
||||
}
|
||||
/* /week-nav-css */
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -490,6 +525,11 @@
|
||||
<p class="date">Week 20, 2026 (May 18, 2026)</p>
|
||||
</header>
|
||||
|
||||
<nav class="week-nav">
|
||||
<a class="prev" data-router-ignore href="/reports/weekly/2026-05-11.html">← 2026-05-11</a>
|
||||
<a class="next" data-router-ignore href="/reports/weekly/2026-05-25.html">2026-05-25 →</a>
|
||||
</nav>
|
||||
|
||||
<div class="stats-bar">
|
||||
<div class="stat">
|
||||
<div class="stat-value">5</div>
|
||||
|
||||
@@ -481,6 +481,41 @@
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
/* week-nav-css */
|
||||
.week-nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 1.5rem;
|
||||
padding: 0.75rem 1.5rem;
|
||||
background: var(--bg-secondary);
|
||||
border-radius: 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
.week-nav a {
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 8px;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 500;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
.week-nav a:hover {
|
||||
background: var(--bg-tertiary);
|
||||
}
|
||||
.week-nav .prev {
|
||||
margin-right: auto;
|
||||
}
|
||||
.week-nav .next {
|
||||
margin-left: auto;
|
||||
}
|
||||
.week-nav .spacer {
|
||||
flex: 1;
|
||||
}
|
||||
/* /week-nav-css */
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -490,6 +525,11 @@
|
||||
<p class="date">Week 21, 2026 (May 25, 2026)</p>
|
||||
</header>
|
||||
|
||||
<nav class="week-nav">
|
||||
<a class="prev" data-router-ignore href="/reports/weekly/2026-05-18.html">← 2026-05-18</a>
|
||||
<a class="next" data-router-ignore href="/reports/weekly/2026-06-01.html">2026-06-01 →</a>
|
||||
</nav>
|
||||
|
||||
<div class="stats-bar">
|
||||
<div class="stat">
|
||||
<div class="stat-value">5</div>
|
||||
|
||||
@@ -481,6 +481,41 @@
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
/* week-nav-css */
|
||||
.week-nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 1.5rem;
|
||||
padding: 0.75rem 1.5rem;
|
||||
background: var(--bg-secondary);
|
||||
border-radius: 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
.week-nav a {
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 8px;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 500;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
.week-nav a:hover {
|
||||
background: var(--bg-tertiary);
|
||||
}
|
||||
.week-nav .prev {
|
||||
margin-right: auto;
|
||||
}
|
||||
.week-nav .next {
|
||||
margin-left: auto;
|
||||
}
|
||||
.week-nav .spacer {
|
||||
flex: 1;
|
||||
}
|
||||
/* /week-nav-css */
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -490,6 +525,11 @@
|
||||
<p class="date">Week 22, 2026 (June 1, 2026)</p>
|
||||
</header>
|
||||
|
||||
<nav class="week-nav">
|
||||
<a class="prev" data-router-ignore href="/reports/weekly/2026-05-25.html">← 2026-05-25</a>
|
||||
<a class="next" data-router-ignore href="/reports/weekly/2026-06-08.html">2026-06-08 →</a>
|
||||
</nav>
|
||||
|
||||
<div class="stats-bar">
|
||||
<div class="stat">
|
||||
<div class="stat-value">5</div>
|
||||
|
||||
@@ -481,6 +481,41 @@
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
/* week-nav-css */
|
||||
.week-nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 1.5rem;
|
||||
padding: 0.75rem 1.5rem;
|
||||
background: var(--bg-secondary);
|
||||
border-radius: 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
.week-nav a {
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 8px;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 500;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
.week-nav a:hover {
|
||||
background: var(--bg-tertiary);
|
||||
}
|
||||
.week-nav .prev {
|
||||
margin-right: auto;
|
||||
}
|
||||
.week-nav .next {
|
||||
margin-left: auto;
|
||||
}
|
||||
.week-nav .spacer {
|
||||
flex: 1;
|
||||
}
|
||||
/* /week-nav-css */
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -490,6 +525,11 @@
|
||||
<p class="date">Week 23, 2026 (June 8, 2026)</p>
|
||||
</header>
|
||||
|
||||
<nav class="week-nav">
|
||||
<a class="prev" data-router-ignore href="/reports/weekly/2026-06-01.html">← 2026-06-01</a>
|
||||
<a class="next" data-router-ignore href="/reports/weekly/2026-06-15.html">2026-06-15 →</a>
|
||||
</nav>
|
||||
|
||||
<div class="stats-bar">
|
||||
<div class="stat">
|
||||
<div class="stat-value">5</div>
|
||||
|
||||
@@ -481,6 +481,41 @@
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
/* week-nav-css */
|
||||
.week-nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 1.5rem;
|
||||
padding: 0.75rem 1.5rem;
|
||||
background: var(--bg-secondary);
|
||||
border-radius: 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
.week-nav a {
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 8px;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 500;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
.week-nav a:hover {
|
||||
background: var(--bg-tertiary);
|
||||
}
|
||||
.week-nav .prev {
|
||||
margin-right: auto;
|
||||
}
|
||||
.week-nav .next {
|
||||
margin-left: auto;
|
||||
}
|
||||
.week-nav .spacer {
|
||||
flex: 1;
|
||||
}
|
||||
/* /week-nav-css */
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -490,6 +525,11 @@
|
||||
<p class="date">Week 24, 2026 (June 15, 2026)</p>
|
||||
</header>
|
||||
|
||||
<nav class="week-nav">
|
||||
<a class="prev" data-router-ignore href="/reports/weekly/2026-06-08.html">← 2026-06-08</a>
|
||||
<a class="next" data-router-ignore href="/reports/weekly/2026-06-22.html">2026-06-22 →</a>
|
||||
</nav>
|
||||
|
||||
<div class="stats-bar">
|
||||
<div class="stat">
|
||||
<div class="stat-value">5</div>
|
||||
|
||||
@@ -481,6 +481,41 @@
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
/* week-nav-css */
|
||||
.week-nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 1.5rem;
|
||||
padding: 0.75rem 1.5rem;
|
||||
background: var(--bg-secondary);
|
||||
border-radius: 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
.week-nav a {
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 8px;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 500;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
.week-nav a:hover {
|
||||
background: var(--bg-tertiary);
|
||||
}
|
||||
.week-nav .prev {
|
||||
margin-right: auto;
|
||||
}
|
||||
.week-nav .next {
|
||||
margin-left: auto;
|
||||
}
|
||||
.week-nav .spacer {
|
||||
flex: 1;
|
||||
}
|
||||
/* /week-nav-css */
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -490,6 +525,11 @@
|
||||
<p class="date">Week 25, 2026 (June 22, 2026)</p>
|
||||
</header>
|
||||
|
||||
<nav class="week-nav">
|
||||
<a class="prev" data-router-ignore href="/reports/weekly/2026-06-15.html">← 2026-06-15</a>
|
||||
<a class="next" data-router-ignore href="/reports/weekly/2026-06-29.html">2026-06-29 →</a>
|
||||
</nav>
|
||||
|
||||
<div class="stats-bar">
|
||||
<div class="stat">
|
||||
<div class="stat-value">4</div>
|
||||
|
||||
@@ -481,6 +481,41 @@
|
||||
font-size: 1.5rem;
|
||||
}
|
||||
}
|
||||
/* week-nav-css */
|
||||
.week-nav {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-bottom: 1.5rem;
|
||||
padding: 0.75rem 1.5rem;
|
||||
background: var(--bg-secondary);
|
||||
border-radius: 12px;
|
||||
border: 1px solid var(--border-color);
|
||||
flex-wrap: wrap;
|
||||
gap: 0.5rem;
|
||||
}
|
||||
.week-nav a {
|
||||
color: var(--text-primary);
|
||||
text-decoration: none;
|
||||
padding: 0.5rem 1rem;
|
||||
border-radius: 8px;
|
||||
font-size: 0.95rem;
|
||||
font-weight: 500;
|
||||
transition: background 0.2s;
|
||||
}
|
||||
.week-nav a:hover {
|
||||
background: var(--bg-tertiary);
|
||||
}
|
||||
.week-nav .prev {
|
||||
margin-right: auto;
|
||||
}
|
||||
.week-nav .next {
|
||||
margin-left: auto;
|
||||
}
|
||||
.week-nav .spacer {
|
||||
flex: 1;
|
||||
}
|
||||
/* /week-nav-css */
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
@@ -490,6 +525,11 @@
|
||||
<p class="date">Week 26, 2026 (June 29, 2026)</p>
|
||||
</header>
|
||||
|
||||
<nav class="week-nav">
|
||||
<a class="prev" data-router-ignore href="/reports/weekly/2026-06-22.html">← 2026-06-22</a>
|
||||
<span class="spacer"></span>
|
||||
</nav>
|
||||
|
||||
<div class="stats-bar">
|
||||
<div class="stat">
|
||||
<div class="stat-value">1</div>
|
||||
|
||||
Reference in New Issue
Block a user