Module:BibleQuote: Difference between revisions
No edit summary |
No edit summary |
||
Line 24: | Line 24: | ||
local function renderVerse(verseName, verseNumber) | local function renderVerse(verseName, verseNumber) | ||
--local wikiText = mw.title.new(verseName):getContent(); | --local wikiText = mw.title.new(verseName):getContent(); | ||
local titleobject = mw.title.new( verseName ) | local titleobject = mw.title.new(verseName) | ||
local existspage = titleobject.exists | local existspage = titleobject.exists | ||
local pagecontent | local pagecontent | ||
if existspage then | if existspage then | ||
-- Method uses a colon} | |||
pagecontent = titleobject:getContent() | pagecontent = titleobject:getContent() | ||
else | else | ||
pagecontent = | pagecontent = verseName | ||
end | end | ||
-- local verse = expandTemplate(verseName) | -- local verse = expandTemplate(verseName) |
Revision as of 01:22, 12 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, "^<span class=\"pilcrow\">¶</span>%W-", ""))
end
local function expandTemplate(title, ...)
return mw.getCurrentFrame():expandTemplate { title = title };
end
local function compose(...)
local chain = { ... }
local function recurse(i, ...)
if i == #chain then return chain[i](...) end
return recurse(i + 1, chain[i](...))
end
return function(...) return recurse(1, ...) end
end
local function renderVerses(verseSpec, showVerseNumber, showPilcrow)
local _, _, book, chapter, startVerse, stopVerse =
string.find(verseSpec, "%s-(.+)%s+(%d+):(%d+)-(%d+)")
local verses = {}
local function renderVerse(verseName, verseNumber)
--local wikiText = mw.title.new(verseName):getContent();
local titleobject = mw.title.new(verseName)
local existspage = titleobject.exists
local pagecontent
if existspage then
-- Method uses a colon}
pagecontent = titleobject:getContent()
else
pagecontent = verseName
end
-- local verse = expandTemplate(verseName)
-- local function addVerseNumber(verse)
-- return (string.gsub(verse, "^", "<sup>" .. verseNumber .. "</sup> "))
-- end
-- local process = {}
-- if not showPilcrow then table.insert(process, removePilcrow) end
-- if showVerseNumber then table.insert(process, addVerseNumber) end
-- if #process > 0 then return compose(unpack(process))(verse) end
-- return verse
return pagecontent
end
if stopVerse == nil then return renderVerse(verseSpec, startVerse) end
for i = startVerse, stopVerse, 1 do
table.insert(verses, renderVerse(book .. " " .. chapter .. ":" .. i, i))
end
return table.concat(verses, " ")
end
local function addChapterNumber(verse, number)
return (string.gsub(verse, "^", ""))
end
function p.standard(frame)
local stringToBoolean = { ["true"] = true, ["false"] = false }
return renderVerses(
frame.args[1]
, stringToBoolean[frame.args.showVerseNumber]
, stringToBoolean[frame.args.showPilcrow]
)
end
return p