Jump to content

Module:Cite Talmud

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Daask (talk | contribs) at 14:30, 15 May 2019 (Better handling of unknown Talmud values). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

-- For unit tests, see [[Module:Bananas/testcases]]
local talmud = {}

talmud.jb_key = {b = "Babylonian", j = "Jerusalem"}

function talmud.generate_citation(frame)
	local template_args = frame:getParent().args
	-- local invoke_args = frame.args -- parameters from {{#invoke:}}
	jb       = template_args[1]
	if not(jb) or string.find(jb, '^%s*$') then jb = 'b' end
	if talmud.jb_key[jb] then
		jb = '<abbr title="' .. talmud.jb_key[jb] .. '">' .. jb .. '.</abbr>'
	else
		jb = '{{error | First argument must be either b for Babylonian Talmud or y for Jerusalem Talmud. (Given "' .. jb .. '")}}'
	end
    tractate = template_args[2]
    chapter  = template_args[3] -- Chapter name or number (optional)
    daf      = template_args[4] -- These are page or folio numbers as described at Talmud#Slavuta Talmud 1795 and Vilna Talmud 1835. Ranges are accepted, eg. 2b-4a
    url      = template_args['url']
    if not url then
    	url = "https://www.sefaria.org/" .. string.gsub(tractate, ' ', '_') .. '.' .. string.gsub(daf or '2a', ' ', '_')
    end
	str = "[[Talmud]], " .. jb .. ". " .. tractate .. " " .. daf .. url
	return str
end

return talmud