Modul:Reference
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 -- 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