@jager-ai/holy-bible-api
Version:
성경 구절 검색 및 슬래시 명령어 지원 API 모듈
67 lines (66 loc) • 1.88 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseBibleText = parseBibleText;
exports.extractCleanText = extractCleanText;
exports.extractHeading = extractHeading;
exports.formatBibleText = formatBibleText;
exports.splitIntoVerses = splitIntoVerses;
exports.cleanReference = cleanReference;
exports.containsBibleVerse = containsBibleVerse;
exports.extractBibleReferences = extractBibleReferences;
function parseBibleText(text) {
if (!text) {
return { text: '', heading: null };
}
const headingMatch = text.match(/^\[([^\]]+)\]\s*(.*)$/s);
if (headingMatch) {
return {
text: headingMatch[2].trim(),
heading: headingMatch[1].trim()
};
}
return {
text: text.trim(),
heading: null
};
}
function extractCleanText(text) {
const parsed = parseBibleText(text);
return parsed.text;
}
function extractHeading(text) {
const parsed = parseBibleText(text);
return parsed.heading;
}
function formatBibleText(text, heading) {
if (heading) {
return `[${heading}] ${text}`;
}
return text;
}
function splitIntoVerses(text) {
return text
.split(/\n+/)
.map(line => line.trim())
.filter(line => line.length > 0);
}
function cleanReference(reference) {
return reference
.replace(/\s+/g, ' ')
.replace(/\s*:\s*/g, ':')
.replace(/\s*-\s*/g, '-')
.trim();
}
function containsBibleVerse(text) {
const versePattern = /[가-힣]+\s*\d+\s*:\s*\d+/;
return versePattern.test(text);
}
function extractBibleReferences(text) {
const references = [];
const pattern = /([가-힣]+\s*\d+\s*:\s*\d+(?:\s*-\s*\d+)?)/g;
let match;
while ((match = pattern.exec(text)) !== null) {
references.push(cleanReference(match[1]));
}
return references;
}