Modul:Reference: Forskelle mellem versioner

Fra Martinus Wiki
No edit summary
mNo edit summary
 
(56 mellemliggende versioner af den samme bruger vises ikke)
Linje 64: Linje 64:


   -- Symbolbøger
   -- 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
   if mw.ustring.upper(mw.ustring.sub( frame.args['bog'], 1, 3 )) == "DEV" then
     -- find symbolnummer og styknummer
     -- find symbolnummer og styknummer
Linje 71: Linje 73:
     -- b symbolerne - 0
     -- b symbolerne - 0
     s = frame.args['stykke']
     s = frame.args['stykke']
     symbolnummer,styknummer = s:match("(.+).(.+)")
     symbolnummer,styknummer = s:match("(.+)%.(.+)")


     if (symbolnummer == nil) then
     if (symbolnummer == nil) then
Linje 86: Linje 88:
     if mw.ustring.sub( frame.args['bog'], 5, 5 ) == "2" then
     if mw.ustring.sub( frame.args['bog'], 5, 5 ) == "2" then
       beskrivendeText = '[[Det Evige Verdensbillede 2]], '
       beskrivendeText = '[[Det Evige Verdensbillede 2]], '
       return createSymbolbogReference(beskrivendeText, 62, symbolnummer, styknummer)
       return createSymbolbogReference(beskrivendeText, 62, symbolnummer, styknummer)  
     end
     end


Linje 116: Linje 118:
   -- Småbøger
   -- Småbøger
   if mw.ustring.sub( frame.args['bog'], 1, 6 ) == "småbog" then
   if mw.ustring.sub( frame.args['bog'], 1, 6 ) == "småbog" then
   
      
      
     -- if kapitel exists - tjek for punktum i string
     -- if kapitel exists - tjek for punktum i string
     stykke = frame.args['stykke']
     stykke = frame.args['stykke']
     kapitel,styknummer = stykke:match("(.+).(.+)")
     kapitel,styknummer = stykke:match("(.+)%.(.+)")
 
    bog = mw.ustring.sub( frame.args['bog'], 8, 11 )
    BogNavn = frame.args['bog']
    BogNavn = BogNavn:gsub("^%l", string.upper)


     -- styknummer kun givet i styknummer, hvis der er et kapitel
     -- Angivet kapitel og styknummer
     if (styknummer ~= nil) then
     if (styknummer ~= nil) then
       -- fjern bogstav TODO - virker ikke
       -- fjern bogstav TODO - virker ikke    
       bog = mw.ustring.sub( frame.args['bog'], -1 )
       return '[[' .. BogNavn .. ']], ' .. '[https://www.martinus.dk/da/onlinebibliotek/dtt/index.php?bog=' .. bog .. '&art=' .. kapitel .. '&stk=' .. styknummer .. ' stk. ' .. stykke .. ']'
      bog = mw.ustring.sub( bog, 8, 11 )
    end
       return '[[' .. frame.args['bog'] .. ']]' .. '[https://www.martinus.dk/da/onlinebibliotek/dtt/index.php?bog=' .. bog .. '&art=' .. kapitel .. '&stk=' .. styknummer .. ']'
 
    -- 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
     end


     -- intet kapitel
     -- intet kapitel og styknummer
        bog = mw.ustring.sub( frame.args['bog'], 8, 11 )
    return '[[' .. BogNavn .. ']]' .. '[https://www.martinus.dk/da/onlinebibliotek/dtt/index.php?bog=' .. bog .. ' -]'
        return '[[' .. frame.args['bog'] .. ']]' .. '[https://www.martinus.dk/da/onlinebibliotek/dtt/index.php?bog=' .. bog .. '&stk=' .. frame.args['stykke'] .. ']'
   end
   end
  -- Småbøger slut


   -- Symboler
   -- Symboler
   if frame.args['bog'] == "symbol" then
   if string.lower(frame.args['bog']) == "symbol" then
     return createSymbolReference(frame.args['stykke'])
     return createSymbolReference(frame.args['stykke'])
   end
   end


   -- Artikler
   -- Artikler
   if frame.args['bog'] == "artikel" then
   if string.lower(frame.args['bog']) == "artikel" then
     return 'Artikel ' .. frame.args['stykke']
    -- Add martinus.dk when URL is known
     return '[[Art ' .. frame.args['stykke'] .. '|Artikel ' .. frame.args['stykke'] .. ']]'
   end
   end
    
    
   -- foredrag
   -- foredrag
   if frame.args['bog'] == "foredrag" then
   if string.lower(frame.args['bog']) == "foredrag" then
     return 'Foredrag, ' .. frame.args['stykke']
     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
   end


   -- Kosmos
   -- Kosmos
   if frame.args['bog'] == "kosmos" then
   if string.lower(frame.args['bog']) == "kosmos" then
     return 'Kosmos, ' .. frame.args['stykke']
    -- 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  
   end  


   -- Antager det er LB angivet bog, stk.
   -- Antager det er LB angivet bog, stk.
