Add detail pages for all theological resources

Implement individual detail pages for all 7 remaining theological resource sections:
- Biblical Angels (12 entries)
- Biblical Prophets (9 entries)
- Biblical Covenants (7 entries)
- Biblical Festivals (7 entries)
- Names of God (14 entries)
- The Twelve Apostles (12 entries)
- Women of the Bible (12 entries)

Each resource now has:
- Detail route with slug-based URLs (e.g. /biblical-angels/michael-the-archangel)
- Full data populated from main route
- Generic resource_detail.html template for consistent UX
- Clickable names in listing pages
- Link hover styling
- Breadcrumb navigation
- Verse references linked to Bible passages

This provides 73 new individual resource pages across all theological sections,
improving SEO and user navigation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2025-11-21 18:17:00 -05:00
parent d7219dbbe0
commit 5ff4cbae6f
8 changed files with 1084 additions and 7 deletions
File diff suppressed because it is too large Load Diff
+13 -1
View File
@@ -24,6 +24,16 @@
margin-bottom: 0.25rem;
}
.angel-name a {
color: var(--link-color);
text-decoration: none;
}
.angel-name a:hover {
color: var(--link-hover);
border-bottom: 1px solid var(--link-hover);
}
.angel-title {
font-size: 1.1rem;
color: #666;
@@ -99,7 +109,9 @@
{% for angel_name, angel in angels.items() %}
<article class="angel-entry">
<h3 class="angel-name">{{ angel_name }}</h3>
<h3 class="angel-name">
<a href="/biblical-angels/{{ angel_name|lower|replace(' ', '-')|replace("'", '')|replace('(', '')|replace(')', '')|replace(',', '') }}">{{ angel_name }}</a>
</h3>
<p class="angel-title">{{ angel.title }}</p>
<div class="angel-description">
+13 -1
View File
@@ -24,6 +24,16 @@
margin-bottom: 0.25rem;
}
.covenant-name a {
color: var(--link-color);
text-decoration: none;
}
.covenant-name a:hover {
color: var(--link-hover);
border-bottom: 1px solid var(--link-hover);
}
.covenant-title {
font-size: 1.1rem;
color: #666;
@@ -99,7 +109,9 @@
{% for covenant_name, covenant in covenants.items() %}
<article class="covenant-entry">
<h3 class="covenant-name">{{ covenant_name }}</h3>
<h3 class="covenant-name">
<a href="/biblical-covenants/{{ covenant_name|lower|replace(' ', '-')|replace("'", '')|replace('(', '')|replace(')', '')|replace(',', '') }}">{{ covenant_name }}</a>
</h3>
<p class="covenant-title">{{ covenant.title }}</p>
<div class="covenant-description">
+13 -1
View File
@@ -24,6 +24,16 @@
margin-bottom: 0.25rem;
}
.festival-name a {
color: var(--link-color);
text-decoration: none;
}
.festival-name a:hover {
color: var(--link-hover);
border-bottom: 1px solid var(--link-hover);
}
.festival-title {
font-size: 1.1rem;
color: #666;
@@ -99,7 +109,9 @@
{% for festival_name, festival in festivals.items() %}
<article class="festival-entry">
<h3 class="festival-name">{{ festival_name }}</h3>
<h3 class="festival-name">
<a href="/biblical-festivals/{{ festival_name|lower|replace(' ', '-')|replace("'", '')|replace('(', '')|replace(')', '')|replace(',', '') }}">{{ festival_name }}</a>
</h3>
<p class="festival-title">{{ festival.title }}</p>
<div class="festival-description">
+13 -1
View File
@@ -24,6 +24,16 @@
margin-bottom: 0.25rem;
}
.prophet-name a {
color: var(--link-color);
text-decoration: none;
}
.prophet-name a:hover {
color: var(--link-hover);
border-bottom: 1px solid var(--link-hover);
}
.prophet-title {
font-size: 1.1rem;
color: #666;
@@ -99,7 +109,9 @@
{% for prophet_name, prophet in prophets.items() %}
<article class="prophet-entry">
<h3 class="prophet-name">{{ prophet_name }}</h3>
<h3 class="prophet-name">
<a href="/biblical-prophets/{{ prophet_name|lower|replace(' ', '-')|replace("'", '')|replace('(', '')|replace(')', '')|replace(',', '') }}">{{ prophet_name }}</a>
</h3>
<p class="prophet-title">{{ prophet.title }}</p>
<div class="prophet-description">
+13 -1
View File
@@ -24,6 +24,16 @@
margin-bottom: 0.25rem;
}
.name-heading a {
color: var(--link-color);
text-decoration: none;
}
.name-heading a:hover {
color: var(--link-hover);
border-bottom: 1px solid var(--link-hover);
}
.name-title {
font-size: 1.1rem;
color: #666;
@@ -99,7 +109,9 @@
{% for name_text, name in names.items() %}
<article class="name-entry">
<h3 class="name-heading">{{ name_text }}</h3>
<h3 class="name-heading">
<a href="/names-of-god/{{ name_text|lower|replace(' ', '-')|replace("'", '')|replace('(', '')|replace(')', '')|replace(',', '') }}">{{ name_text }}</a>
</h3>
<p class="name-title">{{ name.title }}</p>
<div class="name-description">
+13 -1
View File
@@ -24,6 +24,16 @@
margin-bottom: 0.25rem;
}
.apostle-name a {
color: var(--link-color);
text-decoration: none;
}
.apostle-name a:hover {
color: var(--link-hover);
border-bottom: 1px solid var(--link-hover);
}
.apostle-title {
font-size: 1.1rem;
color: #666;
@@ -99,7 +109,9 @@
{% for apostle_name, apostle in apostles.items() %}
<article class="apostle-entry">
<h3 class="apostle-name">{{ apostle_name }}</h3>
<h3 class="apostle-name">
<a href="/the-twelve-apostles/{{ apostle_name|lower|replace(' ', '-')|replace("'", '')|replace('(', '')|replace(')', '')|replace(',', '') }}">{{ apostle_name }}</a>
</h3>
<p class="apostle-title">{{ apostle.title }}</p>
<div class="apostle-description">
+13 -1
View File
@@ -24,6 +24,16 @@
margin-bottom: 0.25rem;
}
.woman-name a {
color: var(--link-color);
text-decoration: none;
}
.woman-name a:hover {
color: var(--link-hover);
border-bottom: 1px solid var(--link-hover);
}
.woman-title {
font-size: 1.1rem;
color: #666;
@@ -99,7 +109,9 @@
{% for woman_name, woman in women.items() %}
<article class="woman-entry">
<h3 class="woman-name">{{ woman_name }}</h3>
<h3 class="woman-name">
<a href="/women-of-the-bible/{{ woman_name|lower|replace(' ', '-')|replace("'", '')|replace('(', '')|replace(')', '')|replace(',', '') }}">{{ woman_name }}</a>
</h3>
<p class="woman-title">{{ woman.title }}</p>
<div class="woman-description">