Simplified BibleReader parsing - NKJV files now use standard mdbible format with numbered verses
This commit is contained in:
@@ -229,7 +229,7 @@ const BibleReader: React.FC<BibleReaderProps> = ({ book, chapter, onBack, format
|
||||
}
|
||||
};
|
||||
|
||||
const parseBibleText = (text: string, version: string) => {
|
||||
const parseBibleText = (text: string) => {
|
||||
const lines = text.split('\n');
|
||||
const verses: JSX.Element[] = [];
|
||||
|
||||
@@ -239,27 +239,12 @@ const BibleReader: React.FC<BibleReaderProps> = ({ book, chapter, onBack, format
|
||||
// Skip empty lines
|
||||
if (!line) continue;
|
||||
|
||||
let verseNumber: string | null = null;
|
||||
let verseText: string | null = null;
|
||||
// Check if line is a numbered verse (e.g., "1. ", "2. ", etc.)
|
||||
const verseMatch = line.match(/^(\d+)\.\s+(.+)$/);
|
||||
if (verseMatch) {
|
||||
const verseNumber = verseMatch[1];
|
||||
const verseText = verseMatch[2];
|
||||
|
||||
// Check for different verse formats based on version
|
||||
if (version === 'nkjv') {
|
||||
// NKJV: ###### 1 In the beginning God created...
|
||||
const nkjvMatch = line.match(/^#+\s+(\d+)\s+(.+)$/);
|
||||
if (nkjvMatch) {
|
||||
verseNumber = nkjvMatch[1];
|
||||
verseText = nkjvMatch[2];
|
||||
}
|
||||
} else {
|
||||
// ESV: 1. In the beginning, God created the heavens and the earth.
|
||||
const esvMatch = line.match(/^(\d+)\.\s+(.+)$/);
|
||||
if (esvMatch) {
|
||||
verseNumber = esvMatch[1];
|
||||
verseText = esvMatch[2];
|
||||
}
|
||||
}
|
||||
|
||||
if (verseNumber && verseText) {
|
||||
verses.push(
|
||||
<div key={`verse-${verseNumber}`} id={`verse-${verseNumber}`} className="mb-4 flex items-start p-2 rounded transition-colors">
|
||||
<div className="flex-1">
|
||||
@@ -267,15 +252,15 @@ const BibleReader: React.FC<BibleReaderProps> = ({ book, chapter, onBack, format
|
||||
<span className="bible-text">{verseText}</span>
|
||||
</div>
|
||||
{/* Star button - only show for authenticated users */}
|
||||
{user && verseNumber && (
|
||||
{user && (
|
||||
<button
|
||||
onClick={() => verseNumber && toggleFavorite(verseNumber)}
|
||||
onClick={() => toggleFavorite(verseNumber)}
|
||||
className="ml-2 mt-1 p-1 rounded hover:bg-gray-200 dark:hover:bg-gray-600 transition-colors"
|
||||
title={favorites.has(verseNumber!) ? 'Remove from favorites' : 'Add to favorites'}
|
||||
title={favorites.has(verseNumber) ? 'Remove from favorites' : 'Add to favorites'}
|
||||
>
|
||||
<Star
|
||||
className={`h-4 w-4 ${
|
||||
favorites.has(verseNumber!)
|
||||
favorites.has(verseNumber)
|
||||
? 'text-yellow-500 fill-yellow-500'
|
||||
: 'text-gray-400 hover:text-yellow-500'
|
||||
} transition-colors`}
|
||||
@@ -285,11 +270,7 @@ const BibleReader: React.FC<BibleReaderProps> = ({ book, chapter, onBack, format
|
||||
</div>
|
||||
);
|
||||
} else if (line.startsWith('#')) {
|
||||
// Chapter header - skip full header lines for NKJV as they're part of the title
|
||||
if (version === 'nkjv' && line.match(/^#+\s+\d+\s+.+/)) {
|
||||
// This is already handled above as verses
|
||||
continue;
|
||||
}
|
||||
// Chapter header
|
||||
const headerText = line.replace(/^#+\s*/, '');
|
||||
verses.push(
|
||||
<h2 key={`header-${i}`} className="chapter-title text-2xl font-bold text-gray-900 dark:text-gray-100 mb-6 mt-8">
|
||||
@@ -387,7 +368,7 @@ const BibleReader: React.FC<BibleReaderProps> = ({ book, chapter, onBack, format
|
||||
|
||||
{/* Bible Content */}
|
||||
<div className={`max-w-3xl mx-auto ${getFontSizeClass()}`}>
|
||||
{parseBibleText(content, version)}
|
||||
{parseBibleText(content)}
|
||||
</div>
|
||||
|
||||
{/* Footer Navigation */}
|
||||
|
||||
Reference in New Issue
Block a user