Moduuli:läh-raam
Moduulin läh-raam käyttöohje [näytä tämä käyttöohje omalla sivullaan] [muokkaa tätä käyttöohjetta] [päivitä] [testit] [hiekkalaatikko]
Käytetään mallineesta läh-raam käsin.
-- Parsii käännösvuoden ja kohdan urlista.
-- Hyväksyttyjä `urleja` esim.:
-- http://www.evl.fi/raamattu/1933,38/1Kun.15.html
-- 1933,38/1Kun.15.html
-- 1933,38/1Kun.15
-- Palauttaa:
-- käännösvuoden (joko "1933,38" tai "1992")
-- kirjan, esim. "1Kun"
-- jakeen? esim. "15"
local function parsi_url(url)
return string.match(url, "/?([0-9,]+)/([0-9]*)(.-)\.([0-9]+)[^/]-#?[vo]?([0-9]*)$")
end
local function muotoile_url(v, n, k, o, ja, jl)
if ja ~= "" then ja = "#" .. ja end
return "http://www.evl.fi/raamattu/" .. v .. "/" .. n .. k .. "." .. o .. ".html" .. ja
end
-- Muotoilee viittauksen tekstin.
-- v: joko "1933,38" tai "1992"
-- n: mahdollinen kirjaa edeltävä numero
-- k: kirjan nimi
-- o: osa??
-- ja: jakeen alku
-- jl: jakeen loppu tai nul
local function muotoile_viittaus(v, n, k, o, ja, jl)
if n ~= "" then n = n .. ". " end
if ja ~= "" then ja = ":" .. ja end
if jl then ja = ja .. "–" .. jl end
return n .. k .. ". " .. o .. ja
end
-- Muotoilee pitkän viittauksen, esim.:
-- Raamattu, vuosien 1933 ja 1938 suomennos: Laul.l. 2 (verkkoversio)
-- Parametrit:
-- url: esim. http://www.evl.fi/raamattu/1992/2Aik.8.html#11
-- jj (valinnainen): jae, esim. "3" tai jaeväli, esim. "3–4" tai "3-4". Jos annettu, jyrää urlin #-osassa annetun.
local function pitka(url, jj)
local v, n, k, o, ja = parsi_url(url)
local suom, jl = nil, nil
-- erotellaan jaevälin alku ja loppu
if jj then ja, jl = string.match(jj, "(%d+)[-–]?(%d*)") end
if jl == "" then jl = nil end
if v == "1933,38" then
suom = "vuosien 1933 ja 1938 suomennos"
elseif v == "1992" then
suom = "vuoden 1992 suomennos"
else
suom = "???"
end
return "Raamattu, " .. suom .. ": " .. muotoile_viittaus(v, n, k, o, ja, jl) .. " ([" .. muotoile_url(v, n, k, o, ja, jl) .. " verkkoversio])"
end
-- Muotoilee lyhyen viitteen, esim. 2. Aik. 8:11–12 (KR 1992).
-- Parametrit:
-- url: esim. http://www.evl.fi/raamattu/1992/2Aik.8.html#11
-- jj (valinnainen): jae, esim. "3" tai jaeväli, esim. "3–4" tai "3-4". Jos annettu, jyrää urlin #-osassa annetun.
local function lyhyt(url, jj)
local v, n, k, o, ja = parsi_url(url)
local suom, jl = nil, nil
-- erotellaan jaevälin alku ja loppu
if jj then ja, jl = mw.ustring.match(jj, "(%d+)[-–]?(%d*)") end
if jl == "" then jl = nil end
if v == "1933,38" then
suom = "KR 1933/38"
elseif v == "1992" then
suom = "KR 1992"
else
suom = "???"
end
return "([" .. muotoile_url(v, n, k, o, ja, jl) .. " " .. muotoile_viittaus(v, n, k, o, ja, jl) .. " (" .. suom .. ")])"
end
local m = {}
function m.Muotoile(frame)
local pframe = frame:getParent()
if pframe.args.pitka then
return pitka(pframe.args[1], pframe.args[2])
else
return lyhyt(pframe.args[1], pframe.args[2])
end
end
--testi
--local url, jae = "http://www.evl.fi/raamattu/1992/1Kun.15.html", "3"
--print(m.Muotoile{ ['getParent'] = function() return { ['args'] = { [1] = url, [2] = jae } } end })
return m