mirror of
https://github.com/kennethreitz/kjvstudy.org.git
synced 2026-10-24 14:29:14 +00:00
Soup up the book landing pages (Joel et al.): Old/New Testament kicker, letterspaced-caps book title matching the chapter pages, gold-tipped Chapters heading, and key verses as gilt scripture plates with bronze references and quiet significance notes. Then a full sweep of the 32 remaining templates, applying the shared patterns (gold-tipped small-caps apparatus headings, elevated cards, chip buttons, gilt scripture plates, bronze micro-labels, token-only colors, dark mode from tokens alone): - about, about_claude, accessibility (system TOC cards, gilt CTA plate) - resources, resource_index (elevated cards, bronze counts; fixed a featured-card style built on raw gold hex) - names_of_god, tetragrammaton (scripture plates, chip actions) - biblical_angels, biblical_covenants, biblical_festivals - biblical_prophets, twelve_apostles, women_of_the_bible, fruits_of_spirit - parables, interlinear_landing - family_tree_person, family_tree_search (muted gender inks, gold for the messianic line) - family_tree_ancestors, _descendants, _generation, _lineage - search (scripture-plate results, gold-washed <mark> highlights), stars (star/gilt tokens), stats (stat-card grids in old-style numerals) - commentary_index, cross_references_index (in-place TOC variants), error (404/500 rebuilt as a framed plate with the lost-sheep parable rubricated — Luke 15:4) - reading_plan_detail (accent progress UI), topic_detail (scripture plates), strongs_language_index, stories_kids_index (~190 lines of purple dark-mode CSS removed) Also fixed the last stragglers the sweep verifier found: raw #4a7c59 JS outlines in story_detail and the shared tree keyboard-nav partial, and an undefined --border-color-light variable in stories_index. All 976 tests pass; data validation 9/9; every template compiles. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
244 lines
6.7 KiB
HTML
244 lines
6.7 KiB
HTML
{% extends "base.html" %}
|
|
|
|
{% block title %}Commentary Index - KJV Study{% endblock %}
|
|
{% block description %}Browse all {{ "{:,}".format(total_verses) }} verses with in-depth theological commentary{% endblock %}
|
|
|
|
{% block content %}
|
|
<article>
|
|
<h1>Commentary Index</h1>
|
|
<p class="subtitle">{{ "{:,}".format(total_verses) }} verses across {{ total_books }} books with comprehensive theological analysis</p>
|
|
|
|
<section>
|
|
<p>This index lists every verse in the KJV Bible that has enhanced commentary available. Each commentary includes:</p>
|
|
<ul>
|
|
<li><strong>Theological Analysis</strong> - In-depth exposition with Greek/Hebrew word studies</li>
|
|
<li><strong>Historical Context</strong> - Cultural and historical background</li>
|
|
<li><strong>Reflection Questions</strong> - For personal study or group discussion</li>
|
|
</ul>
|
|
<p>Click any verse reference to read its commentary.</p>
|
|
</section>
|
|
|
|
<nav class="toc">
|
|
<h2>Table of Contents</h2>
|
|
<div class="toc-columns">
|
|
{% for book, chapters in commentary_index.items() %}
|
|
<a href="#{{ book|replace(' ', '-')|lower }}" class="toc-link">{{ book }}</a>
|
|
{% endfor %}
|
|
</div>
|
|
</nav>
|
|
|
|
{% for book, chapters in commentary_index.items() %}
|
|
<section class="book-section" id="{{ book|replace(' ', '-')|lower }}">
|
|
<h2>{{ book }}</h2>
|
|
{% for chapter, verses in chapters.items() %}
|
|
<div class="chapter-group">
|
|
<strong>Chapter {{ chapter }}:</strong>
|
|
<span class="verse-list">{% for verse in verses %}<a href="/book/{{ book|urlencode }}/chapter/{{ chapter }}/verse/{{ verse }}" class="verse-link">{{ verse }}</a>{% if not loop.last %}, {% endif %}{% endfor %}</span>
|
|
<span class="verse-count">({{ verses|length }} {% if verses|length == 1 %}verse{% else %}verses{% endif %})</span>
|
|
</div>
|
|
{% endfor %}
|
|
</section>
|
|
{% endfor %}
|
|
|
|
<section class="stats-section">
|
|
<h2>Coverage Statistics</h2>
|
|
<table>
|
|
<tr>
|
|
<td><strong>Total Books with Commentary</strong></td>
|
|
<td>{{ total_books }} of 66</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Total Verses with Commentary</strong></td>
|
|
<td>{{ "{:,}".format(total_verses) }} of 31,102</td>
|
|
</tr>
|
|
<tr>
|
|
<td><strong>Coverage Percentage</strong></td>
|
|
<td>{{ "%.1f"|format((total_verses / 31102) * 100) }}%</td>
|
|
</tr>
|
|
</table>
|
|
</section>
|
|
</article>
|
|
|
|
<style>
|
|
.subtitle {
|
|
font-size: 1.2rem;
|
|
color: var(--text-secondary);
|
|
margin-top: -1rem;
|
|
margin-bottom: 2rem;
|
|
font-style: italic;
|
|
}
|
|
|
|
.toc {
|
|
margin: 2rem 0;
|
|
padding: 1.5rem 1.75rem;
|
|
background: var(--bg-elevated);
|
|
border: 1px solid var(--border-color-dark);
|
|
border-radius: 8px;
|
|
box-shadow: var(--shadow-soft);
|
|
}
|
|
|
|
/* Apparatus heading — small caps over a gold-tipped rule */
|
|
.toc h2 {
|
|
position: relative;
|
|
margin: 0 0 1rem;
|
|
font-size: 0.85rem !important;
|
|
font-weight: 600;
|
|
font-style: normal !important;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.18em;
|
|
color: var(--text-secondary) !important;
|
|
padding-bottom: 0.6rem;
|
|
border-bottom: 1px solid var(--border-color);
|
|
}
|
|
|
|
.toc h2::after {
|
|
content: '';
|
|
position: absolute;
|
|
left: 0;
|
|
bottom: -1px;
|
|
width: 2.75rem;
|
|
height: 1px;
|
|
background: var(--gold);
|
|
}
|
|
|
|
.toc-columns {
|
|
display: grid;
|
|
grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
|
|
gap: 0.5rem;
|
|
}
|
|
|
|
.toc-link {
|
|
text-decoration: none;
|
|
color: var(--text-color);
|
|
border-bottom: 1px solid transparent;
|
|
}
|
|
|
|
.toc-link:hover {
|
|
color: var(--accent-strong);
|
|
border-bottom-color: var(--underline);
|
|
}
|
|
|
|
.book-section {
|
|
margin: 2.5rem 0;
|
|
padding: 1.5rem 1.75rem;
|
|
background: var(--bg-elevated);
|
|
border: 1px solid var(--border-color-dark);
|
|
border-radius: 8px;
|
|
}
|
|
|
|
.book-section h2 {
|
|
position: relative;
|
|
margin: 0 0 1.25rem;
|
|
font-size: 0.95rem !important;
|
|
font-weight: 600;
|
|
font-style: normal !important;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.18em;
|
|
color: var(--text-secondary) !important;
|
|
padding-bottom: 0.6rem;
|
|
border-bottom: 1px solid var(--border-color);
|
|
}
|
|
|
|
.book-section h2::after {
|
|
content: '';
|
|
position: absolute;
|
|
left: 0;
|
|
bottom: -1px;
|
|
width: 2.75rem;
|
|
height: 1px;
|
|
background: var(--gold);
|
|
}
|
|
|
|
.chapter-group {
|
|
margin: 0.75rem 0;
|
|
padding: 0.5rem 0;
|
|
line-height: 1.8;
|
|
}
|
|
|
|
.chapter-group strong {
|
|
display: inline-block;
|
|
min-width: 100px;
|
|
font-size: 0.75rem;
|
|
font-weight: 600;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.14em;
|
|
color: var(--bronze);
|
|
}
|
|
|
|
.verse-list {
|
|
display: inline;
|
|
}
|
|
|
|
.verse-link {
|
|
text-decoration: none;
|
|
color: var(--link-color);
|
|
border-bottom: 1px solid transparent;
|
|
}
|
|
|
|
.verse-link:hover {
|
|
color: var(--accent-strong);
|
|
border-bottom-color: var(--underline);
|
|
}
|
|
|
|
.verse-count {
|
|
margin-left: 0.5rem;
|
|
color: var(--text-tertiary);
|
|
font-size: 0.9rem;
|
|
font-style: italic;
|
|
}
|
|
|
|
.stats-section {
|
|
margin-top: 3rem;
|
|
padding-top: 2rem;
|
|
border-top: 1px solid var(--border-color);
|
|
}
|
|
|
|
.stats-section h2 {
|
|
position: relative;
|
|
margin: 0 0 1.25rem;
|
|
font-size: 0.95rem !important;
|
|
font-weight: 600;
|
|
font-style: normal !important;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.18em;
|
|
color: var(--text-secondary) !important;
|
|
padding-bottom: 0.6rem;
|
|
border-bottom: 1px solid var(--border-color);
|
|
}
|
|
|
|
.stats-section h2::after {
|
|
content: '';
|
|
position: absolute;
|
|
left: 0;
|
|
bottom: -1px;
|
|
width: 2.75rem;
|
|
height: 1px;
|
|
background: var(--gold);
|
|
}
|
|
|
|
table {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
margin: 1.5rem 0;
|
|
}
|
|
|
|
tr {
|
|
border-bottom: 1px solid var(--border-color);
|
|
}
|
|
|
|
td {
|
|
padding: 0.75rem 1rem;
|
|
}
|
|
|
|
td:first-child {
|
|
width: 60%;
|
|
}
|
|
|
|
td:last-child {
|
|
text-align: right;
|
|
font-variant-numeric: tabular-nums;
|
|
color: var(--text-secondary);
|
|
}
|
|
</style>
|
|
{% endblock %}
|