Spring til indhold

Modul:Sandkasse/Sechinsic/Kilde

Fra Wikipedia, den frie encyklopædi

--[=[    || Indlæs konstanter - 'comment' for lokal miljø BEGIN
--]=]
local p = {}
p.m = function (P) --{ modul BEGIN
--|      || Indlæs konstanter - 'comment' for lokal miljø END

	local FTL = false

--|      ||>KONSTANTER
	local status, data = pcall(
--mw/lokal			require, "R1"
			mw.loadData, "Modul:Sandkasse/Sechinsic/Kilde/R1"
	)
	if (not status) then
		FTL = "Fejl i register modulet - tjek scriptet 'Modul:Sandkasse/Sechinsic/Kilde/R1', eller benyt diskussions-siden for at gøre opmærksom på problemet."
--mw/lokal				print ("\n" .. FTL .. "\n" .. data)
		return "\n" .. FTL .. "\n" .. data
	end
	local T, M, Navn, Titel, Diverse, Layout, Apx =
			data[1], data[2], data[3], data[4], data[5], data[6], data[7]

--|      || Funktioner
	local F = {}
	F.etal = function (x) return
			x: gsub (T.mrk5,T.etal): gsub (T.mrk1,T.komma)
	end
	F.fatal = function (x)
--mw/lokal				print (T.P .. M.FTL[1] .. T.FJL .. x .. T.Sb)
			return T.P .. M.FTL[1] .. T.FJL .. x .. T.Sb
	end
	F.kortWeb = function (x) return x and
		x: gsub ("[^/]*:/*/*w*w*w*%.*",""): match ("[^/]*")
	end
	F.lnk1 = function (x,y) return
			(x: find ("^['\"]") and T.krn.c_rpad or T.c)
			.. ((y and "[" .. y .. " " .. x .. "]") or x)
			.. (x: find ("['\"]$") and T.krn.c_lpad or T.c)
	end
	F.lnk2 = function (x,y) return
			(y and "[" .. y .. " " .. x .. "]") or x
	end
	F.lnkNews = function (x) return
			(x and "[" .. "news:" .. x: gsub ("^news:") .. " " .. T.news .. "]") or T.news
	end
	F.lnkW = function (x,y) return
			(y and "[[" .. y .. "|" .. x .. "]]") or x
	end
	F.navnEf = function (x) return x: match ("([^ ;]+)" .. T.mrk1) or x end
	F.nvnKon = function (x,y) return (not y and x) or
			x: match ("^[^" .. T.mrk1  .. "]*$") or
			x: match (T.mrk1 .. "([^ ;]+)")
			.. " " .. x: match ("([^ ;]+)" .. T.mrk1) 
	end
	F.pp = function (x,y,z) return
			(x.args[z] and x.args[z]:match (".+")) or
			(y.args[z] and y.args[z]:match (".+"))
	end

--[=[
  | <P>  |"frame object" for den side der har kaldt modulet
  |      |- "{{#invoke:Kilde test|m".
  | <P2> |"frame object" for den side der har kaldt skabelonen med modul-kaldet
  |      |- "{{Kilde test_m".
  | mw.getParent() kan ikke kaldes via pcall
--]=]
--[=[    || Indlæs parametre - 'comment' for lokal miljø
--]=]
	local P2 = P:getParent()
	if (not P2) then FTL = M.FTL.Ufor .. "A"
	elseif (not P2.args) then FTL = M.FTL.Ufor .. "B" end
	if (FTL) then return F.fatal (FTL) end
--[=[    || Indlæs parametre - 'uncomment' for lokal miljø BEGIN
	local tmp = require ("v1")
	local argfunk, argn, P = tmp[1], tmp[2], {args={}}
	for invoke=1,argn do --{ lokal INVOKE BEGIN
		local P2 = argfunk (invoke)
		P.args.DT = P2.args.DT
--]=]
--[=[    || Indlæs parametre - 'uncomment' for lokal miljø END
--]=]
--|      ||>VARIABLER
	local b = {
--[=[
    etal, red_unik, doc_skrb   | booleans
--]=]
	}
	local e = {                --| (elementer)
--[=[
    label                      | type label
    tid, sted, osv.            | Diverse
--]=]
		skrb = {}, red = {},     --| Navn
--[=[
    fmt_skrb, fmt_red         >| formaterede
    fmt_byforlag, fmt_kfc      | felter
    fmt_udgave, fmt_formal     |
    fmt_web_inst               |
    fmt_apx                    | 
--]=]
		titel = {
--[=[
    kilde, vaerk, blad, no4    | Titel
--]=]
		}
	}
	local l = {}               --| Layout

--|      || Layout parametre
	l.DT = P.args.DT
	for k in pairs (Layout[1]) do
		l[k] = F.pp (P2,P,k) or Layout[1][k] end
	for k in pairs (Layout[2]) do
		l[Layout[2][k]] = F.pp (P2,P,Layout[2][k]) end
--|skal være numerisk
	l.TrunkSkrb = tonumber (l.TrunkSkrb) or tonumber (Layout[1]["TrunkSkrb"])
	l.TrunkRed = tonumber (l.TrunkRed) or tonumber (Layout[1]["TrunkRed"])
--|ingen eller ukendt dokumenttype giver fejl
	if (not l.DT) then FTL = M["O"]["'§"]
	else FTL = M["O"]["'DT"]
		for k in pairs (M["D"]) do
			if (k == l.DT) then FTL = nil; break; end end
	end
	if (FTL) then return F.fatal (FTL) end

--|      || Titel
	for k in pairs (Titel) do
		for kk in pairs (Titel[k]) do
			e.titel[k] = F.pp (P2,P,Titel[k][kk])
			if e.titel[k] then break end end
	end
--	b.bogpart = e.titel.kilde and e.titel.vaerk and true 
	if (not e.titel.kilde) then FTL = M.FTL.Titel end
	for k in pairs (M["O"]["sub"]) do
		if (not e[k][M["O"]["sub"][k]]) then FTL = M["O"]["'" .. k] end
	end
	if (FTL) then return F.fatal (FTL) end

--|      || Diverse parametre
--|e[parameter] = parameterværdi
	for k in pairs (Diverse[1]) do
		e[Diverse[1][k]] = F.pp (P2,P,Diverse[1][k])
	end
--|en slags boolean parameter
--|e[sorteringsnøgle-i-registermodul-R1] = parameternavn
	for k in pairs (Diverse[2]) do
		for kk,vv in ipairs (Diverse[2][k]) do
			if (F.pp (P2,P,vv)) then e[k] = vv; break; end
		end
	end
--|e[sorteringsnøgle-i-registermodul-R1] = parameterværdi
	for k in pairs (Diverse[3]) do
		for kk,vv in ipairs (Diverse[3][k]) do
			e[k] = F.pp (P2,P,vv)
			if (e[k]) then break; end
		end
	end
--[=[
	for k in pairs (Diverse["sted"]) do
		e["sted"] = F.pp (P2,P,Diverse["sted"][k])
		if e["sted"] then break end end
--]=]
--Ad hoc
	if (not FTL and e.kfcsted and not e.url) then
		FTL = M.FTL.Kfc
	elseif (not FTL and l.Form == "A1" and not e.titel.no4) then
			FTL = M.FTL.DokA1
	end
	if (FTL) then return F.fatal (FTL) end

--|     || Navne
	for ii=1,5,4 do --{
		idx = (ii == 1) and "skrb" or "red"
		iter = 1
		repeat
--[=[	
  | fulde navn, efternavn, fornavn
--]=]	
			e[idx][iter] = F.pp (P2,P,Navn[ii+2][iter])
					and F.pp (P2,P,Navn[ii+1][iter])
			e[idx][iter] = (e[idx][iter] and e[idx][iter]
				.. T.mrk1 .. F.pp (P2,P,Navn[ii+2][iter]))
				or F.pp (P2,P,Navn[ii][iter])
			if (e[idx][iter]) then --{
--[=[    
  | wikilink
--]=]			
				e[idx][tostring (iter) .. "w"] = F.pp (P2,P,Navn[ii+3][iter])
				iter = iter+1
			else
				e[idx]["antal"] = (iter>1) and (iter-1) or nil; break;
			end --}
		until false
--[=[ 
  | formatering
--]=]
		if (e[idx]["antal"]) then --{
			local sep,t = "",nil
------Første forfatternavn
			if (ii == 1) then --{
				t = (e[idx]["antal"] < l.TrunkSkrb)
						and e[idx]["antal"] or l.TrunkSkrb
				if (l.Em) then --{
					local m = T.L.mellx2
					for i=1,tonumber (l.Em) do m = m .. T.krn.em; end
					e["fmt_skrb"] = m .. (T.L.mellx2)
				else
					e["fmt_skrb"] = F.lnkW (e["skrb"][1], e["skrb"]["1w"])
				end --}
------Første redaktør
			else
				e["fmt_red"] = F.lnkW (e["red"][1], e["red"]["1w"])
			end --}
------Resten
			t = t or (e[idx]["antal"] < l.TrunkRed)
						and e[idx]["antal"] or l.TrunkRed
			for i=2,((e[idx]["antal"]<t) and e[idx]["antal"] or t) do
				if (l.Amp and (t == i)) then sep = T.amp
				elseif (l.Em and ii == 1 and i == 2) then sep = T.mell
				else sep = l.SepN end

				e["fmt_" .. idx] = e["fmt_" .. idx] .. sep ..
						F.lnkW (F.nvnKon (e[idx][i],l.KonfNavn),
							e[idx][tostring (i) .. "w"])

			end
			if (e[idx]["antal"] > t) then
				e["fmt_" .. idx] = e["fmt_" .. idx] .. T.mrk5 b.pt = true
			elseif (e[idx][t]: match ("%.$")) then b.pt = true end
		end --}
	end --}
--[=[
	if (e.medskribent) then
		e.fmt_skrb = e.fmt_skrb and e.fmt_skrb
				.. e.fmt_skrb:gsub ("[^" .. T.mrk5 .. "]$",T.mrk5)
		b.pt = true end
--]=]
	e["red_udvalg"] = F.pp (P2,P,Navn[9][1])
	b.red_unik = e.fmt_red and not e.fmt_skrb

--|      || (Appendiks indlæses efter tjek af obligatoriske parametre)
--|      ||>KONFORMITET
--|      || Obligatoriske parametre
--[=[
  | ipairs iterator virker kun for den ubrudte integer sekvens [1;N]
--]=]
	for k in pairs (M["D"][l.DT]["O"]) do
		if (k == 1) then
			for kk,vv in ipairs (M["D"][l.DT]["O"][k]) do
				if (not e[vv]) then
					FTL = M["D"][l.DT]["fejl"][vv];  break; end
			end
		elseif (k == 2) then
			for kk in pairs (M["D"][l.DT]["O"][k]) do
				if (not e[kk][M["D"][l.DT]["O"][k][kk]]) then
					FTL = M["D"][l.DT]["fejl"][kk]; break; end
			end
		elseif (k == 3) then
			for kk in pairs (M["D"][l.DT]["O"][k]) do
				if (e[kk][M["D"][l.DT]["O"][k][kk]]) then FTL = nil; break; end
				FTL = M["D"][l.DT]["fejl"][kk]
			end
		elseif (k == 4) then
			for kk in pairs (M["D"][l.DT]["O"][k]) do
				FTL = M["D"][l.DT]["fejl"][kk]
				for kkk,vvv in ipairs (M["D"][l.DT]["O"][k][kk]) do
					if (e[kk] == vvv) then FTL = nil; break; end
				end
			end
		end
		if (FTL) then return F.fatal (FTL) end
	end
--| herefter er modulet på egen hånd

--|      || Dokumenttype label
	if (M["D"][l.DT]["label"]) then --{
		for k in pairs (M["D"][l.DT]["label"]) do
			if (k == 0) then
				if (e[M["D"][l.DT]["label"][0]]) then
					e.label = T["L"]["label"]:gsub (T.mrk1,
							(M["D"][l.DT]["minusdok"] and "" or l.DT)
							.. M["D"][l.DT]["label"][0])
				end
			elseif (k == 1) then
				if (e[M["D"][l.DT]["label"][1]]) then
					e.label = T["L"]["label"]:gsub (T.mrk1,
							(M["D"][l.DT]["minusdok"] and "" or l.DT)
							.. e[M["D"][l.DT]["label"][1]])
				end
			else
				for kk in pairs (M["D"][l.DT]["label"][k]) do
					if (e[kk][M["D"][l.DT]["label"][k][kk]]) then
						e.label = T["L"]["label"]:gsub (T.mrk1,
								(M["D"][l.DT]["minusdok"] and "" or l.DT)
								.. M["D"][l.DT]["label_alter"][
									M["D"][l.DT]["label"][k][kk]] or
								M["D"][l.DT]["label"][k][kk])
						 break
					end
				end
			end
		end
		if (not e.label) then
			e.label = M["D"][l.DT]["minusdok"] and nil or
					T["L"]["label"]:gsub (T.mrk1,l.DT)
		end
	end
--|      || Appendiks
if (M["D"][l.DT]["appendiks"]) then --{
		local reg, tmp = {}, {}
		for k,v in pairs (M["D"][l.DT]["appendiks"]) do --{ appendiks potentiale BEGIN
			if (type (v) == "table") then
				for k_,v_ in ipairs (v) do reg[v_] = "" end
			else reg = Apx[k] end
			e["a" .. k] = ""

			for kk in pairs (reg) do --{ key-liste BEGIN
------|"kk" er en *stringvalue* for et registernavn i Apx[k]
------|idx 1 er parameternavn og indikerer en fuld url
------|eller registernavn er parameternavn og indikerer en genereret url
				tmp.url_val = F.pp (P2,P,(Apx[k][kk][1] or kk))
				if (tmp.url_val) then
------|hvis tilstede,
------|register med parameternavn og gyldige værdier
------|appendiks-nøglen bliver kun genereret
------|når der findes en gyldig værdi
------|p.t. genereres ingen fejl
					if (Apx[k][kk]["label_ob"]) then
--------idx 1 er parameternavn
						tmp.ob_key = F.pp (P2,P,Apx[k][kk]["label_ob"][1])
						for kkk in pairs (Apx[k][kk]["label_ob"][2]) do
							if (tmp.ob_key == kkk) then
								tmp.ob_val = Apx[k][kk]["label_ob"][2][kkk]; break; end end
					end
					if (tmp.ob_val or not Apx[k][kk]["label_ob"]) then
						tmp.linktekst = F.pp (P2,P,Apx[k][kk]["linktekst_alter"]) or
								Apx[k][kk]["linktekst"]
						tmp.url = (Apx[k][kk][1] and tmp.url_val) or
								(Apx[k][kk]["www"] and Apx[k][kk]["www"] .. tmp.url_val)
--[==[
  || format:
  || "label" [ "url" "linktekst" ]
--]==]
						e["a" .. k] = e["a" .. k] .. T.mell .. T.L.mellx2
								.. (not tmp.url and
									((Apx[k][kk]["MW"] or kk) .. " " .. tmp.url_val) or
									((Apx[k][kk]["label"] or tmp.ob_val or kk)
										.. T.kolon .. F.lnk2 (
											tmp.linktekst or (Apx[k][kk]["www"] and T.normlnk)
											or F.kortWeb (tmp.url),
											tmp.url)))
								.. (Apx[k][kk]["adgang"] and e.adgang and
									T.slash .. T.adgApx .. e.adgang or "")
					end
				end
			end --} (kk) key-liste END

			if (e["a" .. k] == "") then e["a" .. k] = nil
			else
				e["a" .. k] = e["a" .. k]: gsub ("^" .. T.mell .. T.L.mellx2,"") end
		end --} (k,v) appendiks potentiale END
end --}
--[=[
--]=]
--|      ||>FORMATERING
--|      || (Navne lister og label er formateret)
--|      || Felter
--[=[
  | Midlertidige bekvemme elementer
--]=]
	e.fmt_byforlag = (e.forlag or e.sted) and
			(e.forlag and (e.sted and e.sted .. T.kolon or "") .. e.forlag
			or e.sted)
			.. (not (e.fmt_skrb or e.fmt_red) and e.tid and T.mell .. e.tid or "")
	if (l.DT == "Bog") then
		e.fmt_kfc = e.kfcsted and (e.kfcsted
				.. e.tid and (T.komma .. e.tid))
		if (e.kommenteret_udgave) then
			e.fmt_udgave =
				"(" .. e.kommenteret_udgave
				.. (e.otid and (T.L.em .. T.L.otid .. e.otid) or "")
				.. ")"
		elseif (e.udgave) then
			e.fmt_udgave =
				e.udgave .. T.L.udg
				.. (e.otid and ((T.L.mellx2) .. "(" .. T.L.otid .. e.otid .. ")") or "")
		else
			e.fmt_udgave = e.otid and "(" .. T.L.otid .. e.otid .. ")"
		end
		e.fmt_udgave = e.fmt_udgave and T.komma .. e.fmt_udgave

	elseif (l.DT == "Web") then
		e.fmt_web_inst =
				(e.institution or "")
				.. (F.kortWeb (e.site) and
					((e.institution and T.L.slash or "")
					.. T.L.site .. F.kortWeb (e.site)) or "")
				.. ((not (e.fmt_skrb or e.fmt_red or l.Anon) and e.tid) and
					(((e.institution or F.kortWeb (e.site)) and
						(T.L.mellx2) or "") .. e.tid) or "")

	elseif (l.DT == "Dokument") then
		b.dok_skrb =
				(e.fmt_skrb or e.fmt_red or e.red_udvalg) and true
		e.fmt_formal = ((e.kategori or e.nummer) and
				(l.Sep .. "("
				.. ((e.kategori or "")
				.. (e.nummer and
					(e.kategori and T.mell .. e.nummer) or e.nummer or "")
				.. ")") or "") or "")
	end
--[=[
  | Cite tag id 
--]=]
	e.cite = l.RefHTML
	if (not e.cite) then
		e.cite = ""
		local idx = (e["skrb"]["antal"] and "skrb" or "red")
		if (e[idx]["antal"]) then
			for i=1,e[idx]["antal"] do
				e.cite = e.cite .. F.navnEf(e[idx][i])
				if (i == 3) then break end
			end
		end
		e.cite = (e.cite or "") .. (e.tid and
				e.tid:match ("[12][0-9][0-9][0-9]") or "")
	end
	e.cite = T.ct:gsub (
			T.mrk1,(M.citeref .. mw.uri.anchorEncode (e.cite or "")))
--mw/lokal				T.mrk1,(M.citeref .. (e.cite or "")))

--|      || Dokumenttyper
--[=[
  | Bog & Tidsskrift
  | Sikre parametre, 'Bog': e.titel.kilde
  | Sikre parametre, 'Tidsskrift': e.titel.kilde, e.titel.blad
--]=]
	if ((l.DT == "Bog") or (l.DT == "Tidsskrift")) then --{
		e.fmt_part1 =
--------Skribent, foranstillet dato
				((e.fmt_skrb or e.fmt_red) and
					F.etal (e.fmt_skrb or e.fmt_red)
					.. (not e.fmt_skrb and T.L.red or "")
					.. (e.skribenttid and
						(T.L.mellx2) .. T.kA .. e.skribenttid .. T.kB or "")
					.. ((e.tid or e.fmt_kfc) and
						(T.L.mellx2) .. "(" .. (e.tid or e.fmt_kfc) .. ")" or "")
					.. ((b.pt and not (e.tid or e.fmt_kfc or e.skribenttid)
						and (T.L.mellx2)) or l.Sep)
				or "")
--------Kildetekst
				.. F.lnk1 (e.titel.kilde, e.url)

----|Bog
		if (l.DT == "Bog") then --{
			e.fmt_part1 = e.fmt_part1 
----------Redaktør og bog
					.. (e.fmt_kfc and T.L.kfc or "")
					.. (e.titel.vaerk and
						(l.Sep .. T.L.i
						.. ((e.fmt_red and not b.red_unik) and
							(F.etal(e.fmt_red) .. T.L.red .. (T.L.mellx2)) or "")
						.. T.Ia
						.. F.lnk2 (e.titel.vaerk, e.url2)
						.. T.Ib) or "")
					.. (e.fmt_udgave or "")
					.. (e.serie and (l.Sep .. e.serie) or "")
					.. (e.volume and (T.L.bd .. e.volume) or "")
					.. (e.fmt_byforlag and (l.Sep .. e.fmt_byforlag) or "")
					.. (e.ov and (l.Sep .. T.L.ov .. e.ov) or "")
					.. (e.ov_red and (l.Sep .. T.L.ov_red .. e.ov_red) or "")
					.. (((e.ep and 
						(((e.ov or e.ov_red) and T.komma) or l.Sep)
						.. T.ep .. e.ep)) or "")
					.. (e.side and l.Sep .. e.side or "")
----|Tidsskrift
		else
			e.fmt_part1 = e.fmt_part1 
----------Redaktør og blad
					.. (e.titel.blad and l.Sep
						.. ((e.fmt_red and not b.red_unik) and
							(F.etal(e.fmt_red) .. T.L.red .. (T.L.mellx2)) or "")
						.. T.Ia .. e.titel.blad .. T.Ib or "")
					.. (e.fmt_byforlag and ((T.L.mellx2) .. "("
						.. e.fmt_byforlag .. ")") or "")
					.. (e.serie and (T.mell .. T.c .. e.serie .. T.c) or "")
					.. (e.volume and (T.mell .. T.STRGa .. e.volume .. T.STRGb) or "")
					.. (e.bladtid and (T.komma .. e.bladtid) or "")
					.. (e.nummer and (T.mell .. T.L.nr .. e.nummer) or "")
					.. (e.side and T.kolon .. e.side or "")
		end --}
--[=[
  | Avis
  | Sikre parametre: e.titel.kilde, e.titel.blad, e.tid
--]=]
	elseif (l.DT == "Avis") then
		e.fmt_part1 =
--------Skribent, foranstillet dato
				((e.fmt_skrb or e.fmt_red) and
					F.etal (e.fmt_skrb or e.fmt_red)
					.. (not e.fmt_skrb and T.L.red or "")
					.. (e.institution and
--							(T.mell .. T.slash .. T.mell .. e.institution) or "")
							(T.slash .. T.mell .. e.institution) or "")
--					.. T.mell .. "(" .. e.tid .. ")" .. l.Sep
					.. T.mell .. T.mell_ .. "(" .. e.tid .. ")" .. l.Sep
				or (l.Anon and T.a .. T.mell .. "(" .. e.tid .. ")" .. l.Sep)
				or "")
--------Kildetekst
				.. F.lnk1 (e.titel.kilde, e.url)
--------Avis
				.. l.Sep .. T.Ia .. e.titel.blad .. T.Ib
-- - - -redaktion/nyhedskilde
.. (e.titel.no4 and
(
	(T.L.em ..  T.STRGa .. e.titel.no4 .. T.STRGb) ..
	(e.fmt_red and not b.red_unik and
		(T.mell .. T.kolon .. T.mell .. F.etal (e.fmt_red) .. T.L.red)
	or "")
) or "")
.. (e.nyhedskilde and T.L.slash .. T.L.nk .. e.nyhedskilde or "")
--------By-forlag
--				.. (e.fmt_byforlag and ((T.L.mellx2) .. "("
				.. (e.fmt_byforlag and (T.mell .. T.mell_ .. "("
					.. e.fmt_byforlag .. ")") or "")
				.. (e.side and l.Sep .. e.side or "")
				.. (e.urldato and l.Sep .. T.L.udato .. e.urldato or "")
				.. (e.url and e.adgang and
					(e.urldato and T.slash or l.Sep)
					.. T.adg .. e.adgang or "")
--[=[
  | Web
  | Sikre parametre: e.titel.kilde, e.url
--]=]
	elseif (l.DT == "Web") then
		e.fmt_part1 =
--------Skribent, foranstillet dato
				((e.fmt_skrb or e.fmt_red) and
					F.etal (e.fmt_skrb or e.fmt_red)
					.. (not e.fmt_skrb and T.L.red or "")
					.. (e.tid and T.mell .. "(" .. e.tid .. ")" or "")
					.. ((b.pt and not e.tid and (T.L.mellx2)) or l.Sep)
				or (l.Anon and e.tid and
						T.a .. T.mell .. "(" .. e.tid .. ")" .. l.Sep)
				or "")
--------Kildetekst
				.. F.lnk1 (e.titel.kilde, e.url)
-- - - -*Tema*
				.. (e.titel.no4 and T.L.em .. T.Ia .. e.titel.no4 .. T.Ib or "")
--------Portal
				.. (e.titel.blad and (l.Sep .. e.titel.blad) or "")
-- - - -Institution og website
				.. ((e.fmt_web_inst ~= "") and
					((e.titel.blad and T.komma or l.Sep) .. e.fmt_web_inst) or "")
				.. (e.urldato and (l.Sep .. T.L.udato .. e.urldato) or "")
				.. (e.url and e.adgang and
					(e.urldato and T.slash or l.Sep)
					.. T.adg .. e.adgang or "")
--------NB type markør
--[=[
  | Meddelelse
  | Sikre parametre: e.titel.kilde, e.url, e.kategori, (e.fmt_skrb or e.red)
--]=]
	elseif (l.DT == "Meddelelse") then
		e.fmt_part1 =
--------Skribent, foranstillet dato
				F.etal (e.fmt_skrb or e.fmt_red)
				.. (not e.fmt_skrb and T.L.red or "")
				.. (e.tid and T.mell .. "(" .. e.tid .. ")" or "")
				.. ((b.pt and not e.tid and (T.L.mellx2)) or l.Sep)
--------Kildetekst
				.. F.lnk1 (e.titel.kilde, e.url)
-- - - -*Service*
				.. (e.titel.no4 and (e.kategori ~= "newsgroup") and T.L.em .. T.Ia .. e.titel.no4 .. T.Ib or "")
--------Portal og website
				.. (e.titel.blad and (l.Sep .. e.titel.blad) or "")
				.. (e.site and (e.titel.blad and T.komma or l.Sep) .. T.L.site .. F.kortWeb (e.site) or "")
				.. (e.urldato and (l.Sep .. T.L.udato .. e.urldato) or "")
				.. (e.url and e.adgang and
					(e.urldato and T.slash or l.Sep)
					.. T.adg .. e.adgang or "")

--[=[
			local state1, state2 = false
			if (e.kategori == "newsgroup" and e.titel.no4) then
				state1 = true end
			if (e.kategori == "newsgroup" and e.nummer) then
				state2 = true end

			if (state1 or state2) then
--]=]
			if (e.newsgroup and (e.nummer or e.titel.no4)) then
				e.aB = T.L.apxB .. F.lnkNews (e.titel.no4)
						.. (e.nummer and T.kolon .. T.mell .. e.nummer or "")
						.. T.Sb
			elseif (e.nummer) then
				e.aB = T.L.apxB .. T.id .. e.nummer .. T.Sb
			end

--------NB type markør
--[=[
  | Dokument
  | Sikre parametre: e.titel.kilde, e.institution
  | Sikre parametre for <Form> "A1": e.titel.no4
  | Et normativt dokument uden tidsangivelse
  | for publikation mærkes "(?)".
--]=]
	elseif (l.DT == "Dokument") then
		if (not l.Form) then
			e.fmt_part1 =
					(b.dok_skrb and
						((e.fmt_skrb or e.fmt_red) and
							(F.etal (e.fmt_skrb or e.fmt_red)
							.. (e.red_udvalg and
							(T.mell .. T.slash .. T.mell .. e.red_udvalg) or "")))
						or  e.red_udvalg or e.institution)
					.. (T.L.mellx2) .. "(" .. (e.tid or T.ukendt) .. ")"
					.. l.Sep .. F.lnk1 (e.titel.kilde, e.url)
					.. (e.titel.no4 and
						(l.Sep .. T.Ia .. e.titel.no4 .. T.Ib) or "")
					.. e.fmt_formal
					.. (b.dok_skrb and (l.Sep .. e.institution) or "")
					.. (e.sted and (l.Sep .. e.sted) or "")
					.. (e.url2 and (l.Sep .. F.lnk2 (
							T.tilg .. "(" .. F.kortWeb (e.url2) .. ")",e.url2))
						or "")

		elseif (l.Form == "A") then
			e.fmt_part1 =
					e.institution
					.. (T.L.mellx2) .. "(" .. (e.tid or T.ukendt) .. ")"
					.. l.Sep .. F.lnk1 (e.titel.kilde, e.url)
					.. (e.titel.no4 and
						(l.Sep .. T.Ia .. e.titel.no4 .. T.Ib) or "")
					.. e.fmt_formal
					.. (e.sted and (l.Sep .. e.sted) or "")

		elseif (l.Form == "A1") then
			e.fmt_part1 =
					T.STRGa .. e.titel.no4 .. T.STRGb
					.. (T.L.mellx2) .. "(" .. (e.tid or T.ukendt) .. ")"
					.. l.Sep .. F.lnk1 (e.titel.kilde, e.url)
					.. l.Sep .. e.institution

		elseif (l.Form == "A2") then
			e.fmt_part1 =
					F.lnk1 (e.titel.kilde, e.url)
					.. T.mell .. "(" .. (e.tid or T.ukendt) .. ")"
					.. l.Sep .. e.institution
					.. (e.sted and (l.Sep .. e.sted) or "")

		elseif (l.Form == "B") then
			e.fmt_part1 =
					(e.titel.no4 and (T.STRGa .. e.titel.no4 .. T.STRGb) or "")
		.. ((e.fmt_skrb or e.fmt_red) and
						((e.titel.no4 and l.Sep)
						.. F.etal (e.fmt_skrb or e.fmt_red)
						.. (e.red_udvalg and
							(T.mell .. T.slash .. e.red_udvalg) or "")) or
					((e.red_udvalg and
						((e.titel.no4 and l.Sep or "") .. e.red_udvalg))) or "")
		.. ((b.dok_skrb or e.titel.no4) and
						((b.dok_skrb and (T.L.mellx2)) or (T.L.mellx2))
						.. ("(" .. (e.tid or T.ukendt) .. ")" .. l.Sep) or "")
					.. F.lnk1 (e.titel.kilde, e.url)
					.. e.fmt_formal
					.. l.Sep .. e.institution
					.. (not (b.dok_skrb or e.titel.no4) and
						(T.komma .. (e.tid or "(" .. T.ukendt .. ")")) or "")
					.. (e.sted and (l.Sep .. e.sted) or "")
					.. (e.url2 and (l.Sep .. F.lnk2 (T.tilg,e.url2)) or "")
		end
	end --}
--[=[
  | Appendiks
--]=]
	if (e.aA or e.aB) then
		e.fmt_apx = (not e.label and T.L.mellx2 .. T.L.mellx2 .. T.mell_ or "") .. T.L.apx
			.. (e.aA or "") .. (e.aB or "") .. T.Sb
	end 
--[=[    || 'uncomment' for lokal miljø BEGIN
	local s = e.fmt_part1 .. (e.label or "") .. (e.fmt_apx or "")
	if (html) then
		print ("<p>" .. e.cite .. s:gsub('([^%[%]])%[([^%[%] ]*) *([^%[%]]*)%]','%1' .. '<a href="' .. '%2">' .. '%3</a>') .. T.ctEND)
	elseif (not tom) then
		print (s .. (DBG and "\n" .. DBG or ""))
	end
	end --} lokal INVOKE END
--]=]
--[=[    || 'uncomment' for lokal miljø END
--]=]
--[=[    || 'comment' for lokal miljø BEGIN
--]=]
	return e.cite .. e.fmt_part1 .. (e.label or "") .. (e.fmt_apx or "") .. T.ctEND
end --} modul END
return p