diff --git a/kjvstudy_org/server.py b/kjvstudy_org/server.py
index d3ad68f..1c20169 100644
--- a/kjvstudy_org/server.py
+++ b/kjvstudy_org/server.py
@@ -4871,7 +4871,7 @@ def get_daily_verse(date_str=None):
@app.get("/sitemap.xml", response_class=Response)
def sitemap():
- """Generate sitemap.xml with all URLs"""
+ """Generate comprehensive sitemap.xml with all URLs"""
base_url = "https://kjvstudy.org"
current_date = datetime.now().strftime("%Y-%m-%d")
@@ -4889,18 +4889,54 @@ def sitemap():
weekly
0.9
+
+ {base_url}/books
+ {current_date}
+ monthly
+ 0.9
+
{base_url}/study-guides
{current_date}
weekly
0.9
+
+ {base_url}/reading-plans
+ {current_date}
+ monthly
+ 0.9
+
+
+ {base_url}/topics
+ {current_date}
+ monthly
+ 0.9
+
+
+ {base_url}/resources
+ {current_date}
+ monthly
+ 0.9
+
{base_url}/verse-of-the-day
{current_date}
daily
0.8
+
+ {base_url}/concordance
+ {current_date}
+ monthly
+ 0.8
+
+
+ {base_url}/interlinear
+ {current_date}
+ monthly
+ 0.8
+
{base_url}/biblical-maps
{current_date}
@@ -4919,6 +4955,181 @@ def sitemap():
monthly
0.8
+
+ {base_url}/biblical-angels
+ {current_date}
+ monthly
+ 0.8
+
+
+ {base_url}/biblical-prophets
+ {current_date}
+ monthly
+ 0.8
+
+
+ {base_url}/names-of-god
+ {current_date}
+ monthly
+ 0.8
+
+
+ {base_url}/tetragrammaton
+ {current_date}
+ monthly
+ 0.8
+
+
+ {base_url}/parables
+ {current_date}
+ monthly
+ 0.8
+
+
+ {base_url}/biblical-covenants
+ {current_date}
+ monthly
+ 0.8
+
+
+ {base_url}/the-twelve-apostles
+ {current_date}
+ monthly
+ 0.8
+
+
+ {base_url}/women-of-the-bible
+ {current_date}
+ monthly
+ 0.8
+
+
+ {base_url}/biblical-festivals
+ {current_date}
+ monthly
+ 0.8
+
+"""
+
+ # Study guide slugs
+ study_guide_slugs = [
+ "new-believer", "salvation", "gospel", "fruits-spirit",
+ "prayer-faith", "christian-living", "gods-love",
+ "hope-comfort", "wisdom-guidance"
+ ]
+ for slug in study_guide_slugs:
+ sitemap_xml += f"""
+ {base_url}/study-guides/{slug}
+ {current_date}
+ monthly
+ 0.7
+
+"""
+
+ # Reading plan IDs
+ reading_plan_ids = [
+ "chronological", "one-year", "new-testament", "gospels-acts",
+ "psalms-proverbs", "pentateuch", "prophets", "paul-epistles"
+ ]
+ for plan_id in reading_plan_ids:
+ sitemap_xml += f"""
+ {base_url}/reading-plans/{plan_id}
+ {current_date}
+ monthly
+ 0.7
+
+"""
+
+ # Topic names
+ topics = get_all_topics()
+ for topic_name in topics.keys():
+ sitemap_xml += f"""
+ {base_url}/topics/{topic_name}
+ {current_date}
+ monthly
+ 0.7
+
+"""
+
+ # Biblical angels, prophets, names of God, parables, covenants, apostles, women, festivals slugs
+ angel_slugs = ["michael", "gabriel", "lucifer", "abaddon"]
+ for slug in angel_slugs:
+ sitemap_xml += f"""
+ {base_url}/biblical-angels/{slug}
+ {current_date}
+ monthly
+ 0.7
+
+"""
+
+ prophet_slugs = ["moses", "elijah", "isaiah", "jeremiah", "ezekiel", "daniel", "jonah", "john-the-baptist"]
+ for slug in prophet_slugs:
+ sitemap_xml += f"""
+ {base_url}/biblical-prophets/{slug}
+ {current_date}
+ monthly
+ 0.7
+
+"""
+
+ god_name_slugs = ["elohim", "yahweh", "adonai", "el-shaddai", "yahweh-jireh", "yahweh-rapha", "yahweh-nissi", "yahweh-shalom", "yahweh-tsidkenu", "yahweh-shammah"]
+ for slug in god_name_slugs:
+ sitemap_xml += f"""
+ {base_url}/names-of-god/{slug}
+ {current_date}
+ monthly
+ 0.7
+
+"""
+
+ parable_slugs = ["sower", "wheat-tares", "mustard-seed", "good-samaritan", "prodigal-son", "lost-sheep", "talents", "wise-foolish-builders"]
+ for slug in parable_slugs:
+ sitemap_xml += f"""
+ {base_url}/parables/{slug}
+ {current_date}
+ monthly
+ 0.7
+
+"""
+
+ covenant_slugs = ["noahic", "abrahamic", "mosaic", "davidic", "new-covenant"]
+ for slug in covenant_slugs:
+ sitemap_xml += f"""
+ {base_url}/biblical-covenants/{slug}
+ {current_date}
+ monthly
+ 0.7
+
+"""
+
+ apostle_slugs = ["peter", "andrew", "james-son-of-zebedee", "john", "philip", "bartholomew", "thomas", "matthew", "james-son-of-alphaeus", "thaddaeus", "simon-zealot", "judas-iscariot"]
+ for slug in apostle_slugs:
+ sitemap_xml += f"""
+ {base_url}/the-twelve-apostles/{slug}
+ {current_date}
+ monthly
+ 0.7
+
+"""
+
+ women_slugs = ["eve", "sarah", "rebekah", "rachel", "miriam", "deborah", "ruth", "hannah", "esther", "mary-mother-of-jesus", "mary-magdalene", "martha"]
+ for slug in women_slugs:
+ sitemap_xml += f"""
+ {base_url}/women-of-the-bible/{slug}
+ {current_date}
+ monthly
+ 0.7
+
+"""
+
+ festival_slugs = ["passover", "unleavened-bread", "firstfruits", "pentecost", "trumpets", "atonement", "tabernacles"]
+ for slug in festival_slugs:
+ sitemap_xml += f"""
+ {base_url}/biblical-festivals/{slug}
+ {current_date}
+ monthly
+ 0.7
+
"""
# Add all book URLs
@@ -4941,7 +5152,7 @@ def sitemap():
"""
- # Add all chapter URLs for each book
+ # Add all chapter URLs and verse URLs for each book
chapters = [ch for bk, ch in bible.iter_chapters() if bk == book]
for chapter in chapters:
sitemap_xml += f"""
@@ -4951,6 +5162,43 @@ def sitemap():
0.6
"""
+ # Add chapter commentary
+ sitemap_xml += f"""
+ {base_url}/commentary/{book}/{chapter}
+ {current_date}
+ monthly
+ 0.5
+
+"""
+
+ # Add all verse URLs for this chapter
+ verses = [v for v in bible.iter_verses() if v.book == book and v.chapter == chapter]
+ for verse_num in range(1, len(verses) + 1):
+ sitemap_xml += f"""
+ {base_url}/book/{book}/chapter/{chapter}/verse/{verse_num}
+ {current_date}
+ yearly
+ 0.5
+
+"""
+
+ # Add interlinear verse URLs
+ try:
+ interlinear_verses = get_all_interlinear_verses()
+ for verse_info in interlinear_verses:
+ book = verse_info['book']
+ chapter = verse_info['chapter']
+ verse = verse_info['verse']
+ sitemap_xml += f"""
+ {base_url}/interlinear/book/{book}/chapter/{chapter}/verse/{verse}
+ {current_date}
+ yearly
+ 0.5
+
+"""
+ except Exception as e:
+ # If interlinear data fails to load, skip it
+ pass
sitemap_xml += ""