跳转到内容

模組:Cite Talmud

维基百科,自由的百科全书

这是Module:Cite Talmud当前版本,由金色黎明留言 | 贡献编辑于2025年4月11日 (五) 00:22。这个网址是本页该版本的固定链接。

(差异) ←上一修订 | 最后版本 (差异) | 下一修订→ (差异)
local getArgs = require('Module:Arguments').getArgs
local yesno = require('Module:yesno')

local function tidyVal(key, val)
	if type(val) == 'string' then
		val = val:gsub(" ", ' '):match('^%s*(.-)%s*$')
		if val == '' then
			return nil
		else
			return val
		end
	else
		return val
	end
end


local talmud = {}

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

function talmud.generate_citation(frame)
	local args = getArgs(frame, { wrappers = 'Template:Cite Talmud', valueFunc = tidyVal })
	jb       = args[1] or 'b'
	if not talmud.jb_key[jb] then
		return require('Module:Error').error{ 'First argument must be either b for Babylonian Talmud or y for Jerusalem Talmud. (Given "' .. jb .. '")' }
	end
    tractate = args[2]
    daf      = args[4] or args[3] -- These are page or folio numbers as described at Talmud#Slavuta Talmud 1795 and Vilna Talmud 1835. Ranges are accepted, eg. 2b-4a
    url      = args.url
    nobook   = yesno(args[5] or args.nobook)
    if not url then
    	url = "https://www.sefaria.org/"
    	if(jb == 'y') then url = url .. 'Jerusalem_Talmud_' end 
    	url = url .. string.gsub(tractate, ' ', '_') .. '.' .. string.gsub(daf or '2a', ' ', '_')
    end
	str  = '[' .. url .. ' ' .. tractate .. ' ' .. ( daf or '' ) .. ']'
 	if not nobook then
		str = '[[塔木德]], <abbr title="' .. talmud.jb_key[jb] .. '">' .. jb .. '.</abbr> ' .. str
	end
	return str
end

return talmud