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>
344 lines
12 KiB
HTML
344 lines
12 KiB
HTML
{% extends "base.html" %}
|
|
|
|
{% block title %}Names of God - KJV Study{% endblock %}
|
|
{% block description %}Explore the sacred names and titles of God revealed in Scripture, from Elohim to Jehovah, with Hebrew meanings and theological significance.{% endblock %}
|
|
|
|
{% block head %}
|
|
<style>
|
|
.name-section {
|
|
margin: 2rem 0;
|
|
padding-top: 1rem;
|
|
}
|
|
|
|
/* Category headings — small caps over a gold-tipped rule (index apparatus) */
|
|
.name-section > h2 {
|
|
position: relative;
|
|
font-size: 0.95rem !important;
|
|
font-weight: 600;
|
|
font-style: normal !important;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.18em;
|
|
color: var(--text-secondary) !important;
|
|
margin: 0 0 1.25rem;
|
|
padding-bottom: 0.6rem;
|
|
border-bottom: 1px solid var(--border-color);
|
|
max-width: 60%;
|
|
}
|
|
|
|
.name-section > h2::after {
|
|
content: '';
|
|
position: absolute;
|
|
left: 0;
|
|
bottom: -1px;
|
|
width: 2.75rem;
|
|
height: 1px;
|
|
background: var(--gold);
|
|
}
|
|
|
|
.name-entry {
|
|
margin: 1.5rem 0 2.5rem 0;
|
|
}
|
|
|
|
.name-heading {
|
|
font-size: 1.8rem;
|
|
font-weight: 400;
|
|
margin-bottom: 0.25rem;
|
|
}
|
|
|
|
.name-heading a {
|
|
color: var(--text-strong);
|
|
text-decoration: none;
|
|
}
|
|
|
|
.name-heading a:hover {
|
|
color: var(--accent-strong);
|
|
border-bottom: 1px solid var(--accent-strong);
|
|
}
|
|
|
|
.name-title {
|
|
font-size: 1.1rem;
|
|
color: var(--text-secondary);
|
|
font-style: italic;
|
|
margin-bottom: 1rem;
|
|
}
|
|
|
|
.name-description {
|
|
max-width: 60%;
|
|
font-size: 1.2rem;
|
|
line-height: 1.9;
|
|
margin: 1.5rem 0;
|
|
}
|
|
|
|
.verse-list {
|
|
margin: 1.5rem 0 0 0;
|
|
max-width: 60%;
|
|
}
|
|
|
|
/* Scripture plates — quoted verses with a gilt spine */
|
|
.verse-item {
|
|
margin: 1.25rem 0;
|
|
padding: 1.25rem 1.5rem;
|
|
background: var(--bg-elevated);
|
|
border: 1px solid var(--border-color-dark);
|
|
border-left: 3px solid var(--gold);
|
|
border-radius: 0 8px 8px 0;
|
|
transition: border-color 0.15s ease, box-shadow 0.15s ease;
|
|
}
|
|
|
|
.verse-item:hover {
|
|
border-top-color: var(--accent);
|
|
border-right-color: var(--accent);
|
|
border-bottom-color: var(--accent);
|
|
box-shadow: var(--shadow-soft);
|
|
}
|
|
|
|
.verse-ref {
|
|
font-weight: 600;
|
|
font-size: 0.78rem;
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.16em;
|
|
margin-bottom: 0.6rem;
|
|
color: var(--bronze);
|
|
}
|
|
|
|
.verse-ref a {
|
|
color: var(--bronze) !important;
|
|
text-decoration: none;
|
|
border-bottom: none;
|
|
}
|
|
|
|
.verse-ref a:hover {
|
|
color: var(--accent-strong) !important;
|
|
border-bottom: 1px solid currentColor;
|
|
}
|
|
|
|
.verse-text {
|
|
font-style: italic;
|
|
color: var(--text-strong);
|
|
line-height: 1.85;
|
|
font-size: 1.15rem;
|
|
}
|
|
|
|
.names-actions {
|
|
display: flex;
|
|
gap: 0.75rem;
|
|
margin: 1rem 0 1.5rem;
|
|
}
|
|
|
|
.action-btn {
|
|
display: inline-flex;
|
|
align-items: center;
|
|
gap: 0.35rem;
|
|
padding: 0.45rem 0.9rem;
|
|
font-size: 0.85rem;
|
|
color: var(--text-secondary);
|
|
background: var(--bg-elevated);
|
|
border: 1px solid var(--border-color-dark);
|
|
border-radius: 6px;
|
|
text-decoration: none;
|
|
cursor: pointer;
|
|
transition: all 0.2s;
|
|
}
|
|
|
|
.action-btn:hover {
|
|
background: var(--accent-softer);
|
|
border-color: var(--accent);
|
|
color: var(--accent-strong);
|
|
}
|
|
|
|
.action-btn svg {
|
|
width: 14px;
|
|
height: 14px;
|
|
}
|
|
|
|
.action-btn.playing {
|
|
background: var(--accent-fill);
|
|
color: var(--on-accent);
|
|
border-color: var(--accent-fill);
|
|
}
|
|
|
|
{% include "partials/_toc_styles.html" %}
|
|
|
|
@media (max-width: 768px) {
|
|
.name-section > h2,
|
|
.name-description,
|
|
.verse-list,
|
|
.intro-text {
|
|
max-width: 100%;
|
|
}
|
|
}
|
|
|
|
@media print {
|
|
.names-actions,
|
|
.toc {
|
|
display: none !important;
|
|
}
|
|
|
|
.name-description,
|
|
.verse-list,
|
|
.verse-text,
|
|
.intro-text {
|
|
max-width: 100% !important;
|
|
}
|
|
|
|
.name-entry {
|
|
page-break-inside: avoid;
|
|
}
|
|
|
|
.sidenote,
|
|
.marginnote {
|
|
display: block;
|
|
float: none;
|
|
width: 100%;
|
|
margin: 0.5rem 0;
|
|
font-size: 0.9rem;
|
|
color: var(--text-secondary);
|
|
}
|
|
}
|
|
</style>
|
|
{% endblock %}
|
|
|
|
{% block content %}
|
|
<h1>Names of God</h1>
|
|
<p class="subtitle">The Divine Names Revealed in Holy Scripture</p>
|
|
|
|
<div class="names-actions">
|
|
<button class="action-btn" id="listen-btn">
|
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15.536 8.464a5 5 0 010 7.072m2.828-9.9a9 9 0 010 12.728M5.586 15H4a1 1 0 01-1-1v-4a1 1 0 011-1h1.586l4.707-4.707C10.923 3.663 12 4.109 12 5v14c0 .891-1.077 1.337-1.707.707L5.586 15z" />
|
|
</svg>
|
|
Listen
|
|
</button>
|
|
{% if pdf_available %}
|
|
<a class="action-btn" href="/names-of-god/pdf">
|
|
<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor">
|
|
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 10v6m0 0l-3-3m3 3l3-3m2 8H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z" />
|
|
</svg>
|
|
Download PDF
|
|
</a>
|
|
{% endif %}
|
|
</div>
|
|
|
|
<nav class="toc" id="toc">
|
|
<h2>Contents</h2>
|
|
<ul id="toc-list"></ul>
|
|
</nav>
|
|
|
|
<section>
|
|
<p class="intro-text"><span class="newthought">The revelation of God's names</span> throughout Scripture unveils the character and attributes of the Almighty. Each name discloses some aspect of the divine nature—His power, mercy, faithfulness, or sovereignty.<label for="sn-names" class="margin-toggle sidenote-number"></label>
|
|
<input type="checkbox" id="sn-names" class="margin-toggle"/>
|
|
<span class="sidenote">In Hebrew thought, a name represented the essential nature and character of its bearer. To know God's name meant intimate knowledge of His person and attributes—hence the sacred reverence with which the covenant name יהוה was treated.</span> These names were not arbitrarily chosen but divinely revealed, each one a window into the infinite perfections of the Godhead.</p>
|
|
|
|
<p class="intro-text">The multiplicity of divine names does not suggest multiple deities but rather the inexhaustible richness of the one true God. No single name could encompass His fullness; thus Scripture employs various appellations, each emphasizing different facets of His being and His relationship to His creation.<label for="sn-ineffable" class="margin-toggle sidenote-number"></label>
|
|
<input type="checkbox" id="sn-ineffable" class="margin-toggle"/>
|
|
<span class="sidenote">The Kabbalistic tradition speaks of seventy-two names of God, though such enumerations venture beyond the clear teaching of Scripture. The biblical text itself reveals approximately fifteen primary names and numerous descriptive titles.</span></p>
|
|
</section>
|
|
|
|
{% for category, names in names_data.items() %}
|
|
<section class="name-section">
|
|
<h2>{{ category }}</h2>
|
|
|
|
{% for name_text, name in names.items() %}
|
|
<article class="name-entry">
|
|
<h3 class="name-heading">
|
|
<a href="/names-of-god/{{ name_text|slugify }}">{{ name_text }}</a>
|
|
</h3>
|
|
<p class="name-title">{{ name.title }}</p>
|
|
|
|
<div class="name-description">
|
|
<p>{{ name.description | link_verses | link_names | safe }}</p>
|
|
</div>
|
|
|
|
{% if name.verses %}
|
|
<div class="verse-list">
|
|
{% for verse in name.verses %}
|
|
<div class="verse-item">
|
|
<div class="verse-ref">
|
|
{% set ref_parts = verse.reference.split(' ') %}
|
|
{% if ref_parts|length >= 2 %}
|
|
{% set chapter_verse = ref_parts[-1] %}
|
|
{% if ':' in chapter_verse %}
|
|
{% set chapter = chapter_verse.split(':')[0] %}
|
|
{% set verse_num = chapter_verse.split(':')[1] %}
|
|
{% set book = ' '.join(ref_parts[:-1]) %}
|
|
<a href="/book/{{ book }}/chapter/{{ chapter }}/verse/{{ verse_num }}">{{ verse.reference }}</a>
|
|
{% endif %}
|
|
{% endif %}
|
|
</div>
|
|
<div class="verse-text">{{ verse.text | link_names | safe }}</div>
|
|
</div>
|
|
{% endfor %}
|
|
</div>
|
|
{% endif %}
|
|
</article>
|
|
{% endfor %}
|
|
</section>
|
|
{% endfor %}
|
|
|
|
<section>
|
|
<h2>The Significance of Divine Names</h2>
|
|
<p class="intro-text">Understanding God's names enriches our comprehension of His person and our relationship with Him:</p>
|
|
|
|
<p class="intro-text"><span class="newthought">Progressive revelation</span>, wherein each name was revealed at a particular juncture in redemptive history, appropriate to the need of that moment. Abraham knew El Shaddai; Moses received the covenant name Jehovah; the psalmists celebrated Jehovah-Nissi and Jehovah-Shalom.</p>
|
|
|
|
<p class="intro-text"><span class="newthought">Comprehensive provision</span>, for the various names disclose God's complete sufficiency for every human need. He is Provider (Jehovah-Jireh), Healer (Jehovah-Rapha), Peace (Jehovah-Shalom), Righteousness (Jehovah-Tsidkenu), and abiding Presence (Jehovah-Shammah).<label for="sn-compound" class="margin-toggle sidenote-number"></label>
|
|
<input type="checkbox" id="sn-compound" class="margin-toggle"/>
|
|
<span class="sidenote">The compound names combining יהוה (Jehovah) with descriptive terms represent not different gods but different revelations of the one covenant-keeping God meeting specific needs of His people throughout their history.</span></p>
|
|
|
|
<p class="intro-text"><span class="newthought">Worship and reverence</span>, as proper understanding of God's names leads to appropriate adoration. The third commandment—"Thou shalt not take the name of the LORD thy God in vain"—demands reverent treatment not merely of the vocalized name but of all that God's name represents.</p>
|
|
|
|
<p class="intro-text"><span class="newthought">Christological fulfillment</span>, wherein the Old Testament names find their ultimate realization in Christ. He is Emmanuel (God with us), the Prince of Peace, our Righteousness, the great I AM who spoke to Moses from the burning bush. In Him dwells all the fullness of the Godhead bodily.</p>
|
|
</section>
|
|
|
|
<script>
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
// Listen button handler
|
|
var listenBtn = document.getElementById('listen-btn');
|
|
var isListening = false;
|
|
if (listenBtn) {
|
|
listenBtn.addEventListener('click', function() {
|
|
if (isListening) {
|
|
if (window.KJVSpeech) window.KJVSpeech.stop();
|
|
listenBtn.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15.536 8.464a5 5 0 010 7.072m2.828-9.9a9 9 0 010 12.728M5.586 15H4a1 1 0 01-1-1v-4a1 1 0 011-1h1.586l4.707-4.707C10.923 3.663 12 4.109 12 5v14c0 .891-1.077 1.337-1.707.707L5.586 15z" /></svg> Listen';
|
|
isListening = false;
|
|
return;
|
|
}
|
|
var paragraphs = document.querySelectorAll('.intro-text, .name-description p, .verse-text');
|
|
var text = Array.from(paragraphs).map(function(p) {
|
|
return p.textContent.trim();
|
|
}).join(' ');
|
|
if (window.KJVSpeech && text) {
|
|
window.KJVSpeech.speak(text);
|
|
listenBtn.innerHTML = '<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24" stroke="currentColor"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M21 12a9 9 0 11-18 0 9 9 0 0118 0z" /><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 10a1 1 0 011-1h4a1 1 0 011 1v4a1 1 0 01-1 1h-4a1 1 0 01-1-1v-4z" /></svg> Stop';
|
|
isListening = true;
|
|
}
|
|
});
|
|
}
|
|
|
|
// Generate TOC from h2 and h3 headings
|
|
const tocList = document.getElementById('toc-list');
|
|
const headings = document.querySelectorAll('section h2, section h3, section article h3');
|
|
|
|
headings.forEach((heading) => {
|
|
if (!heading.id) {
|
|
heading.id = 'section-' + heading.textContent.toLowerCase().replace(/[^a-z0-9]+/g, '-');
|
|
}
|
|
const li = document.createElement('li');
|
|
if (heading.tagName === 'H3') li.classList.add('toc-h3');
|
|
const a = document.createElement('a');
|
|
a.href = '#' + heading.id;
|
|
a.textContent = heading.textContent;
|
|
li.appendChild(a);
|
|
tocList.appendChild(li);
|
|
});
|
|
|
|
// Simple keyboard navigation
|
|
KJVNav.initSimpleNav('.action-btn, .intro-text, .name-heading, .name-description > p, .verse-item');
|
|
});
|
|
</script>
|
|
{% endblock %}
|
|
|
|
<script>
|
|
document.body.dataset.resourceReader = 'true';
|
|
</script>
|