Module:BibleQuote: Difference between revisions

From BibleVerseWiki
No edit summary
No edit summary
Line 9: Line 9:
end
end


local function renderVerse(verse, showPilcrow)
local function renderVerse(verseName, showPilcrow)
     return showPilcrow and verse or removePilcrow(verse)     
     return  
        showPilcrow and expandTemplate(verseName)
        or removePilcrow(expandTemplate(verseName))     
end
end


Line 19: Line 21:


     if stopVerse == nil then
     if stopVerse == nil then
         return renderVerse(expandTemplate(verseSpec), showPilcrow)
         return renderVerse(verseSpec, showPilcrow)
     end
     end
      
      
     for i = startVerse, stopVerse, 1 do
     for i = startVerse, stopVerse, 1 do
         table.insert(verses, renderVerse(expandTemplate(book.." "..chapter..":"..i), showPilcrow))         
         table.insert(verses, renderVerse(book.." "..chapter..":"..i, showPilcrow))         
     end
     end



Revision as of 21:38, 8 December 2023

Documentation for this module may be created at Module:BibleQuote/doc

local p = {} --p stands for package

local function removePilcrow(verse)    
    return (string.gsub(verse, "¶", ""))
end

local function expandTemplate(title, ...)
    return mw.getCurrentFrame():expandTemplate{title = title};
end

local function renderVerse(verseName, showPilcrow)
    return 
        showPilcrow and expandTemplate(verseName) 
        or removePilcrow(expandTemplate(verseName))    
end

local function verses(verseSpec, showPilcrow)
    local _, _, book, chapter, startVerse, stopVerse = 
        string.find(verseSpec, "%s-(.+)%s+(%d+):(%d+)-(%d+)")
    local verses = {}

    if stopVerse == nil then
        return renderVerse(verseSpec, showPilcrow)
    end
    
    for i = startVerse, stopVerse, 1 do
        table.insert(verses, renderVerse(book.." "..chapter..":"..i, showPilcrow))        
    end

    return table.concat(verses, " ")    
end

local function addVerseNumber(verse, number)
    return (string.gsub(verse, "^", ""))
end

local function addChapterNumber(verse, number)
    return (string.gsub(verse, "^", ""))
end

function p.standard(frame)        
    return verses(frame.args[1], frame.args.showPilcrow or false)       
end

return p