Linje 164: Linje 208:
   -- Andre bøger  
   -- Andre bøger  
   return 'Reference ikke genkendt. Se [[Hjælp:Referencer_til_Martinus_værk|vejledning]].'
   return 'Reference ikke genkendt. Se [[Hjælp:Referencer_til_Martinus_værk|vejledning]].'
end
end


Linje 191: Linje 234:




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)
function p.henvisning(frame)
   bogIDer = {}
   bogIDer = {}
Linje 201: Linje 270:
   bogIDer["LB7"] = 57   
   bogIDer["LB7"] = 57   


  indryk = generer_indryk (frame.args['indryk'])
   beskrivelse = generer_beskrivelse (frame.args['wikilink'], frame.args['term'], frame.args['beskrivelse'])
   beskrivelse = generer_beskrivelse (frame.args['wikilink'], frame.args['term'], frame.args['beskrivelse'])
   stykbeskrivelse = generer_stykbeskrivelse (frame.args['stykke'], frame.args['bog'])
   stykbeskrivelse = generer_stykbeskrivelse (frame.args['stykke'], frame.args['bog'])
   afslutningpaareference = generer_afslutningpaareference (frame.args['sidste_stykke'])
   afslutningpaareference = generer_afslutningpaareference (frame.args['sidste_stykke'])


   return beskrivelse .. stykbeskrivelse .. afslutningpaareference
   return indryk .. beskrivelse .. stykbeskrivelse .. afslutningpaareference
end
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)  
   function generer_beskrivelse (wikilink, term, beskrivelse)  
Linje 212: Linje 299:
       -- todo - antager at der altid er et komma til sidst
       -- todo - antager at der altid er et komma til sidst
       t = string.sub(term, 1, -2)
       t = string.sub(term, 1, -2)
       return '([[' .. t .. ']]' .. ', '
       return '[[' .. t .. ']]' .. ', '
     end
     end


     if ( string.len(beskrivelse) > 0) then
     if ( string.len(beskrivelse) > 0) then
       return beskrivelse
       return beskrivelse .. ' '
     end
     end


Linje 223: Linje 310:
     end
     end


     return '(' .. term
     return '' .. term .. ' '
   end
   end


   function generer_stykbeskrivelse (stykke, bog)
   function generer_stykbeskrivelse (stykke, bog)
     if (mw.ustring.upper(mw.ustring.sub( bog, 1, 2 )) == "LB") then
  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 = ''


      if (string.match(stykke, ",")) then
    for k in mw.text.gsplit( stykke, ',', plain ) do
    -- skal loopes - kan have minimum 6 elementer
      -- check k contains chars (ikke tomt efter sidste komma)
    -- loop table
      text = text .. ' 1 '
    return stykke .. 'stykke har ,'
    end
 
    -- return stykke .. 'stykke har , ' .. text
       end
       end
        
        
       if (string.match(stykke, "-")) then
       if (string.match(stykke, "-") ) then
       -- strip '-' og resten  
       -- strip '-' og resten  
       forstestykke, resten = s:match("(.+)-(.+)")
       forstestykke, resten = stykke:match("(.+)-(.+)")
       return stykke .. 'stukke har - og det første er ' .. forstestykke .. ' og andet er ' .. resten
       stykke = forstestykke
       end
       end


  if (string.match(stykke, ".")) then
  if ( string.find(stykke, '.', 1, true) ) then
  -- return stykke .. 'stykke har .'
      -- 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
       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


      if ( tonumber(stykke) ~= nil) then
      return '[https://www.martinus.dk/da/onlinebibliotek/dtt/index.php?bog=' .. bogIDer[bog] .. '&stk=' .. stykke .. ' ' .. stykke .. '])'
      end


       -- noget om stk 2658 (efterskrift?)
       return '[https://www.martinus.dk/da/onlinebibliotek/dtt/index.php?bog=' .. bogIDer[bog] .. '&stk=' .. stykke .. ' ' .. stykbeskrivelse .. ']'
      return  ' stk. ' .. stykke .. ')'
 
     end
     end


     return  '  stk. ' .. stykke .. ')'
     return  '  stk. ' .. stykke .. ''
   end
   end


   function generer_afslutningpaareference (sidste_stykke)
   function generer_afslutningpaareference (sidste_stykke)
     if (sidste_stykke == nil) then
     if (sidste_stykke == nil) then
       -- ikkes sidste stykke
       -- ikke sidste stykke
       return  ' - '  
       return  ' * '  
     end
     end



Nuværende version fra 14. apr. 2024, 19:45

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