-- This module implements Template:Alhatorah. Based on Template:Bibleverselocal p =
--possible book inputs, based on Chicago Manuallocal book_aliases =
--these books only have one chapter, have to be handled differentlylocal no_chapters =
local function trimArg(text) if type(text)
local function valueExists(tbl, value) for _, v in pairs(tbl) do if value
function p.main(frame) local targs = frame:getParent.args local args = for _, param in ipairs do args[param] = trimArg(targs[param]) end local input_book = local ref = local commentary = local text = local mainspace = mw.title.getCurrentTitle:inNamespaces(0) --analyze arguments if args[1]
nil or tonumber(args[1]) ~= nil then -- first argument is a numeric prefix and second is book name input_book = trimArg((args[1] or ) .. ' ' .. (args[2] or )) or ref = args[3] or commentary = args[4] or text = args[5] or trimArg((input_book .. ' ' .. ref)) else -- first argument is the whole book name input_book = args[1] or ref = args[2] or commentary = args[3] or text = args[4] or (input_book .. ' ' .. ref) end if args.nobook
mw.ustring.lower(full_book:gsub(' ', '_')) or valueExists(aliases, book_lower) then book = full_book:gsub(' ', '_') book_found = true break end end
--analyze verse local split_ref = mw.text.split(ref, '[-–—]') --split the ref into the part before and after the dash/hyphen local s_ref = mw.text.split(split_ref[1], '%p') --any punctuation can be used to separate chapter from verse local e_ref = split_ref[2] or split_ref[1] e_ref = mw.text.split(e_ref, '%p') for i, v in ipairs(s_ref) do s_ref[i] = v:gsub('%D', ) end --remove any non-numeric character (such as f) for i, v in ipairs(e_ref) do e_ref[i] = v:gsub('%D', ) end local s_chap, s_vers local chapter_only = not s_ref[2] if no_chapters[book] then chapter_only = false s_chap = 1 s_vers = s_ref[2] or s_ref[1] or 1 --verse 3 can be specified as "3" or "1:3" else s_chap = s_ref[1] or 1 s_vers = s_ref[2] or 1 end
--build URL commentary = commentary:gsub(' ', '_') --must be outside URL command local urlpat = 'https://mg.alhatorah.org/Dual/_commentary/_book/_schap._svers#m7e3n7' local url = urlpat:gsub('_%l+',)
--build text text = text:gsub('-', '–') --change hyphens to en dashes (3:2-5 → 3:2–5) text = commentary:gsub('_', ' ') .. ', ' .. text local fulllink fulllink = '[' .. url .. ' ' .. text .. ']'
if mainspace then if not book_found then table.insert(errors, '
Template:Bibleverse with invalid book') end if version_num then table.insert(errors, '') end end return fulllink --.. table.concat(errors)endreturn p