Modul:Reference: Forskelle mellem versioner
Lasse (diskussion | bidrag) No edit summary |
Lasse (diskussion | bidrag) mNo edit summary |
||
| Linje 182: | Linje 182: | ||
-- Samarbejdsstrukturen | -- Samarbejdsstrukturen | ||
if string.lower(frame.args['bog']) == "samarbejdsstrukturen" then | if string.lower(frame.args['bog']) == "samarbejdsstrukturen" then | ||
return '[[Samarbejdsstrukturen]], ' .. frame.args['stykke'] | |||
end | |||
if string.lower(frame.args['bog']) == "strukturen" then | |||
return '[[Samarbejdsstrukturen]], ' .. frame.args['stykke'] | return '[[Samarbejdsstrukturen]], ' .. frame.args['stykke'] | ||
end | end | ||
Versionen fra 22. mar. 2024, 00:14
Dokumentation for dette modul kan oprettes på Modul:Reference/dok
local p = {}
function p.hallo(frame)
bogTitler = {}
bogTitler["LB1"] = "Livets Bog 1"
bogTitler["LB2"] = "Livets Bog 2"
bogTitler["LB3"] = "Livets Bog 3"
bogTitler["LB4"] = "Livets Bog 4"
bogTitler["LB5"] = "Livets Bog 5"
bogTitler["LB6"] = "Livets Bog 6"
bogTitler["LB7"] = "Livets Bog 7"
bogIDer = {}
bogIDer["LB1"] = 51
bogIDer["LB2"] = 52
bogIDer["LB3"] = 53
bogIDer["LB4"] = 54
bogIDer["LB5"] = 55
bogIDer["LB6"] = 56
bogIDer["LB7"] = 57
-- første arg er et nummer? dvs. Livets Bog
if ( tonumber(frame.args['bog']) ~= nil) then
styknummer = tonumber(frame.args['bog'])
if styknummer < 1 then
return 'Styknummeret lavere end 0 og findes ikke i [[Livets Bog]]'
end
if styknummer > 2664 then
return 'Styknummeret er højere end 2664 og findes ikke i [[Livets Bog]]'
end
if styknummer < 289 then
return createLBReference("LB1", 51, styknummer)
end
if styknummer < 639 then
return createLBReference("LB2", 52, styknummer)
end
if styknummer < 1053 then
return createLBReference("LB3", 53, styknummer)
end
if styknummer < 1591 then
return createLBReference("LB4", 54, styknummer)
end
if styknummer < 1939 then
return createLBReference("LB5", 55, styknummer)
end
if styknummer < 2396 then
return createLBReference("LB6", 56, styknummer)
end
if styknummer < 2665 then
return createLBReference("LB7", 57, styknummer)
end
return 'Is the number: ' .. frame.args['bog'] .. 'stk nummer: ' .. styknummer
end
-- Symbolbøger
-- TODO lav "DEV1" til "DEV 1", så DEV1 virker
if mw.ustring.upper(mw.ustring.sub( frame.args['bog'], 1, 3 )) == "DEV" then
-- find symbolnummer og styknummer
-- f er forord - symbol -2
-- a indledning - -1
-- b symbolerne - 0
s = frame.args['stykke']
symbolnummer,styknummer = s:match("(.+)%.(.+)")
if (symbolnummer == nil) then
symbolnummer = frame.args['stykke']
end
-- DEV1 er bog 61
if mw.ustring.sub( frame.args['bog'], 5, 5 ) == "1" then
beskrivendeText = '[[Det Evige Verdensbillede 1]], '
return createSymbolbogReference(beskrivendeText, 61, symbolnummer, styknummer)
end
-- DEV2 er bog 62
if mw.ustring.sub( frame.args['bog'], 5, 5 ) == "2" then
beskrivendeText = '[[Det Evige Verdensbillede 2]], '
return createSymbolbogReference(beskrivendeText, 62, symbolnummer, styknummer)
end
-- DEV3 er bog 63
if mw.ustring.sub( frame.args['bog'], 5, 5 ) == "3" then
beskrivendeText = '[[Det Evige Verdensbillede 3]], '
return createSymbolbogReference(beskrivendeText, 63, symbolnummer, styknummer)
end
-- DEV4 er bog 64
if mw.ustring.sub( frame.args['bog'], 5, 5 ) == "4" then
beskrivendeText = '[[Det Evige Verdensbillede 4]], '
return createSymbolbogReference(beskrivendeText, 64, symbolnummer, styknummer)
end
-- DEV5 er bog 65
if mw.ustring.sub( frame.args['bog'], 5, 5 ) == "5" then
beskrivendeText = '[[Det Evige Verdensbillede 5]], '
return createSymbolbogReference(beskrivendeText, 65, symbolnummer, styknummer)
end
-- DEV6 er bog 66
if mw.ustring.sub( frame.args['bog'], 5, 5 ) == "6" then
beskrivendeText = '[[Det Evige Verdensbillede 6]], '
return createSymbolbogReference(beskrivendeText, 66, symbolnummer, styknummer)
end
end
-- Småbøger
if mw.ustring.sub( frame.args['bog'], 1, 6 ) == "småbog" then
-- if kapitel exists - tjek for punktum i string
stykke = frame.args['stykke']
kapitel,styknummer = stykke:match("(.+)%.(.+)")
bog = mw.ustring.sub( frame.args['bog'], 8, 11 )
BogNavn = frame.args['bog']
BogNavn = BogNavn:gsub("^%l", string.upper)
-- Angivet kapitel og styknummer
if (styknummer ~= nil) then
-- fjern bogstav TODO - virker ikke
return '[[' .. BogNavn .. ']], ' .. '[https://www.martinus.dk/da/onlinebibliotek/dtt/index.php?bog=' .. bog .. '&art=' .. kapitel .. '&stk=' .. styknummer .. ' stk. ' .. stykke .. ']'
end
-- Kun angivet styknummer - ikke noget kapitel
if (tonumber(stykke) ~= nil) then
return '[[' .. BogNavn .. ']], ' .. '[https://www.martinus.dk/da/onlinebibliotek/dtt/index.php?bog=' .. bog .. '&stk=' .. stykke .. ' stk. ' .. stykke .. ']'
end
-- intet kapitel og styknummer
return '[[' .. BogNavn .. ']]' .. '[https://www.martinus.dk/da/onlinebibliotek/dtt/index.php?bog=' .. bog .. ' -]'
end
-- Småbøger slut
-- Symboler
if string.lower(frame.args['bog']) == "symbol" then
return createSymbolReference(frame.args['stykke'])
end
-- Artikler
if string.lower(frame.args['bog']) == "artikel" then
-- Add martinus.dk when URL is known
return '[[Art ' .. frame.args['stykke'] .. '|Artikel ' .. frame.args['stykke'] .. ']]'
end
-- foredrag
if string.lower(frame.args['bog']) == "foredrag" then
return '[[F' .. frame.args['stykke'] .. '|' .. getForedragetsNavn(frame.args['stykke']) .. ' ]], [https://www.martinus.dk/da/onlinebibliotek/foredrag/index.php?nr=' .. frame.args['stykke'] .. ' nr. F' .. frame.args['stykke'] .. ']'
end
-- Kosmos
if string.lower(frame.args['bog']) == "kosmos" then
-- Mangler ref til martinus.dk
return '[[Tidsskriftet Kosmos|Tidsskriftet Kosmos]], ' .. frame.args['stykke']
end
-- Bisættelse
if string.lower(frame.args['bog']) == "bisættelse" then
return '[[Bisættelse_(bog)|Bisættelse]], ' .. '[https://www.martinus.dk/da/onlinebibliotek/dtt/index.php?bog=71&stk=' .. frame.args['stykke'] .. ' kap. ' .. frame.args['stykke'] .. ']'
end
-- Logik
if string.lower(frame.args['bog']) == "logik" then
return '[[Logik (bog)|Logik]], ' .. frame.args['stykke']
end
-- DIK
if string.lower(frame.args['bog']) == "dik" then
return '[[Den Intellektualiserede Kristendom (bog)|Den Intellektualiserede Kristendom]], ' .. frame.args['stykke']
end
-- Samarbejdsstrukturen
if string.lower(frame.args['bog']) == "samarbejdsstrukturen" then
return '[[Samarbejdsstrukturen]], ' .. frame.args['stykke']
end
if string.lower(frame.args['bog']) == "strukturen" then
return '[[Samarbejdsstrukturen]], ' .. frame.args['stykke']
end
-- AS1
if string.lower(frame.args['bog']) == "as1" then
return '[[Artikelsamling 1]], ' .. frame.args['stykke']
end
-- Grand kursus
if string.lower(frame.args['bog']) == "grand kursus" then
return '[[Grand Kursus (bog)|Grand kursus]], ' .. frame.args['stykke']
end
-- Antager det er LB angivet bog, stk.
if mw.ustring.sub( frame.args['bog'], 1, 2 ) == "LB" then
-- return '[[' .. bogTitler[frame.args['bog']] .. ']], stk. ' .. frame.args['stykke'] .. '. https://www.martinus.dk/da/onlinebibliotek/dtt/index.php?bog=' .. bogIDer[frame.args['bog']] .. '&stk=' .. frame.args['stykke']
return createLBReference(frame.args['bog'], bogIDer[frame.args['bog']], frame.args['stykke'])
end
-- Andre bøger
return 'Reference ikke genkendt. Se [[Hjælp:Referencer_til_Martinus_værk|vejledning]].'
end
function createLBReference (bogForkortelse, bogID, styknummer)
return '[[' .. bogTitler[bogForkortelse] .. ']], [https://www.martinus.dk/da/onlinebibliotek/dtt/index.php?bog=' .. bogID .. '&stk=' .. styknummer .. ' stk. ' .. styknummer ..']'
end
function createSymbolReference (symbolnummer)
-- needs to switch on symbolbog
return '[[Symbol ' .. symbolnummer .. '|Symbol nr. ' .. symbolnummer .. ']] [https://www.martinus.dk/da-dk/symbol-' .. symbolnummer ..' ]'
end
function createSymbolbogReference (beskrivendeText, symbolbogID, symbol, stykke)
-- todo validate arguments 'fejl i XXXX'
if (stykke ~= nil) then
-- begge angivet
return beskrivendeText .. ' [https://www.martinus.dk/da/onlinebibliotek/dtt/index.php?bog=' .. symbolbogID .. '&stk=' .. symbol .. '&pkt=' .. stykke .. ' ' .. symbol .. '.' .. stykke .. ']'
end
-- kun stykke angivet
-- return beskrivendeText .. ' [https://www.martinus.dk/da/onlinebibliotek/dtt/index.php?bog=' .. symbolbogID .. '&stk=' .. symbol .. ' ' .. symbol ']'
return beskrivendeText .. 'styknummer ikke genkendt (arbejder på det)'
end
function getForedragetsNavn (foredragsID)
-- https://gist.github.com/FreeBirdLjj/6303864
-- local switch = {
-- [67] = 'Foredrag 67. Martinus' 90-års fødselsdagstale (1980)'
-- [130] = Foredrag 130. Danmarks Radio - Ved dagens begyndelse (1980)
-- }
--
-- action = {
-- [1] = function (x) print(1) end,
-- [2] = function (x) z = 5 end,
-- ["nop"] = function (x) print(math.random()) end,
-- ["my name"] = function (x) print("fred") end,
-- }
return 'Foredrag ' .. foredragsID
end
-- ref slut --
-- henvisninger til indeks oversigter
function p.henvisning(frame)
bogIDer = {}
bogIDer["LB1"] = 51
bogIDer["LB2"] = 52
bogIDer["LB3"] = 53
bogIDer["LB4"] = 54
bogIDer["LB5"] = 55
bogIDer["LB6"] = 56
bogIDer["LB7"] = 57
indryk = generer_indryk (frame.args['indryk'])
beskrivelse = generer_beskrivelse (frame.args['wikilink'], frame.args['term'], frame.args['beskrivelse'])
stykbeskrivelse = generer_stykbeskrivelse (frame.args['stykke'], frame.args['bog'])
afslutningpaareference = generer_afslutningpaareference (frame.args['sidste_stykke'])
return indryk .. beskrivelse .. stykbeskrivelse .. afslutningpaareference
end
function generer_indryk (antalindryk)
if (antalindryk == "1") then
return '::'
end
if (antalindryk == "2") then
return ':::'
end
if (antalindryk == "3") then
return '::::'
end
if (antalindryk == "4") then
return ':::::'
end
return ':'
end
function generer_beskrivelse (wikilink, term, beskrivelse)
if (mw.ustring.upper(wikilink) == "JA" ) then
-- todo - antager at der altid er et komma til sidst
t = string.sub(term, 1, -2)
return '[[' .. t .. ']]' .. ', '
end
if ( string.len(beskrivelse) > 0) then
return beskrivelse .. ' '
end
if (term == nil) then
return '"term" ikke angivet.'
end
return '' .. term .. ' '
end
function generer_stykbeskrivelse (stykke, bog)
if (stykke == "nej" ) then
return ''
end
if (mw.ustring.upper(mw.ustring.sub( bog, 1, 2 ) ) == "LB" ) then
local stykbeskrivelse = stykke
if (string.match(stykke, ",") ) then
local text = ''
for k in mw.text.gsplit( stykke, ',', plain ) do
-- check k contains chars (ikke tomt efter sidste komma)
text = text .. ' 1 '
end
-- return stykke .. 'stykke har , ' .. text
end
if (string.match(stykke, "-") ) then
-- strip '-' og resten
forstestykke, resten = stykke:match("(.+)-(.+)")
stykke = forstestykke
end
if ( string.find(stykke, '.', 1, true) ) then
-- punkter i stk 2658
forstestykke, punkt = stykke:match("(.+).(.+)")
-- fjern punktum
forstestykke = forstestykke:gsub("[%c%p%s]", "")
-- return 'forstestykke: ' .. forstestykke .. ' punkt: ' .. punkt
-- if ( tonumber(punkt) ~= nil ) then
return '[https://www.martinus.dk/da/onlinebibliotek/dtt/index.php?bog=' .. bogIDer[bog] .. '&stk=' .. forstestykke .. '&pkt=' .. punkt .. ' ' .. stykbeskrivelse .. ']'
-- end
end
if (stykke == 'e') then
-- efterskriftet
return '[https://www.martinus.dk/da/onlinebibliotek/dtt/index.php?bog=' .. bogIDer[bog] .. '&stk=2665' .. ' ' .. stykbeskrivelse .. ']'
end
if ( tonumber(stykke) == nil ) then
return stykbeskrivelse .. ' (ikke genkendt)'
-- return 'stykke er ikke genkendt som et tal'
end
return '[https://www.martinus.dk/da/onlinebibliotek/dtt/index.php?bog=' .. bogIDer[bog] .. '&stk=' .. stykke .. ' ' .. stykbeskrivelse .. ']'
end
return ' stk. ' .. stykke .. ''
end
function generer_afslutningpaareference (sidste_stykke)
if (sidste_stykke == nil) then
-- ikke sidste stykke
return ' * '
end
return ''
end
return p