MediaWiki:Common.css: Unterschied zwischen den Versionen

Aus How to be a Hero
Zur Navigation springen Zur Suche springen
Zeile 1: Zeile 1:
local p = {} --local p = {} -- p steht für Paket (engl. package)
/* Das folgende CSS wird für alle Benutzeroberflächen geladen. */


function split (inputstr, sep)
/* +++++ 0. Generelle Wikiformatierung +++++ */
.image, a#top{
    background:none !important;
    padding-right: 0px !important;
    text-decoration: none;
}
.image:hover, a#top:hover{
    background:none !important;
}
.mw-body a:not([rel="nofollow"]), .mw-body .external{
    background-position: center right;
    background-repeat: no-repeat;
    background-image: url(/skins/Vector/images/external-link-ltr-icon.png?325de);
    padding-right: 13px;
    text-decoration: underline;
}
.mw-body a:not([rel="nofollow"]):hover, .mw-body .external:hover{
    background-color: #bdbdbd;
}
.mw-body h1{
    font-size: 2.7em !important;
    font-family: "tahoma" !important;
}
.mw-body :not(.toctitle)> h2{
    font-size: 2.3em !important;
    font-weight: bold;
    font-family: "tahoma" !important;
}


    if sep == nil then
.mw-body h3{
        sep = "%s"
     font-size: 1.9em !important;
     end
     border-bottom: 1px solid #a2a9b1;
     local t={}
     font-family: "tahoma" !important;
     for str in string.gmatch(string.gsub(inputstr,sep, "\0"),"%Z+") do
     font-weight: normal !important;
        table.insert(t, str)
}
     end
    return t
end


function copy(obj, seen)
.mw-body h4{
  if type(obj) ~= 'table' then return obj end
    font-size: 1.6em !important;
  if seen and seen[obj] then return seen[obj] end
     font-family: "tahoma";
  local s = seen or {}
}
  local res = setmetatable({}, getmetatable(obj))
  s[obj] = res
  for k, v in pairs(obj) do res[copy(k, s)] = copy(v, s) end
  return res
end
function tabContains(tableasd, keaaay)
solution = nil --"key: "..keaaay.."\n\n"
     for numgasbr,crreasdnt in pairs(tableasd) do
if (tableasd[numgasbr] == keaaay) then
solution = numgasbr
end
--solution = solution..numgasbr..": "..crreasdnt[numgasbr].."\n\n"
end
return solution
end


function displaytablevert(taable)
.mw-body h5{
endresutl=""
    font-size: 1.3em !important;
if (taable==nil or taable[1]==nil) then
    font-family: "tahoma";
return endresutl
}
end
for nnnn,entri in pairs(taable) do
endresutl=endresutl..entri.."\n"
end
return endresutl
end


function displaytablehor(taaable)
/* +++++ 1. HAUPTSEITE +++++ */
endresutal=""
.mw-wiki-logo {
if (taaable==nil or taaable[1]==nil) then
        background-size: 100%;
return endresutal
}
end
for nn,entria in pairs(taaable) do
endresutal=endresutal..entria.." - "
end
return endresutal
end


function displaytabletwo(taaaable)
.heroimage img, .heroimage {
endresutaal=""
max-width: 100%;
if (taaaable==nil or taaaable[1]==nil) then
max-height: 100%;
return endresutaal
width: 100%;
end
height: 100%;
for nnn,entriaa in pairs(taaaable) do
border: 0 !important;
endresutaal=endresutaal..displaytablehor(entriaa).."\n\n"
margin: auto;
end
margin-top: 2px;
return endresutaal
}
end


.sub {
padding: 10px 0px 15px;
}


function gmatchtable(text, pattern)
div#hauptseite h2 {
ztable={}
font-family: inherit;
font-size: 1.5em;
for word in string.gmatch(text, pattern) do
font-weight: bold;
table.insert(ztable,word)
line-height: 1.5;
end
margin: 0;
padding: .1em 0;
return ztable
}
end
div#hauptseite h3 {
font-family: inherit;
font-size: 1em;
font-weight: bold;
line-height: 1.5;
margin: 0;
padding: .1em 0;
}
#hauptseite .inhalt {
border-top: 0;
min-height: 0; /* IE 7 */
padding: .3em .8em .4em;
}
#hauptseite .inhalt hr {
height: 1px;
margin: .5em 0;
}
#hauptseite .inhalt .mehr {
clear: both;
font-size: 95%;
margin-top: .8em;
text-align: right;
}
.hauptseite-oben,
.hauptseite-obenlinks,
.hauptseite-obenrechts,
.hauptseite-links,
.hauptseite-rechts,
.hauptseite-hinweise,
.hauptseite-mitte{
margin-bottom: 1em;
}
.hauptseite-obenlinks,
.hauptseite-links {
margin-right: .5em;
}
.hauptseite-obenrechts,
.hauptseite-hinweise,
.hauptseite-rechts {
margin-left: .5em;
}
.hauptseite-oben h2,
.hauptseite-obenlinks h2,
.hauptseite-obenrechts h2,
.hauptseite-hinweise h2,
.hauptseite-mitte h2,
.hauptseite-unten h2 {
text-align: center;
}
.hauptseite-oben .inhalt .portale {
font-weight: bold;
margin: .2em 0;
}
.hauptseite-oben .inhalt .intern {
font-size: 90%;
text-align: center;
}
.hauptseite-links h2,
.hauptseite-hinweise h2,
.hauptseite-rechts h2,
.hauptseite-unten h2 {
text-indent: .8em;
}
.hauptseite-links h3,
.hauptseite-hinweise h3,
.hauptseite-rechts h3,
.hauptseite-unten h3 {
text-indent: .8em;
}


function tablelength(T)
.hauptseite-unten h3 {
  local count = 0
font-size: 1.15em;
  if (T==nil or T[1]==nil) then
}
return 0
  end
#hauptseite .mw-headline-anchor {
  for _ in pairs(T) do count = count + 1 end
display: none;
  return count
}
end


function getindexformat()
/* +++++ 2. KATEGORIE-KLAPPBOXEN +++++ */
title = mw.title.new( "Indexformat", "Yggdrasil" )
.categoryListTitle {
content = title:getContent()
    font-family: inherit;
content = string.gsub(content, "</pre>.-<pre>" , "!!!")
    font-size: 1em;
content = string.gsub(content, "</pre>.*" , "")
    font-weight: bold;
content = string.gsub(content, ".*<pre>" , "")
    color: #ffffff;
content = string.gsub(content, "|" , "\n|")
    line-height: 1.5;
content = split(content,"!!!")
    margin: 0;
return content
    padding: .1em 10px;
    text-decoration: underline;
    border: 2px solid #A3ACBE;
}


end
.categoryListColumn:hover .categoryListTitle {
    border: 2px solid #838FA7;
    text-decoration: none;
}


.categoryList.hidden {
    display: none;
}


function getheader( title, namespace )
.categoryList.shown {
title = mw.title.new( title, namespace )
    display: block;
content = title:getContent()
}
content = string.gsub(content, "%=%=+", "§§§")
content = split("hallo"..content, "§§§")
iiii = 2
iiiii = 1
length = tablelength(content)
finaltext={}
while (iiii<=length) do
finaltext[iiiii] = content[iiii]
iiii = iiii + 2
iiiii = iiiii + 1
end
return finaltext
end


function getheaderlimit( title, namespace )
.categoryList-item {
limiit = tonumber(string.sub(title, string.len(title)))
    font-size: 1em;
title = string.sub(title, 1, string.len(title)-2)
}
title = mw.title.new( title, namespace )
content = title:getContent()
curhead=""
while (0<=limiit) do
curhead = curhead.."%="
limiit = limiit-1
end
curhead = curhead.."+"
content = string.gsub(content, curhead, "no")
content = string.gsub(content, "%=%=+", "§§§")
content = split("hallo"..content, "§§§")
iiii = 2
iiiii = 1
length = tablelength(content)
endtext={}
while (iiii<=length) do
endtext[iiiii] = content[iiii]
iiii = iiii + 2
iiiii = iiiii + 1
end
return endtext
end


.categoryList {
    padding: 5px 10px;
    background: white;
}


.categoryListRow {
    display: flex;
    flex-wrap: wrap;
}


.categoryListColumn {
    flex-grow: 1;
    flex-basis: 10%;


    background: #A3ACBE;
}


function cut( limit, realtext )
.categoryListColumn:hover {
testtext = ""
    flex-grow: 1;
    flex-basis: 10%;
realtext = removespaceinlink(realtext) --Die Schmiede
srealtext = split(realtext, " ") --Die|Schmiede(list)
i = 2; --2
testtext = testtext.."<br \>"..i..": "
text = display(removespaceinlink(realtext)) --Die Schmiede
stext = split(text, " ") --Die|Schmiede(list)
if(table.getn(stext)==1) then
if(string.len(stext[1])>limit) then
return "%@%"..text
else
return text.."%@%"
end
end
cuttext = stext[1] --Die
realcuttext = srealtext[1] --Die
nextwo = stext[2] --Schmiede
realnextwo = srealtext[2] --Schmiede
nextlen = string.len(nextwo)--8
textlen = string.len(text)--12
cuttextlen = string.len(cuttext)--3
set = true;
testtext = testtext.."<br \>"..i..": "..realcuttext
if(limit>=textlen)then --4>=12
return realtext.."%@%"
elseif(cuttextlen>limit) then--3>4
return "%@%"..realtext


else
    background: #838FA7;
while (cuttextlen+nextlen+1<=textlen+2) do --8+3+1<=12+2(12<=14)|14+3+1<=12+2(18<=14)
}
if(cuttextlen+nextlen+1>limit and set) then --8+3+1>4(12>4)|
set = false
cuttext = cuttext.."%@%" --"Die %@%"
realcuttext = realcuttext.."%@%" --"Die %@%"
else
cuttext = cuttext.." " --
realcuttext = realcuttext.." " --
end
-- testtext = testtext..tostring(i)..": "..realcuttext.."<br />"
i = i + 1 --3
cuttext = cuttext..nextwo -- "Die%@%Schmiede"
realcuttext = realcuttext..realnextwo -- "Die%@%Schmiede"
nextwo = stext[i]-- nil
realnextwo = srealtext[i]-- nil
if (nextwo ~= nil) then
nextlen = string.len(nextwo) -- 5
end
cuttextlen = string.len(cuttext) -- 14
testtext = testtext.."<br \>"..i..": "..realcuttext
end
realnextwo = srealtext[i]
if (realnextwo ~= nil) then
realcuttext = realcuttext.." "..realnextwo
end
end
testtext = testtext.."<br \>"..(i+1)..": "..realcuttext
return realcuttext
end


function headertotablelimit(title, namespace)
.break-1 .categoryListColumn {
limiiiit = tonumber(string.sub(title, string.len(title)))-1
    min-width: 100%;
title = string.sub(title, 1, string.len(title)-2)
}
title = mw.title.new( title, namespace )
content = title.getContent(title)
original = headertotable(content)
neworiginal = {}
for nnnnn,entriii in ipairs(original) do
if (tablelength(entriii)<=limiiiit) then
neworiginal[nnnnn] = entriii
end
end
return neworiginal
end


function display ( text )
.break-2 .categoryListColumn {
text = text:gsub("'", "")
    min-width: 50%;
lend = string.len(text)
}
ii=1
auf = {}
zu = {}
currentauf = string.find(text, "%[%[")
while (currentauf ~= nil) do
auf[ii] = currentauf;
if (string.find(string.sub(text,currentauf+2), "%[%[")~=nil)then
currentauf = currentauf+1+string.find(string.sub(text,currentauf+2), "%[%[")
else
currentauf = nil
end
ii=ii+1
end
ii=1
currentzu = string.find(text, "%|")
while (currentzu ~= nil) do
zu[ii] = currentzu;
if (string.find(string.sub(text,currentzu+2), "%|")~=nil)then
currentzu = currentzu+1+string.find(string.sub(text,currentzu+2), "%|")
else
currentzu = nil
end
ii=ii+1
end
offset = 0
if(table.getn(auf) == table.getn(zu))then
ii=1
while (table.getn(auf)>=ii) do
anfang = auf[ii]
ende = zu[ii]
tt, uu = string.find(string.sub(text, 1, anfang-offset+1), "%[%[(.+)%|")
text = string.gsub(string.sub(text, 1, anfang-offset+1), "%[%[(.+)%|", "")..string.sub(text,anfang-offset+2,string.len(text))
-- text = string.sub(text,1,anfang-offset+1)..string.sub(text,ende+1-offset,string.len(text))
if (tt ~= nil) and (uu ~= nil) then
offset = offset+uu-tt
end
ii=ii+1
end
text = string.gsub(text, "%[%[(.+)%|", "")
end
-- text = text:gsub("%[", "")
-- text = text:gsub("%|", "")
text = text:gsub("%]", "")


.break-3 .categoryListColumn {
    min-width: 33.333%;
}


return text
.break-4 .categoryListColumn {
end
    min-width: 25%;
}


function removespaceinlink(text)
.break-5 .categoryListColumn {
iii=1
    min-width: 20%;
auf = {}
}
zu = {}
currentauf = string.find(text, "%[%[")
while (currentauf ~= nil) do
auf[iii] = currentauf;
if (string.find(string.sub(text,currentauf+2), "%[%[")~=nil)then
currentauf = currentauf+1+string.find(string.sub(text,currentauf+2), "%[%[")
else
currentauf = nil
end
iii=iii+1
end
iii=1
currentzu = string.find(text, "%]%]")
while (currentzu ~= nil) do
zu[iii] = currentzu;
if (string.find(string.sub(text,currentzu+2), "%]%]")~=nil)then
currentzu = currentzu+1+string.find(string.sub(text,currentzu+2), "%]%]")
else
currentzu = nil
end
iii=iii+1
end
if(table.getn(auf) == table.getn(zu))then
iii=1
while (table.getn(auf)>=iii) do
anfang = auf[iii]
ende = zu[iii]
text = string.sub(text,1,anfang-1)..string.gsub(string.sub(text,anfang,ende)," ","§")..string.sub(text,ende+1,string.len(text))


iii=iii+1
.break-6 .categoryListColumn {
end
    min-width: 16.66666%;
end
}
return text
end


function gethighest( tabhle )
.break-7 .categoryListColumn {
highest = tabhle[1]
    min-width: 14.285%;
for numgbr,crregnt in ipairs(tabhle) do
}
if (highest<tabhle[numgbr]) then
highest=tabhle[numgbr]
end
end
return highest
end


function duptable( tabhdhle )
.break-8 .categoryListColumn {
dupe = {}
    min-width: 12.5%;
nothertab = {}
}
for nuamgbr,craregnt in pairs(tabhdhle) do
reallycontains  = tabContains(nothertab,craregnt)
if (reallycontains==nil) then
nothertab[nuamgbr] = craregnt
else
tempdupetable = {reallycontains,nuamgbr}
table.insert(dupe,tempdupetable)
end
end
return dupe
end


function schlagwortliste()
.break-9 .categoryListColumn {
tiasdtasdfle = mw.title.new( "Schlagwortliste", "Yggdrasil" )
    min-width: 11.1111%;
contegfgdfndasdat = tiasdtasdfle:getContent()
}
schlagworttable = {}
for thingis in string.gmatch(contegfgdfndasdat, "%{%{o%|.-%|") do
iuadiuh = string.sub(thingis,5,string.len(thingis)-1)
if (iuadiuh~="Name") then
table.insert(schlagworttable,iuadiuh)
end
end


return schlagworttable
.break-10 .categoryListColumn {
    min-width: 10%;
}


end
/* +++++ 3. BOX-HALTENDE HOWKYS +++++ */
.howky
{
    position: relative;
}


function gegvorapi()
.howky:after, .howky.tragendBeidseitig:before {
listxy = {}
    position: absolute;
gegtitle = mw.title.new( "Gegenstände", "Yggdrasil" )
    display: block;
gegcontent = gegtitle:getContent()
    content: '';
tabbbb = headertotable(gegcontent)
    background-size: cover;
headerewnds = {}
    background-position: 0 0;
tempzwweites = {}
    background-repeat: no-repeat no-repeat;
tempzudreites = 0
}
tempzudreitasdafsaes = 0
for eiwnes,zwwweites in pairs(tabbbb) do
if (tablelength(zwwweites) == 3) then
tempzwweites = copy(zwwweites)
x,tempzudreites = string.find(gegcontent,"===="..tempzwweites[3].."====")
tempzudreitasdafsaes,x = string.find(gegcontent,"\n=", tempzudreites)
if (tempzudreitasdafsaes==nil) then
tempzudreitasdafsaes = string.len(gegcontent)
end
tempzwweites[4] = string.gsub(string.sub(gegcontent,tempzudreites+1,tempzudreitasdafsaes-1),"<.->","")
table.insert(listxy,tempzwweites)
end
end
return listxy -- 1:Category 2: Subcategory 3: Name 4:content
end


function zeros(intedhfgjdgkztger)
.howky.knieendUntenLinks:after {
     resdgsgst = ""
    background-image: url(https://howtobeahero.de/images/c/c5/Howky_Kniened_Unten.png);
     while (intedhfgjdgkztger>0) do
     height: 76px;
        resdgsgst=resdgsgst.."0"
     width: 63px;
        intedhfgjdgkztger=intedhfgjdgkztger-1
    bottom: -76px;
end
     left: 0;
     return resdgsgst
}
end


function ones(intedhfgjdfasgkztger)
.howky.knieendUntenRechts:after {
     resdgsasdgst = ""
    background-image: url(https://howtobeahero.de/images/c/c5/Howky_Kniened_Unten.png);
     while (intedhfgjdfasgkztger>0) do
     height: 76px;
        resdgsasdgst=resdgsasdgst.."1"
     width: 63px;
        intedhfgjdfasgkztger=intedhfgjdfasgkztger-1
    bottom: -76px;
end
     right: 0;
     return resdgsasdgst
}
end


function gegapi()
.howky.stehendUntenLinks:after {
catlist = {}
    background-image: url(https://howtobeahero.de/images/6/6b/Howky_Stehend_Unten.png);
nosortlist = {}
    height: 76px;
unforlist = gegvorapi()
    width: 44px;
temptable = {}
    bottom: -76px;
temprest = ""
    left: 0;
tempsplittable = {}
}
nothertempsplittable = {}
tempimg = nil
for numd, keyd in pairs(unforlist) do
temptable = {}
if (catlist[keyd[1]] == nil) then
catlist[keyd[1]] = {}
end
if (catlist[keyd[1]][keyd[2]] == nil) then
catlist[keyd[1]][keyd[2]] = {}
end
if (catlist[keyd[1]][keyd[2]][numd] == nil) then
catlist[keyd[1]][keyd[2]][numd] = {}
end
temptable["Category"] = keyd[1]
temptable["Subcategory"] = keyd[2]
temptable["Name"] = keyd[3]
catlist[keyd[1]][keyd[2]][numd]["Name"] = keyd[3]
temptable["Text"] =  string.gsub(string.gsub(split(keyd[4], "\n%|\n")[2],"%}%}",""),"\n\n","")
catlist[keyd[1]][keyd[2]][numd]["Text"] = temptable["Text"]
temprest = split(keyd[4], "\n%|\n")[1]
tempimg = string.match(temprest,"img=.-\n")
anothertemp = ""
if (tempimg~= nil) then
temptable["Img"] = string.sub(tempimg,5)
catlist[keyd[1]][keyd[2]][numd]["Img"] = temptable["Img"]
end
temprest = string.gsub(string.gsub(temprest,"\n",""), "{{YggTab.-|!", "")
temprest = string.gsub(temprest, "{{YggTab|!", "|-|!")
temprest = split(temprest,"|%-|!")
for tri,asdf in pairs(temprest) do
tempsplittable = split(asdf,"|")
intindex = 2
nothertempsplittable = {}
while (intindex<=tablelength(tempsplittable)) do
anothertemp = tempsplittable[intindex]
if (string.find(anothertemp,"/")==1) then
anothertemp = string.sub(anothertemp,2)
elseif (string.find(anothertemp,":")~=nil) then
anothertemp = "[[Yggdrasil:"..split(anothertemp,":")[1].."|"..split(anothertemp,":")[2].."]]"
end
table.insert(nothertempsplittable,anothertemp)
intindex = intindex + 1
end
temptable[tempsplittable[1]] = copy(nothertempsplittable)
catlist[keyd[1]][keyd[2]][numd][tempsplittable[1]] = temptable[tempsplittable[1]]
if (tempsplittable[1]=="Schlagwörter") then
temptable[tempsplittable[1]] = split(temptable[tempsplittable[1]][1],", ")
catlist[keyd[1]][keyd[2]][numd][tempsplittable[1]] = temptable[tempsplittable[1]]
end
end
table.insert(nosortlist,temptable)
end
return nosortlist, catlist
end


function changebin(binaasdasfgggary, integeeer)
.howky.stehendUntenRechts:after {
binaaasdfhry = binaasdasfgggary
    background-image: url(https://howtobeahero.de/images/6/6b/Howky_Stehend_Unten.png);
tochange = string.sub(binaaasdfhry, integeeer, integeeer)
     height: 76px;
if(tochange == "1") then
    width: 44px;
        binaaasdfhry = string.sub(binaaasdfhry,1,integeeer-1).."0"..string.sub(binaaasdfhry,integeeer+1)
    bottom: -76px;
     elseif(tochange == "0") then
    right: 0;
        binaaasdfhry = string.sub(binaaasdfhry,1,integeeer-1).."1"..string.sub(binaaasdfhry,integeeer+1)
}
end
return binaaasdfhry
end


function multchangebin(binaaghdfghsdgggary, integeeerstart, integeeerend)
.howky.tragendBeidseitig:after {
while (integeeerstart<=integeeerend) do
    background-image: url(https://howtobeahero.de/images/1/19/Howky_Stehend_Rechts.png);
binaaghdfghsdgggary = changebin(binaaghdfghsdgggary,integeeerstart)
    height: 76px;
integeeerstart = integeeerstart+1
    width: 41px;
end
    bottom: 0;
return binaaghdfghsdgggary
    right: -41px;
end
}


function multset(binaafgdhjhsdgggary, numbertoset, integerstart, integerend)
.howky.tragendBeidseitig:before {
if (numbertoset == "1") then
    background-image: url(https://howtobeahero.de/images/5/51/Howky_Stehend_Links.png);
binaafgdhjhsdgggary = string.sub(binaafgdhjhsdgggary, 0, integerstart-1)..ones(integerend-integerstart+1)..string.sub(binaafgdhjhsdgggary, integerend+1)
    height: 76px;
elseif(numbertoset == "0") then
    width: 41px;
binaafgdhjhsdgggary = string.sub(binaafgdhjhsdgggary, 0, integerstart-1)..zeros(integerend-integerstart+1)..string.sub(binaafgdhjhsdgggary, integerend+1)
    bottom: 0;
end
    left: -41px;
return binaafgdhjhsdgggary
}
end


function multchangebinall(binaasdgggary, integerstart, integerend)
/* +++++ 4. BOX-HALTENDE HOWKYS +++++ */
izgovouv = string.sub(binaasdgggary, integerstart, integerend)
.howkyContainer
if (izgovouv~=ones(integerend-integerstart+1)) then
{
binaasdgggary = multset(binaasdgggary, "1",integerstart, integerend)
    position: relative;
else
}
binaasdgggary = multset(binaasdgggary, "0",integerstart, integerend)
end
return binaasdgggary
end


function tran(integedasfr)
.howky:after, .howky.tragendBeidseitig:before {
     integerotut = integedasfr
     position: absolute;
     if (integedasfr=="1") then
     display: block;
        integerotut = "tagselected"
    content: '';
     elseif (integedasfr=="0") then
    background-size: cover;
        integerotut = "tagunselected"
     background-position: 0 0;
end
     background-repeat: no-repeat no-repeat;
     return integerotut
}
end


function trancat(integdfghedasfr)
.howky.knieendUntenLinks:after {
     integerdfghotut = integdfghedasfr
    background-image: url(https://howtobeahero.de/images/c/c5/Howky_Kniened_Unten.png);
     if (integdfghedasfr=="1") then
     height: 76px;
        integerdfghotut = "catselected"
     width: 63px;
     elseif (integdfghedasfr=="0") then
    bottom: -76px;
        integerdfghotut = "catunselected"
     left: 0;
end
}
    return integerdfghotut
end


function tranlinkopen(integasdedasfr)
.howky.knieendUntenRechts:after {
     integerasdotut = integasdedasfr
    background-image: url(https://howtobeahero.de/images/c/c5/Howky_Kniened_Unten.png);
     if (integasdedasfr=="1") then
     height: 76px;
        integerasdotut = '<span class="linkwhite">'
     width: 63px;
     elseif (integasdedasfr=="0") then
    bottom: -76px;
        integerasdotut = '<span class="linkred">'
     right: 0;
end
}
    return integerasdotut
end


function multtran(intedfgsdggedasfr)
.howky.stehendUntenLinks:after {
     integerodfghdfghtut = intedfgsdggedasfr
     background-image: url(https://howtobeahero.de/images/6/6b/Howky_Stehend_Unten.png);
    if (intedfgsdggedasfr==ones(string.len(intedfgsdggedasfr))) then
    height: 76px;
        integerodfghdfghtut = "tagselected"
     width: 44px;
     else
    bottom: -76px;
        integerodfghdfghtut = "tagunselected"
     left: 0;
end
}
     return integerodfghdfghtut
end


function multtranlinkopen(intedsdfgsdfgfgsdggedasfr)
.howky.stehendUntenRechts:after {
     asdfintegerodfghdfghtut = intedsdfgsdfgfgsdggedasfr
     background-image: url(https://howtobeahero.de/images/6/6b/Howky_Stehend_Unten.png);
    if (intedsdfgsdfgfgsdggedasfr==ones(string.len(intedsdfgsdfgfgsdggedasfr))) then
    height: 76px;
        asdfintegerodfghdfghtut = '<span class="linkwhite">'
     width: 44px;
     else
    bottom: -76px;
        asdfintegerodfghdfghtut = '<span class="linkred">'
     right: 0;
end
}
     return asdfintegerodfghdfghtut
end


function getint(binnnarry, ineetger)
.howky.tragendBeidseitig:after {
return string.sub(binnnarry,ineetger,ineetger)
    background-image: url(https://howtobeahero.de/images/1/19/Howky_Stehend_Rechts.png);
end
    height: 76px;
    width: 41px;
    bottom: 0;
    right: -41px;
}


function getmultint(binnnarry, ineetgerstarti, inteegerendi)
.howky.tragendBeidseitig:before {
return string.sub(binnnarry,ineetgerstarti,inteegerendi)
    background-image: url(https://howtobeahero.de/images/5/51/Howky_Stehend_Links.png);
end
    height: 76px;
    width: 41px;
    bottom: 0;
    left: -41px;
}


function numtran(binsnnafsffarry, ineeggsdgtger)
/* +++++ 5. AUFTEILENDE BOXEN +++++ */
return tran(getint(binsnnafsffarry, ineeggsdgtger))
.flexbox
end
{
    display: flex;
    flex-wrap: wrap;
}


function numtrancat(binsnsdfnafsffarry, ineegfdfggsdgtger)
.flexbox > *
return trancat(getint(binsnsdfnafsffarry, ineegfdfggsdgtger))
{
end
    flex: 1 100%;
}


function numtranlinkopen(binhfghsnnarry, ineegdfsdhgtger)
.flexbox > .double
return tranlinkopen(getint(binhfghsnnarry, ineegdfsdhgtger))
{
end
    flex: 1 49%;
}


function nummulttran(binsnwrtzeghnarry, ineegsgdfsdhftgereins, ineegsgdfsdhftgerzwei)
.flexbox > .triple
return multtran(getmultint(binsnwrtzeghnarry, ineegsgdfsdhftgereins, ineegsgdfsdhftgerzwei))
{
end
    flex: 1 32%;
}


function nummulttranlinkopen(binsnnarry, ineegtgereins, ineegtgerzwei)
/* Allow limiting of which header levels are shown in a TOC;
return multtranlinkopen(getmultint(binsnnarry, ineegtgereins, ineegtgerzwei))
  <div class="toclimit-3">, for instance, will limit to
end
  showing ==headings== and ===headings=== but no further
  (as long as there are no =headings= on the page, which
  there shouldn't be according to the MoS).
*/
.toclimit-2 .toclevel-2,
.toclimit-3 .toclevel-3,
.toclimit-4 .toclevel-4,
.toclimit-5 .toclevel-5,
.toclimit-6 .toclevel-6,
.toclimit-7 .toclevel-7 { display: none; }


function categorylist()
/* +++++ 6. FIXIERTE INFINITYBARS +++++ */
gegasdtitle = mw.title.new( "Gegenstände", "Yggdrasil" )
.sticky {
gegconfsatent = gegasdtitle:getContent()
    position: fixed;
tabbfghbb = headertotable(gegconfsatent)
    z-index: 99999999;
lastlist = {}
}
for eiwnes,zwwweites in pairs(tabbfghbb) do
if (tablelength(zwwweites) == 1) then
lastlist[zwwweites[1]] = {}
end
if (tablelength(zwwweites) == 2) then
table.insert(lastlist[zwwweites[1]],zwwweites[2])
end
end
return lastlist --Kategorie-->stringlist:subcategories
end


function doubletablelength(taaabaaabaal)
/* +++++ 7. YGGDRASIL+++++ */
seendlength = 0
for iaubgs,aousbd in pairs(taaabaaabaal) do
seendlength = seendlength+tablelength(aousbd)
end


return seendlength
.ns-104 .mw-body h2 {
end
        font-size: 3em;
--##################################################################################################################################################################
        font-family: serif;
--##################################################################################################################################################################
        color: #000eb9;
--##################################################################################################################################################################
        text-transform: capitalize;
--##################################################################################################################################################################
}
--##################################################################################################################################################################
.ns-104 .mw-body h3 {
--##################################################################################################################################################################
        font-size: 2.2em;
        font-family: serif;
        color: #006708;
        text-transform: capitalize;
        font-weight: normal;
        border-bottom: 1px solid #868686;
        padding-top: 0em;
}
.ns-104 .mw-body h4 {
        font-size: 1.6em;
        font-weight: bold;
        font-family: sans-serif;
        padding-top: 0.2em;
}
.ns-104 .mw-body h5 {
        font-size: 1.2em;
        font-weight: bold;
        font-family: sans-serif;
}
.ns-104 .mw-body h6 {
        font-size: 1em;
        font-weight: bold;
        font-family: sans-serif;
}
/*
.ns-104 .mw-body a {
        font-weight: bold;
       
}
.ns-104 .mw-editsection a,.ns-104 .wikiEditor-ui-tabs div a{
        font-weight: normal !important;
}
*/
.ns-104 .wikiEditor-ui-controls{
    background: url(https://howtobeahero.de/images/thumb/5/55/Dankepf%C3%B6n.png/800px-Dankepf%C3%B6n.png);
    background-repeat: no-repeat;
    background-size: 16%;
    background-position-x: +99%;
    background-color: white;
}


div#yggimg img {
    margin-top: 0.3em;
    max-width: 100%;
    max-height: 100%;
    height: auto;
    border: 0 !important;
    margin: auto;
    right: 0;


function p.cutblock ( frame )
}
text = frame.args[3]-- "Die Schmiede"
width = tonumber(frame.args[2]) -- 4
height = tonumber(frame.args[1]) -- 12
block = ""
textlen = string.len(text) -- 12
tempsplit = {}
while (height>0 and textlen>=width) do -- 12>0 and 12>=4|11>0 and 11>=4
tempsplit = split(cut(width, text), "%%%@%%") -- ("Die", "Schmiede")| (
block = block..tempsplit[1].." " -- "Die "
text = tempsplit[2] -- "Schmiede"
height = height-1 -- 11
if (text==nil) then
text = ""
end
textlen = string.len(text) -- 8
end
if (height>0) then
block = block.." "..text
text = ""
end
result = block.."%@%"..text
result = string.gsub(result, "%§", " ")
return result


.ns-104 .mw-body .toc h2{
    font-weight: normal !important;
   
}


end
.ns-104 .mw-body .toc a{
    font-weight: normal !important;
   
}


function p.cut( frame )
.yggclass #categoryListTitle {
testtext = ""
    font-family: inherit;
realtext = frame.args[2] --Die Schmiede
    font-size: 1em;
realtext = removespaceinlink(realtext) --Die Schmiede
    font-weight: bold;
srealtext = split(realtext, " ") --Die|Schmiede(list)
    color: #ffffff;
i = 2; --2
    line-height: 1.5;
testtext = testtext.."<br \>"..i..": "
    margin: 0;
limit = tonumber(frame.args[1]) --4
    padding: .1em 10px;
text = display(removespaceinlink(realtext)) --Die Schmiede
    text-decoration: underline;
stext = split(text, " ") --Die|Schmiede(list)
    border: 2px solid #A3ACBE;
}
if(table.getn(stext)==1) then
if(string.len(stext[1])>limit) then
return "%@%"..text
else
return text.."%@%"
end
end
cuttext = stext[1] --Die
realcuttext = srealtext[1] --Die
nextwo = stext[2] --Schmiede
realnextwo = srealtext[2] --Schmiede
nextlen = string.len(nextwo)--8
textlen = string.len(text)--12
cuttextlen = string.len(cuttext)--3
set = true;
testtext = testtext.."<br \>"..i..": "..realcuttext
if(limit>=textlen)then --4>=12
return realtext.."%@%"
elseif(cuttextlen>limit) then--3>4
return "%@%"..realtext


else
.yggclass categoryListTitle {
while (cuttextlen+nextlen+1<=textlen+2) do --8+3+1<=12+2(12<=14)|14+3+1<=12+2(18<=14)
    border: 5px solid #838FA7;
    text-decoration: none;
if(cuttextlen+nextlen+1>limit and set) then --8+3+1>4(12>4)|
}
set = false
cuttext = cuttext.."%@%" --"Die %@%"
realcuttext = realcuttext.."%@%" --"Die %@%"
else
cuttext = cuttext.." " --
realcuttext = realcuttext.." " --
end
-- testtext = testtext..tostring(i)..": "..realcuttext.."<br />"
i = i + 1 --3
cuttext = cuttext..nextwo -- "Die%@%Schmiede"
realcuttext = realcuttext..realnextwo -- "Die%@%Schmiede"
nextwo = stext[i]-- nil
realnextwo = srealtext[i]-- nil
if (nextwo ~= nil) then
nextlen = string.len(nextwo) -- 5
end
cuttextlen = string.len(cuttext) -- 14
testtext = testtext.."<br \>"..i..": "..realcuttext
end
realnextwo = srealtext[i]
if (realnextwo ~= nil) then
realcuttext = realcuttext.." "..realnextwo
end
end
testtext = testtext.."<br \>"..(i+1)..": "..realcuttext
return realcuttext
end


function p.display ( frame )
/* +++++ 8. REGISTER+++++ */
text = frame.args[1]
.registerselected {
text = text:gsub("'", "")
    white-space: nowrap;
lend = string.len(text)
    border: solid;
i=1
    border-color: blueviolet;
auf = {}
    border-bottom-color: white;
zu = {}
    border-width: 2px;
currentauf = string.find(text, "%[%[")
    padding: 0px;
while (currentauf ~= nil) do
    text-align: center;
auf[i] = currentauf;
}
if (string.find(string.sub(text,currentauf+2), "%[%[")~=nil)then
currentauf = currentauf+1+string.find(string.sub(text,currentauf+2), "%[%[")
else
currentauf = nil
end
i=i+1
end
i=1
currentzu = string.find(text, "%|")
while (currentzu ~= nil) do
zu[i] = currentzu;
if (string.find(string.sub(text,currentzu+2), "%|")~=nil)then
currentzu = currentzu+1+string.find(string.sub(text,currentzu+2), "%|")
else
currentzu = nil
end
i=i+1
end
offset = 0
if(table.getn(auf) == table.getn(zu))then
i=1
while (table.getn(auf)>=i) do
anfang = auf[i]
ende = zu[i]
tt, uu = string.find(string.sub(text, 1, anfang-offset+1), "%[%[(.+)%|")
text = string.gsub(string.sub(text, 1, anfang-offset+1), "%[%[(.+)%|", "")..string.sub(text,anfang-offset+2,string.len(text))
-- text = string.sub(text,1,anfang-offset+1)..string.sub(text,ende+1-offset,string.len(text))
if (tt ~= nil) and (uu ~= nil) then
offset = offset+uu-tt
end
i=i+1
end
text = string.gsub(text, "%[%[(.+)%|", "")
end
-- text = text:gsub("%[", "")
-- text = text:gsub("%|", "")
text = text:gsub("%]", "")


.registerunselected {
    white-space: nowrap; 
    border: solid;
    border-color: blueviolet;
    border-width: 2px;
    padding: 0px;
    text-align: center;
}


return text
.registerunselected a{
end
    display:block;
    padding: 15px;
    padding-right: 40px;
    padding-left: 40px;
    background-color: tan;
    background-image: none;
}


.registerselected a{
    display:block;
    padding: 15px;
    padding-right: 40px;
    padding-left: 40px;
    background-color: bisque;
    background-image: none;
}
.registerunselected a:hover{
    background-color: rosybrown;
    text-decoration: none;
}
.registerbetween {
    padding: 0;
    width: 0.2%;
    border-bottom: solid;
    border-bottom-color: blueviolet;
    border-width: 2px;
    text-align: center;


}
.registerrest {
    border-bottom: solid;
    width:100%;
    border-bottom-color: blueviolet;
    border-width: 2px;
    text-align: center;
}


function p.split ( frame )
/* +++++ 9. HEADERTEST+++++ */
spl = split(frame.args[1],frame.args[2])
i=1
t=""
while(i<=tablelength(spl)) do
t = t..spl[i].."\n\n"
i=i+1
end


     return t
body.page-Yggdrasil_Test1Ohnetitel h1, body.page-Yggdrasil_Test2Ohnetitel h1, body.page-Yggdrasil_Test3Ohnetitel h1 {
end
    border: none;
     display: none;
}


function p.removespaceinlink(frame)
body.page-Yggdrasil_Test1Ohnetitel .mw-body, body.page-Yggdrasil_Test2Ohnetitel .mw-body, body.page-Yggdrasil_Test3Ohnetitel .mw-body {
text = frame.args[1]
    padding-top: 0px;
i=1
}
auf = {}
zu = {}
currentauf = string.find(text, "%[%[")
while (currentauf ~= nil) do
auf[i] = currentauf;
if (string.find(string.sub(text,currentauf+2), "%[%[")~=nil)then
currentauf = currentauf+1+string.find(string.sub(text,currentauf+2), "%[%[")
else
currentauf = nil
end
i=i+1
end
i=1
currentzu = string.find(text, "%]%]")
while (currentzu ~= nil) do
zu[i] = currentzu;
if (string.find(string.sub(text,currentzu+2), "%]%]")~=nil)then
currentzu = currentzu+1+string.find(string.sub(text,currentzu+2), "%]%]")
else
currentzu = nil
end
i=i+1
end
if(table.getn(auf) == table.getn(zu))then
i=1
while (table.getn(auf)>=i) do
anfang = auf[i]
ende = zu[i]
text = string.sub(text,1,anfang-1)..string.gsub(string.sub(text,anfang,ende)," ","§")..string.sub(text,ende+1,string.len(text))


i=i+1
end
end
return text
end


body.page-Benutzerin_Murmelgrumpf h1{
    background-image: url( https://howtobeahero.de/images/thumb/4/40/Vinetest3.PNG/800px-Vinetest3.PNG );
    background-position-y: -10px;
    font-style: italic;
    font-weight: bold;
    color: antiquewhite;
}


body.page-Benutzerin_Murmelgrumpf .mw-wiki-logo:hover{
    background-image: url(https://howtobeahero.de/images/thumb/4/4e/Wikioc.png/800px-Wikioc.png)
}


.ns-104 .mw-collapsed {
    display: none !important;
}


body.page-Headertest h1{
    background-image: url( https://howtobeahero.de/images/thumb/7/70/Headertest2.png/800px-Headertest2.png );
    color: transparent;
    border: none;
    background-repeat: no-repeat;
    background-size: 600px;
}


body.page-Yggdrasil_Religion h1, body.page-Yggdrasil_Religion2 h1, body.page-Yggdrasil_Religion3 h1, body.page-Yggdrasil_Religion4 h1, body.page-Yggdrasil_Religion5 h1, body.page-Yggdrasil_Religion6 h1{ 
    font-size:28.8px;
    margin-top: 0px;
}


function p.size ( frame )
body.page-Yggdrasil_Religion .firstHeading, body.page-Yggdrasil_Religion2 .firstHeading, body.page-Yggdrasil_Religion3 .firstHeading, body.page-Yggdrasil_Religion4 .firstHeading, body.page-Yggdrasil_Religion5 .firstHeading, body.page-Yggdrasil_Religion6 .firstHeading{
text = frame.args[1]
    border: none;
return textSize(text)
    display: none;
end
}


body.page-Yggdrasil_Religion #contentSub, body.page-Yggdrasil_Religion2 #contentSub, body.page-Yggdrasil_Religion3 #contentSub, body.page-Yggdrasil_Religion4 #contentSub, body.page-Yggdrasil_Religion5 #contentSub, body.page-Yggdrasil_Religion6 #contentSub{
    display: none;
}


body.page-Yggdrasil_Religion h1 .mw-editsection, body.page-Yggdrasil_Religion2 h1 .mw-editsection, body.page-Yggdrasil_Religion3 h1 .mw-editsection, body.page-Yggdrasil_Religion4 h1 .mw-editsection, body.page-Yggdrasil_Religion5 h1 .mw-editsection, body.page-Yggdrasil_Religion6 h1 .mw-editsection{ 
    display: none;
}
/* +++++ 10. REDAKTIONSMEETINGSHOWOFF+++++ */


.box {
    color: #000;
    background-color: #f8f9fa;
    border: 1px solid #eaecf0;
    padding: 1em;
    font-family: monospace,'Courier';
    display: block;
margin-top: 1em;
    margin-bottom: 1em;
}


.box p{
    margin:0;
}


function p.size ( frame )
/* +++++ 11. NAVFRAME+++++ */
text = frame.args[1]
div.NavFrame + div.NavFrame {
return textSize(text)
border-top-style: none;
end
border-top-style: hidden;
}
div.NavPic {
background-color: #fff;
margin: 0;
padding: 2px;
/* @noflip */
float: left;
}
div.NavFrame div.NavHead {
position: relative;
}
div.NavFrame p,
div.NavFrame div.NavContent,
div.NavFrame div.NavContent p {
    font-size: 100%;
   
}
div.NavEnd {
    margin: 0;
    padding: 0;
    line-height: 1px;
    clear: both;
}
a.NavToggle {
    position: absolute;
    top: 0;
    right: 1.8em;
    font-weight: normal;
    font-size: 120%;
}


function p.findg( frame )
.client-js .NavFrame.collapsed > .NavContent {
text = frame.args[1]
display: none;
d,s,r = string.find(text, "g")
}
return d,s,r


end
/* +++++ 12. TagSystem+++++ */
.tagholder {
margin-left: auto;
margin-right: auto;
align-self: center;
width:100%;
text-align: center;
}
.tagselected {
background-color: #ff3939;
display: inline-block;
border: 1px solid #ff3939;
margin-right: 1em;
margin-left: 1em;
border-radius: 0.9em;
}


function p.indexold
.tagunselected {
( frame )
background-color: #ffffff;
text = frame.args[1]
display: inline-block;
stext = split (text, "§§§")
border: 1px solid #ff3939;
currentpage = ""
margin-right: 1em;
currentheaders= nil
margin-left: 1em;
finish = ""
border-radius: 0.9em;
i = 1
}
inde = 1
.tagunselected:hover {
while (i<=tablelength(stext)) do
    background-color: #ff8e8e;
currentpage = stext[i]
    background-image: none;
currentheaders = getheaderlimit(currentpage, "Yggdrasil")
    text-decoration: none;
currentpage = string.sub(currentpage, 1, string.len(currentpage)-2)
}
headlen = tablelength(currentheaders)
.tagselected:hover {
inde = 1
    background-color: #ff8e8e;
while (inde<=headlen) do
    background-image: none;
finish = finish.."|[[Yggdrasil:"..currentpage.."#"..currentheaders[inde].."|"..currentheaders[inde].."]]\n|[[Yggdrasil:"..currentpage.."|"..currentpage.."]]\n|-\n"
    text-decoration: none;
}
inde=inde+1
end
i=i+1
end
--text = frame.args[1]
--stext = split (text, "\n")
--ending = ""
--for i = 1,tablelength(stext),1 do
-- currentsplit = split (stext[i], "%>")
-- leng = tablelength(currentsplit)
-- ending = ending.."|[[Yggdrasil:"..currentsplit[2].."#"..currentsplit[1].."|"..currentsplit[1].."]]\n|[[Yggdrasil:"..currentsplit[2].."|"..currentsplit[2].."]]\n|-\n"
--end
return finish
end


.catselected {
background-color: #ff3939;
display: table;
border: 1px solid #ff3939;
border-radius: 0.9em;
}
.tagselected .catselected{
border: 1px solid #ffffff;
}
.catunselected {
background-color: #ffffff;
display: table;
border: 1px solid #ff3939;
border-radius: 0.9em;
}
.catunselected:hover {
    background-color: #ff8e8e;
    background-image: none;
    text-decoration: none;
}
.catselected:hover {
    background-color: #ff8e8e;
    background-image: none;
    text-decoration: none;
}


function p.yggrassen( frame )
.linkred a{
text = frame.args[1]
    display: block;
stext = split (text, "\n")
    background-image: none !important;
haupttext = split (text, "'''Nebenrassen'''")[1]
    padding-right: 0px !important;
nebentext = split (text, "'''Nebenrassen'''")[2]
    text-decoration: none !important;
shaupttext = split (haupttext, "\n")
    background: transparent !important;
snebentext = split (nebentext, "\n")
    color: #ff3939 !important;
ending = "!<big>Hauptrassen</big>\n|-\n"
}
for i = 2,tablelength(stext),1 do
if (stext[i]=="'''Nebenrassen'''") then
ending = ending.."!<big>Nebenrassen</big>\n|-\n"
else
ending = ending.."|<big>'''[[#"..stext[i].."|"..stext[i].."]]'''</big>\n|-\n"
end
end


return ending
.linkwhite a{
 
    display: block;
end
    background-image: none !important;
 
    padding-right: 0px !important;
 
    text-decoration: none !important;
 
     background: transparent !important;
function p.yggtab( frame )
     color: #ffffff !important;
text = frame.args[1]
}
img = frame.args[2]
stext = split (text, "§§§")
exist = true
imgtext = ''
if (img~=nil and img~='' and img~='{{{img}}}') then
imgtext='<div id="yggimg">[[Datei:'..img..']]</div>\n'
end
i=1
rettext='{|class="wikitable" style="width: 32%; float:right; margin-top: 0; margin-bottom: 0px;"\n|-\n'
while (stext[i+1]~=nil) do
rettext=rettext..'!style="width:32%; padding: 10px;" |'..string.sub(stext[i],2,string.len(stext[i]))..'\n'
i=i+1
if (stext[i+1]~=nil and stext[i]~='-') then
rettext=rettext..'|style="width:68%; padding: 10px;" |'
end
while (stext[i+1]~=nil and stext[i]~='-') do
if(string.sub(stext[i],1,1)=='/') then
rettext=rettext..string.sub(stext[i],2)
elseif(string.find(stext[i],'#')~=nil) then
found=string.find(stext[i],'#')
rettext=rettext..'[[Yggdrasil:'..string.sub(stext[i],1,found-1)..'#'..string.sub(stext[i],found+1,string.len(stext[i]))..'|'..string.sub(stext[i],found+1,string.len(stext[i]))..']]'
else
rettext=rettext..'[[#'..stext[i]..'|'..stext[i]..']]'
end
rettext=rettext..'\n\n'
i=i+1
end
 
rettext=rettext..'|-\n'
i=i+1
end
rettext=rettext..'|}'..stext[i-1]..'\n|style="width:20%; padding: 0; vertical-align:top;"|'..imgtext
return rettext
end
 
function p.getpage( frame )
title = mw.title.new( frame.args[1], frame.args[2] )
content = title:getContent()
return content
end
 
function p.getheader( frame )
title = mw.title.new( frame.args[1], frame.args[2] )
content = title:getContent()
--content = string.gsub(content, "([$$$]+)", "DIESER CHARACTER WIRD NICHT UNTERSTÜTZT")
content = string.gsub(content, "%=%=+", "§§§")
content = split("hallo"..content, "§§§")
i = 2
length = tablelength(content)
finaltext=""
while (i<=length) do
if (string.match(content[i], "[^[(%s)(%d)(%a)]]")==nil) then
finaltext = finaltext..content[i].."\n\n"
end
i = i + 2
end
return finaltext
end
 
function markheaders(content)
content = content.."\npuffercontent\n"
content = string.gsub(content, "=\n", "=\npuffercontent\n")
content = string.gsub(content, "\n=%s*([^%=]+)%s*=\n", "\n")
content = string.gsub(content, "\n==%s*([^%=]+)%s*==\n", "\n!Anfang2!%1!2Ende!\n")
content = string.gsub(content, "\n===%s*([^%=]+)%s*===\n", "\n!Anfang3!%1!3Ende!\n")
content = string.gsub(content, "\n====%s*([^%=]+)%s*====\n", "\n!Anfang4!%1!4Ende!\n")
content = string.gsub(content, "\n=====%s*([^%=]+)%s*=====\n", "\n!Anfang5!%1!5Ende!\n")
content = string.gsub(content, "\n======%s*([^%=]+)%s*======\n", "\n!Anfang6!%1!6Ende!\n")
return content
end
 
function onllyheaders(content)
content = markheaders(content)
content = string.gsub(content,"!.Ende!\n.-\n!Anfang", "\n\n")
content = string.gsub(content,".*!Anfang", "")
content = string.gsub(content,"!.Ende!.*", "")
return content
end
 
function headertotable(content)
testvar=""
content = onllyheaders(content)
firsthead=1
if (string.find(content, "1!")== nil) then
firsthead=firsthead+1
if (string.find(content, "2!")== nil) then
firsthead=firsthead+1
if (string.find(content, "3!")== nil) then
firsthead=firsthead+1
if (string.find(content, "4!")== nil) then
firsthead=firsthead+1
if (string.find(content, "5!")== nil) then
firsthead=firsthead+1
end
end
end
end
end
iiiiii={1,2,2,2,2,1}
content="puffer\n"..content.."\n\n2!Puffer"
iall=0
headersplit={}
headersplit[1] = split(content,tostring(firsthead).."!")
currenthead={}
finaltable={}
while (iiiiii[1]<tablelength(headersplit[1])-1) do--tablelength(headersplit[1])
iall=iall+1
currenthead[1] = string.gsub(gmatchtable(headersplit[1][iiiiii[1]+1], ".-\n")[1],"\n","")
finaltable[iall]={currenthead[1]..testvar}
headersplit[2] = split(headersplit[1][iiiiii[1]+1],tostring(firsthead+1).."!")
while (iiiiii[2]<=tablelength(headersplit[2])) do
iall=iall+1
currenthead[2] = string.gsub(gmatchtable(headersplit[2][iiiiii[2]], ".-\n")[1],"\n","")
finaltable[iall]={currenthead[1],currenthead[2]}
headersplit[3] = split(headersplit[2][iiiiii[2]],tostring(firsthead+2).."!")
while (iiiiii[3]<=tablelength(headersplit[3])) do
iall=iall+1
currenthead[3] = string.gsub(gmatchtable(headersplit[3][iiiiii[3]], ".-\n")[1],"\n","")
finaltable[iall]={currenthead[1],currenthead[2],currenthead[3]}
headersplit[4] = split(headersplit[3][iiiiii[3]],tostring(firsthead+3).."!")
while (iiiiii[4]<=tablelength(headersplit[4])) do
iall=iall+1
currenthead[4] = string.gsub(gmatchtable(headersplit[4][iiiiii[4]], ".-\n")[1],"\n","")
finaltable[iall]={currenthead[1],currenthead[2],currenthead[3],currenthead[4]}
headersplit[5] = split(headersplit[4][iiiiii[4]],tostring(firsthead+4).."!")
while (iiiiii[5]<=tablelength(headersplit[5])) do
iall=iall+1
currenthead[5] = string.gsub(gmatchtable(headersplit[5][iiiiii[5]], ".-\n")[1],"\n","")
finaltable[iall]={currenthead[1],currenthead[2],currenthead[3],currenthead[4],currenthead[5]}
iiiiii[5]=iiiiii[5]+1
end
iiiiii[5]=2
iiiiii[4]=iiiiii[4]+1
end
iiiiii[4]=2
iiiiii[3]=iiiiii[3]+1
end
iiiiii[3]=2
iiiiii[2]=iiiiii[2]+1
end
iiiiii[2]=2
iiiiii[1]=iiiiii[1]+1
end
return finaltable
 
end
 
 
 
function p.index( frame )
--content = displaytablevert(getindexformat())
text = frame.args[1]
stext = split (text, "§§§")
currentpage = ""
currentheaders= nil
finish = ""
tempfinish =""
i = 1
inde = 1
while (i<=tablelength(stext)) do
currentpage = stext[i]
currentheaders = headertotablelimit(currentpage, "Yggdrasil")
currentpage = string.sub(currentpage, 1, string.len(currentpage)-2)
headlen = tablelength(currentheaders)
inde = 1
while (inde<=headlen) do
if (tablelength(currentheaders[inde])==1) then
tempfinish = getindexformat()[1]
tempfinish = string.gsub(tempfinish, "{{{h1}}}", currentheaders[inde][1])
tempfinish = string.gsub(tempfinish, "{{{h1 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][1].."|"..currentheaders[inde][1].."]]")
elseif(tablelength(currentheaders[inde])==2) then
tempfinish = getindexformat()[2]
tempfinish = string.gsub(tempfinish, "{{{h1}}}", currentheaders[inde][1])
tempfinish = string.gsub(tempfinish, "{{{h2}}}", currentheaders[inde][2])
tempfinish = string.gsub(tempfinish, "{{{h1 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][1].."|"..currentheaders[inde][1].."]]")
tempfinish = string.gsub(tempfinish, "{{{h2 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][2].."|"..currentheaders[inde][2].."]]")
elseif(tablelength(currentheaders[inde])==3) then
tempfinish = getindexformat()[3]
tempfinish = string.gsub(tempfinish, "{{{h1}}}", currentheaders[inde][1])
tempfinish = string.gsub(tempfinish, "{{{h2}}}", currentheaders[inde][2])
tempfinish = string.gsub(tempfinish, "{{{h3}}}", currentheaders[inde][3])
tempfinish = string.gsub(tempfinish, "{{{h1 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][1].."|"..currentheaders[inde][1].."]]")
tempfinish = string.gsub(tempfinish, "{{{h2 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][2].."|"..currentheaders[inde][2].."]]")
tempfinish = string.gsub(tempfinish, "{{{h3 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][3].."|"..currentheaders[inde][3].."]]")
elseif(tablelength(currentheaders[inde])==4) then
tempfinish = getindexformat()[4]
tempfinish = string.gsub(tempfinish, "{{{h1}}}", currentheaders[inde][1])
tempfinish = string.gsub(tempfinish, "{{{h2}}}", currentheaders[inde][2])
tempfinish = string.gsub(tempfinish, "{{{h3}}}", currentheaders[inde][3])
tempfinish = string.gsub(tempfinish, "{{{h4}}}", currentheaders[inde][4])
tempfinish = string.gsub(tempfinish, "{{{h1 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][1].."|"..currentheaders[inde][1].."]]")
tempfinish = string.gsub(tempfinish, "{{{h2 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][2].."|"..currentheaders[inde][2].."]]")
tempfinish = string.gsub(tempfinish, "{{{h3 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][3].."|"..currentheaders[inde][3].."]]")
tempfinish = string.gsub(tempfinish, "{{{h4 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][4].."|"..currentheaders[inde][4].."]]")
elseif(tablelength(currentheaders[inde])==5) then
tempfinish = getindexformat()[5]
tempfinish = string.gsub(tempfinish, "{{{h1}}}", currentheaders[inde][1])
tempfinish = string.gsub(tempfinish, "{{{h2}}}", currentheaders[inde][2])
tempfinish = string.gsub(tempfinish, "{{{h3}}}", currentheaders[inde][3])
tempfinish = string.gsub(tempfinish, "{{{h4}}}", currentheaders[inde][4])
tempfinish = string.gsub(tempfinish, "{{{h5}}}", currentheaders[inde][5])
tempfinish = string.gsub(tempfinish, "{{{h1 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][1].."|"..currentheaders[inde][1].."]]")
tempfinish = string.gsub(tempfinish, "{{{h2 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][2].."|"..currentheaders[inde][2].."]]")
tempfinish = string.gsub(tempfinish, "{{{h3 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][3].."|"..currentheaders[inde][3].."]]")
tempfinish = string.gsub(tempfinish, "{{{h4 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][4].."|"..currentheaders[inde][4].."]]")
tempfinish = string.gsub(tempfinish, "{{{h5 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][5].."|"..currentheaders[inde][5].."]]")
elseif(tablelength(currentheaders[inde])==6) then
tempfinish = getindexformat()[6]
tempfinish = string.gsub(tempfinish, "{{{h1}}}", currentheaders[inde][1])
tempfinish = string.gsub(tempfinish, "{{{h2}}}", currentheaders[inde][2])
tempfinish = string.gsub(tempfinish, "{{{h3}}}", currentheaders[inde][3])
tempfinish = string.gsub(tempfinish, "{{{h4}}}", currentheaders[inde][4])
tempfinish = string.gsub(tempfinish, "{{{h5}}}", currentheaders[inde][5])
tempfinish = string.gsub(tempfinish, "{{{h6}}}", currentheaders[inde][6])
tempfinish = string.gsub(tempfinish, "{{{h1 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][1].."|"..currentheaders[inde][1].."]]")
tempfinish = string.gsub(tempfinish, "{{{h2 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][2].."|"..currentheaders[inde][2].."]]")
tempfinish = string.gsub(tempfinish, "{{{h3 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][3].."|"..currentheaders[inde][3].."]]")
tempfinish = string.gsub(tempfinish, "{{{h4 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][4].."|"..currentheaders[inde][4].."]]")
tempfinish = string.gsub(tempfinish, "{{{h5 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][5].."|"..currentheaders[inde][5].."]]")
tempfinish = string.gsub(tempfinish, "{{{h6 link}}}", "[[Yggdrasil:"..currentpage.."#"..currentheaders[inde][6].."|"..currentheaders[inde][6].."]]")
end
if(tablelength(currentheaders[inde])~=0) then
if (currentpage=="Religion") then
currentpagedis = "Religion/Äscher"
elseif(currentpage=="Religion2") then
currentpagedis = "Religion/Lacerta"
elseif(currentpage=="Religion2") then
currentpagedis = "Religion/Lichtalben"
elseif(currentpage=="Religion2") then
currentpagedis = "Religion/Dunkelalben"
elseif(currentpage=="Religion2") then
currentpagedis = "Religion/Dweorgo"
elseif(currentpage=="Religion2") then
currentpagedis = "Religion/Andere"
else
currentpagedis = currentpage
end
tempfinish = "|"..string.gsub(string.gsub(tempfinish, "{{{page}}}", currentpagedis),"\n", "",1)
tempfinish = string.gsub(tempfinish, "{{{page link}}}", "[[Yggdrasil:"..currentpage.."|"..currentpagedis.."]]")
finish = finish..tempfinish.."\n|-\n"
end
inde=inde+1
end
i=i+1
end
return finish
 
--<h2>
 
end
 
function p.religion( frame )
ull = ""
if (frame.args[1]=="1") then
ull = '{{YggRegister|!Religion:Äscher|Religion2:Lacerta|Religion3:Lichtalben|Religion4:Dubkelalben|Religion5:Dweorgo|Religion6:Andere}}'
elseif (frame.args[1]=="2") then
ull = '{{YggRegister|Religion:Äscher|!Religion2:Lacerta|Religion3:Lichtalben|Religion4:Dubkelalben|Religion5:Dweorgo|Religion6:Andere}}'
elseif (frame.args[1]=="3") then
ull = '{{YggRegister|Religion:Äscher|Religion2:Lacerta|!Religion3:Lichtalben|Religion4:Dubkelalben|Religion5:Dweorgo|Religion6:Andere}}'
elseif (frame.args[1]=="4") then
ull = '{{YggRegister|Religion:Äscher|Religion2:Lacerta|Religion3:Lichtalben|!Religion4:Dubkelalben|Religion5:Dweorgo|Religion6:Andere}}'
elseif (frame.args[1]=="5") then
ull = '{{YggRegister|Religion:Äscher|Religion2:Lacerta|Religion3:Lichtalben|Religion4:Dubkelalben|!Religion5:Dweorgo|Religion6:Andere}}'
elseif (frame.args[1]=="6") then
ull = '{{YggRegister|Religion:Äscher|Religion2:Lacerta|Religion3:Lichtalben|Religion4:Dubkelalben|Religion5:Dweorgo|!Religion6:Andere}}'
end
return ull
end
 
 
function p.test( frame )
dieter, dieter2 = gegapi()
dieter2 = dieter2["Kampfutensilien"]["Nahkampfwaffen"][1]
leresti = "Dinge:\n"
    for zahl,dingsi in  pairs(dieter2) do
        leresti = leresti.."*"..zahl..":"
if (dingsi[1]~=nil) then
for zahfgsal,didfsdhngsi in  pairs(dingsi) do
leresti = leresti.." - "..didfsdhngsi
end
else
leresti = leresti.." "..dingsi
end
leresti = leresti.."\n"
end
return leresti
 
end
 
function p.options( frame )
stext = split (frame.args[1], "§§§")
lengthi = tablelength(stext)
finalthing = ""
tempeins = stext[1]
tempzwei = stext[2]
tempdrei = stext[3]
tempvier = stext[4]
tempfunf = stext[5]
tempsech = stext[6]
tempsieb = stext[7]
tempacht = stext[8]
tempneun = stext[9]
if (lengthi==2) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
finalthing = "*"..tempeins.." (Bei 1-50)\n*"..tempzwei.." (Bei 51-100)"
elseif(lengthi==3) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
if (string.sub(stext[3],1,1)~="/") then
tempdrei = "[[#"..tempdrei.."|"..tempdrei.."]]"
else
tempdrei = string.sub(tempdrei,2)
end
finalthing = "*"..tempeins.." (Bei 1-33)\n*"..tempzwei.." (Bei 34-66)\n*"..tempdrei.." (Bei 67-99)\n*Bei 100: Reroll"
elseif(lengthi==4) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
if (string.sub(stext[3],1,1)~="/") then
tempdrei = "[[#"..tempdrei.."|"..tempdrei.."]]"
else
tempdrei = string.sub(tempdrei,2)
end
if (string.sub(stext[4],1,1)~="/") then
tempvier = "[[#"..tempvier.."|"..tempvier.."]]"
else
tempvier = string.sub(tempvier,2)
end
finalthing = "*"..tempeins.." (Bei 1-25)\n*"..tempzwei.." (Bei 26-50)\n*"..tempdrei.." (Bei 51-75)\n*"..tempvier.." (Bei 76-100)"
elseif(lengthi==5) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
if (string.sub(stext[3],1,1)~="/") then
tempdrei = "[[#"..tempdrei.."|"..tempdrei.."]]"
else
tempdrei = string.sub(tempdrei,2)
end
if (string.sub(stext[4],1,1)~="/") then
tempvier = "[[#"..tempvier.."|"..tempvier.."]]"
else
tempvier = string.sub(tempvier,2)
end
if (string.sub(stext[5],1,1)~="/") then
tempfunf = "[[#"..tempfunf.."|"..tempfunf.."]]"
else
tempfunf = string.sub(tempfunf,2)
end
finalthing = "*"..tempeins.." (Bei 1-20)\n*"..tempzwei.." (Bei 21-40)\n*"..tempdrei.." (Bei 41-60)\n*"..tempvier.." (Bei 61-80)\n*"..tempfunf.." (Bei 81-100)"
elseif(lengthi==6) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
if (string.sub(stext[3],1,1)~="/") then
tempdrei = "[[#"..tempdrei.."|"..tempdrei.."]]"
else
tempdrei = string.sub(tempdrei,2)
end
if (string.sub(stext[4],1,1)~="/") then
tempvier = "[[#"..tempvier.."|"..tempvier.."]]"
else
tempvier = string.sub(tempvier,2)
end
if (string.sub(stext[5],1,1)~="/") then
tempfunf = "[[#"..tempfunf.."|"..tempfunf.."]]"
else
tempfunf = string.sub(tempfunf,2)
end
if (string.sub(stext[6],1,1)~="/") then
tempsech = "[[#"..tempsech.."|"..tempsech.."]]"
else
tempsech = string.sub(tempsech,2)
end
finalthing = "*"..tempeins.." (Bei 1-16)\n*"..tempzwei.." (Bei 17-32)\n*"..tempdrei.." (Bei 33-48)\n*"..tempvier.." (Bei 49-64)\n*"..tempfunf.." (Bei 65-80)\n*"..tempsech.." (Bei 81-96)\n*Bei 97-100: Reroll"
elseif(lengthi==7) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
if (string.sub(stext[3],1,1)~="/") then
tempdrei = "[[#"..tempdrei.."|"..tempdrei.."]]"
else
tempdrei = string.sub(tempdrei,2)
end
if (string.sub(stext[4],1,1)~="/") then
tempvier = "[[#"..tempvier.."|"..tempvier.."]]"
else
tempvier = string.sub(tempvier,2)
end
if (string.sub(stext[5],1,1)~="/") then
tempfunf = "[[#"..tempfunf.."|"..tempfunf.."]]"
else
tempfunf = string.sub(tempfunf,2)
end
if (string.sub(stext[6],1,1)~="/") then
tempsech = "[[#"..tempsech.."|"..tempsech.."]]"
else
tempsech = string.sub(tempsech,2)
end
if (string.sub(stext[7],1,1)~="/") then
tempsieb = "[[#"..tempsieb.."|"..tempsieb.."]]"
else
tempsieb = string.sub(tempsieb,2)
end
finalthing = "*"..tempeins.." (Bei 1-14)\n*"..tempzwei.." (Bei 15-28)\n*"..tempdrei.." (Bei 29-42)\n*"..tempvier.." (Bei 43-56)\n*"..tempfunf.." (Bei 57-70)\n*"..tempsech.." (Bei 71-84)\n*"..tempsieb.." (Bei 85-98)\n*Bei 99-100: Reroll"
elseif(lengthi==8) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
if (string.sub(stext[3],1,1)~="/") then
tempdrei = "[[#"..tempdrei.."|"..tempdrei.."]]"
else
tempdrei = string.sub(tempdrei,2)
end
if (string.sub(stext[4],1,1)~="/") then
tempvier = "[[#"..tempvier.."|"..tempvier.."]]"
else
tempvier = string.sub(tempvier,2)
end
if (string.sub(stext[5],1,1)~="/") then
tempfunf = "[[#"..tempfunf.."|"..tempfunf.."]]"
else
tempfunf = string.sub(tempfunf,2)
end
if (string.sub(stext[6],1,1)~="/") then
tempsech = "[[#"..tempsech.."|"..tempsech.."]]"
else
tempsech = string.sub(tempsech,2)
end
if (string.sub(stext[7],1,1)~="/") then
tempsieb = "[[#"..tempsieb.."|"..tempsieb.."]]"
else
tempsieb = string.sub(tempsieb,2)
end
if (string.sub(stext[8],1,1)~="/") then
tempacht = "[[#"..tempacht.."|"..tempacht.."]]"
else
tempacht = string.sub(tempacht,2)
end
finalthing = "*"..tempeins.." (Bei 1-12)\n*"..tempzwei.." (Bei 13-24)\n*"..tempdrei.." (Bei 25-36)\n*"..tempvier.." (Bei 37-48)\n*"..tempfunf.." (Bei 49-60)\n*"..tempsech.." (Bei 61-72)\n*"..tempsieb.." (Bei 73-84)\n*"..tempacht.." (Bei 85-96)\n*Bei 97-100: Reroll"
elseif(lengthi==9) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
if (string.sub(stext[3],1,1)~="/") then
tempdrei = "[[#"..tempdrei.."|"..tempdrei.."]]"
else
tempdrei = string.sub(tempdrei,2)
end
if (string.sub(stext[4],1,1)~="/") then
tempvier = "[[#"..tempvier.."|"..tempvier.."]]"
else
tempvier = string.sub(tempvier,2)
end
if (string.sub(stext[5],1,1)~="/") then
tempfunf = "[[#"..tempfunf.."|"..tempfunf.."]]"
else
tempfunf = string.sub(tempfunf,2)
end
if (string.sub(stext[6],1,1)~="/") then
tempsech = "[[#"..tempsech.."|"..tempsech.."]]"
else
tempsech = string.sub(tempsech,2)
end
if (string.sub(stext[7],1,1)~="/") then
tempsieb = "[[#"..tempsieb.."|"..tempsieb.."]]"
else
tempsieb = string.sub(tempsieb,2)
end
if (string.sub(stext[8],1,1)~="/") then
tempacht = "[[#"..tempacht.."|"..tempacht.."]]"
else
tempacht = string.sub(tempacht,2)
end
if (string.sub(stext[9],1,1)~="/") then
tempneun = "[[#"..tempneun.."|"..tempneun.."]]"
else
tempneun = string.sub(tempneun,2)
end
finalthing = "*"..tempeins.." (Bei 1-11)\n*"..tempzwei.." (Bei 12-22)\n*"..tempdrei.." (Bei 23-33)\n*"..tempvier.." (Bei 34-44)\n*"..tempfunf.." (Bei 45-55)\n*"..tempsech.." (Bei 56-66)\n*"..tempsieb.." (Bei 67-77)\n*"..tempacht.." (Bei 78-88)\n*"..tempneun.." (Bei 89-99)\n*Bei 100: Reroll"
else
finalthing = "Die Anzahl an ausgewählten Optionen wird nicht unterstützt. Erkundige dich, dass du alles richtig geschrieben hast. Falls dir das Maximum von 9 Optionen nicht reicht wende dich bitte an [[Benutzerin:Murmelgrumpf]]"
end
return finalthing
end
function p.optionsnodice( frame )
stext = split (frame.args[1], "§§§")
lengthi = tablelength(stext)
finalthing = ""
tempeins = stext[1]
tempzwei = stext[2]
tempdrei = stext[3]
tempvier = stext[4]
tempfunf = stext[5]
tempsech = stext[6]
tempsieb = stext[7]
tempacht = stext[8]
tempneun = stext[9]
if (lengthi==2) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
finalthing = "*"..tempeins.."\n*"..tempzwei
elseif(lengthi==3) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
if (string.sub(stext[3],1,1)~="/") then
tempdrei = "[[#"..tempdrei.."|"..tempdrei.."]]"
else
tempdrei = string.sub(tempdrei,2)
end
finalthing = "*"..tempeins.."\n*"..tempzwei.."\n*"..tempdrei
elseif(lengthi==4) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
if (string.sub(stext[3],1,1)~="/") then
tempdrei = "[[#"..tempdrei.."|"..tempdrei.."]]"
else
tempdrei = string.sub(tempdrei,2)
end
if (string.sub(stext[4],1,1)~="/") then
tempvier = "[[#"..tempvier.."|"..tempvier.."]]"
else
tempvier = string.sub(tempvier,2)
end
finalthing = "*"..tempeins.."\n*"..tempzwei.."\n*"..tempdrei.."\n*"..tempvier
elseif(lengthi==5) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
if (string.sub(stext[3],1,1)~="/") then
tempdrei = "[[#"..tempdrei.."|"..tempdrei.."]]"
else
tempdrei = string.sub(tempdrei,2)
end
if (string.sub(stext[4],1,1)~="/") then
tempvier = "[[#"..tempvier.."|"..tempvier.."]]"
else
tempvier = string.sub(tempvier,2)
end
if (string.sub(stext[5],1,1)~="/") then
tempfunf = "[[#"..tempfunf.."|"..tempfunf.."]]"
else
tempfunf = string.sub(tempfunf,2)
end
finalthing = "*"..tempeins.."\n*"..tempzwei.."\n*"..tempdrei.."\n*"..tempvier.."\n*"..tempfunf
elseif(lengthi==6) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
if (string.sub(stext[3],1,1)~="/") then
tempdrei = "[[#"..tempdrei.."|"..tempdrei.."]]"
else
tempdrei = string.sub(tempdrei,2)
end
if (string.sub(stext[4],1,1)~="/") then
tempvier = "[[#"..tempvier.."|"..tempvier.."]]"
else
tempvier = string.sub(tempvier,2)
end
if (string.sub(stext[5],1,1)~="/") then
tempfunf = "[[#"..tempfunf.."|"..tempfunf.."]]"
else
tempfunf = string.sub(tempfunf,2)
end
if (string.sub(stext[6],1,1)~="/") then
tempsech = "[[#"..tempsech.."|"..tempsech.."]]"
else
tempsech = string.sub(tempsech,2)
end
finalthing = "*"..tempeins.."\n*"..tempzwei.."\n*"..tempdrei.."\n*"..tempvier.."\n*"..tempfunf.."\n*"..tempsech
elseif(lengthi==7) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
if (string.sub(stext[3],1,1)~="/") then
tempdrei = "[[#"..tempdrei.."|"..tempdrei.."]]"
else
tempdrei = string.sub(tempdrei,2)
end
if (string.sub(stext[4],1,1)~="/") then
tempvier = "[[#"..tempvier.."|"..tempvier.."]]"
else
tempvier = string.sub(tempvier,2)
end
if (string.sub(stext[5],1,1)~="/") then
tempfunf = "[[#"..tempfunf.."|"..tempfunf.."]]"
else
tempfunf = string.sub(tempfunf,2)
end
if (string.sub(stext[6],1,1)~="/") then
tempsech = "[[#"..tempsech.."|"..tempsech.."]]"
else
tempsech = string.sub(tempsech,2)
end
if (string.sub(stext[7],1,1)~="/") then
tempsieb = "[[#"..tempsieb.."|"..tempsieb.."]]"
else
tempsieb = string.sub(tempsieb,2)
end
finalthing = "*"..tempeins.."\n*"..tempzwei.."\n*"..tempdrei.."\n*"..tempvier.."\n*"..tempfunf.."\n*"..tempsech.."\n*"..tempsieb
elseif(lengthi==8) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
if (string.sub(stext[3],1,1)~="/") then
tempdrei = "[[#"..tempdrei.."|"..tempdrei.."]]"
else
tempdrei = string.sub(tempdrei,2)
end
if (string.sub(stext[4],1,1)~="/") then
tempvier = "[[#"..tempvier.."|"..tempvier.."]]"
else
tempvier = string.sub(tempvier,2)
end
if (string.sub(stext[5],1,1)~="/") then
tempfunf = "[[#"..tempfunf.."|"..tempfunf.."]]"
else
tempfunf = string.sub(tempfunf,2)
end
if (string.sub(stext[6],1,1)~="/") then
tempsech = "[[#"..tempsech.."|"..tempsech.."]]"
else
tempsech = string.sub(tempsech,2)
end
if (string.sub(stext[7],1,1)~="/") then
tempsieb = "[[#"..tempsieb.."|"..tempsieb.."]]"
else
tempsieb = string.sub(tempsieb,2)
end
if (string.sub(stext[8],1,1)~="/") then
tempacht = "[[#"..tempacht.."|"..tempacht.."]]"
else
tempacht = string.sub(tempacht,2)
end
finalthing = "*"..tempeins.."\n*"..tempzwei.."\n*"..tempdrei.."\n*"..tempvier.."\n*"..tempfunf.."\n*"..tempsech.."\n*"..tempsieb.."\n*"..tempacht
elseif(lengthi==9) then
if (string.sub(stext[1],1,1)~="/") then
tempeins = "[[#"..tempeins.."|"..tempeins.."]]"
else
tempeins = string.sub(tempeins,2)
end
if (string.sub(stext[2],1,1)~="/") then
tempzwei = "[[#"..tempzwei.."|"..tempzwei.."]]"
else
tempzwei = string.sub(tempzwei,2)
end
if (string.sub(stext[3],1,1)~="/") then
tempdrei = "[[#"..tempdrei.."|"..tempdrei.."]]"
else
tempdrei = string.sub(tempdrei,2)
end
if (string.sub(stext[4],1,1)~="/") then
tempvier = "[[#"..tempvier.."|"..tempvier.."]]"
else
tempvier = string.sub(tempvier,2)
end
if (string.sub(stext[5],1,1)~="/") then
tempfunf = "[[#"..tempfunf.."|"..tempfunf.."]]"
else
tempfunf = string.sub(tempfunf,2)
end
if (string.sub(stext[6],1,1)~="/") then
tempsech = "[[#"..tempsech.."|"..tempsech.."]]"
else
tempsech = string.sub(tempsech,2)
end
if (string.sub(stext[7],1,1)~="/") then
tempsieb = "[[#"..tempsieb.."|"..tempsieb.."]]"
else
tempsieb = string.sub(tempsieb,2)
end
if (string.sub(stext[8],1,1)~="/") then
tempacht = "[[#"..tempacht.."|"..tempacht.."]]"
else
tempacht = string.sub(tempacht,2)
end
if (string.sub(stext[9],1,1)~="/") then
tempneun = "[[#"..tempneun.."|"..tempneun.."]]"
else
tempneun = string.sub(tempneun,2)
end
finalthing = "*"..tempeins.."\n*"..tempzwei.."\n*"..tempdrei.."\n*"..tempvier.."\n*"..tempfunf.."\n*"..tempsech.."\n*"..tempsieb.."\n*"..tempacht.."\n*"..tempneun
else
finalthing = "Die Anzahl an ausgewählten Optionen wird nicht unterstützt. Erkundige dich, dass du alles richtig geschrieben hast. Falls dir das Maximum von 9 Optionen nicht reicht wende dich bitte an [[Benutzerin:Murmelgrumpf]]"
end
return finalthing
end
function p.kampf( frame )
     stext = split (frame.args[1], "§§§")
lengthi = tablelength(stext)
curthing = ""
eendrest = ""
for nudmbr,crdrent in ipairs(stext) do
curthing = split (stext[nudmbr], ">")
eendrest = eendrest.."|"..curthing[1].."\n|"..curthing[2].."\n|"..curthing[3].."\n|-\n"
end
return eendrest
end
 
function p.dia( frame )
    stext = split (frame.args[1], "§§§")
lengthi = tablelength(stext)
curthing = ""
eendrest = ""
for nudmbr,crdrent in ipairs(stext) do
curthing = split (stext[nudmbr], ":")
eendrest = eendrest.."\n'''"..curthing[1]..":'''\n\n„"..curthing[2].."“\n"
end
eendrest = string.gsub(eendrest, "(\n[\n%s]*)", "''%1''")
return eendrest
end
function p.image( frame )
imaage = "[[Datei:"..frame.args[1]
if (frame.args[2]~=nil) then
imaage = imaage.."|"..frame.args[2]
end
if (frame.args[3]~=nil) then
imaage = imaage.."|"..frame.args[3]
end
if (frame.args[4]~=nil) then
imaage = imaage.."|"..frame.args[4]
end
if (frame.args[5]~=nil) then
imaage = imaage.."|"..frame.args[5]
end
if (frame.args[6]~=nil) then
imaage = imaage.."|"..frame.args[6]
end
imaage = imaage.."]]"
return imaage
end
 
 
function p.vid( frame )
stext = split (frame.args[2], "§§§")
seend = "Hier kannst du das Abenteuer von ["..frame.args[1].."] noch ein mal nachschauen! Viel Spaß! :)\n"..'{|class="wikitable"\n|-\n'
     for nuudmbr,curdrent in ipairs(stext) do
seend = seend.."!Teil "..tostring(nuudmbr).."\n"
end
seend = seend.."|-\n"
    for nuudmbr,curdrent in ipairs(stext) do
seend = seend.."|"..curdrent.."\n"
end
seend = seend.."|-\n|}\n"
return seend
end
 
function p.talents( frame )
handeln = split (frame.args[1], "\n")
wissen = split (frame.args[2], "\n")
soziales = split (frame.args[3], "\n")
    lenlist = {}
lenlist[1] = tablelength(handeln)
lenlist[2] = tablelength(wissen)
lenlist[3] = tablelength(soziales)
highesst = gethighest(lenlist)
intex = 1
selast = ""
while (intex<=highesst) do
selast = selast.."|"
if (handeln[intex]~=nil) then
selast = selast..handeln[intex]
end
selast = selast.."\n|"
if (wissen[intex]~=nil) then
selast = selast..wissen[intex]
end
selast = selast.."\n|"
if (soziales[intex]~=nil) then
selast = selast..soziales[intex]
end
selast = selast.."\n|-\n"
intex = intex+1
end
return selast
end
 
function p.description( frame )
    stext = split (frame.args[1], "§§§")
eerndrest=""
if(tabContains(stext,"Szene")) then
eerndrest = eerndrest.."'''Szenen:'''\nSzenen geben Handlung und Orte vor, die die Spieler meist passiv miterleben.\n\n"
end
if(tabContains(stext,"Inter")) then
eerndrest = eerndrest.."'''<span style='color:#BB0011;'>Interaktionen:</span>'''\nInteraktionen sind aktive Szenen, die eine Interaktion mit den Spielern erfordern.\n\n"
end
if(tabContains(stext,"Kursiv")) then
eerndrest = eerndrest.."''Kursive Texte:''\nKursive Texte können wörtlich vorgetragen werden und beinhalten meist direkte Rede oder Beschreibungen.\n\n"
end
if(tabContains(stext,"Probe")) then
eerndrest = eerndrest.."'''<span style='color:#31B404;'>Proben:</span>'''\nSteht für mögliche Talentwürfe, welche die Spieler ablegen müssen.\n\n"
end
if(tabContains(stext,"Moral")) then
eerndrest = eerndrest.."'''<span style='color:#00b8ff;'>Moral:</span>'''\nBeinhaltet Situationen, an denen die Spieler moralische Fragen beantworten müssen, die sich auf den Verlauf des Abenteuers auswirken können.\n\n"
end
if(tabContains(stext,"Module")) then
eerndrest = eerndrest.."'''<span style='color:#4B088A;'>Module:</span>'''\nBeinhalten Regeln, die zusätzlich zum Grundregelwerk in diesem Abenteuer verwendet werden.\n\n"
end
if(tabContains(stext,"Box")) then
eerndrest = eerndrest.."<div class='box'>'''Boxen:''' Boxen stehen für Spielleiterhinweise und beinhalten meist Hintergrundinformationen, welche die Spieler nicht haben können.</div>\n\n"
end
return string.sub(eerndrest,0,string.len(eerndrest)-2)
end
 
function p.ygggegerror ( frame )
displayedtext = "\n\n----\n\n"
listeeins, listezwei = gegapi()
headerends = {}
schlagworte = schlagwortliste()
for eines,zweites in pairs(listeeins) do
table.insert(headerends,listeeins[eines]["Name"])
for qfsdf,zweihgfhgtes in pairs(listeeins[eines]["Schlagwörter"]) do
if (tabContains(schlagworte,zweihgfhgtes)==nil) then
displayedtext = displayedtext..'<span style="color:red;"><big><big><big> Falsches Schlagwort gefunden: "'..zweihgfhgtes..'"'..", unter: '''("..listeeins[eines]["Category"].." - "..listeeins[eines]["Subcategory"].." - "..listeeins[eines]["Name"]..")'''!Bitte Ändern!</big></big></big>"..'</span>\n\n----\n\n'
end
end
end
dupeeeetab = duptable(headerends)
for zup,dupeeee in pairs(dupeeeetab) do
if (dupeeee~=nil) then
displayedtext = displayedtext..'<span style="color:red;"><big><big><big>Duplikat gefunden: "'..listeeins[dupeeee[1]]["Name"]..'"'..", unter: '''("..listeeins[dupeeee[1]]["Category"]..' - '..listeeins[dupeeee[1]]["Subcategory"]..")''' und unter: '''("..listeeins[dupeeee[2]]["Category"]..' - '..listeeins[dupeeee[2]]["Subcategory"]..")''' !Bitte Ändern!</big></big></big>"..'</span>\n\n----\n\n'
end
end
return displayedtext
 
end
 
function p.testzwei ( frame )
 
return frame.args["test"]
end
 
function p.cur ( frame )
thingtext = frame.args[1]
thingtext = string.gsub(thingtext, "(\n+)", "''%1''")
return thingtext
end
 
function p.probe ( frame )
return "'''<span style='color:#31B404;'>"..string.gsub(frame.args[1], "(\n+)" , "</span>'''%1'''<span style='color:#31B404;'>").."</span>'''"
end
 
function p.taglist ( frame )
currenttagstate = frame.args[1]
currentcatstate = frame.args[2]
allsetcats = categorylist()
allsetags = schlagwortliste()
if (string.len(currenttagstate)~=tablelength(allsetags)) then
currenttagstate = zeros(tablelength(allsetags))
end
if (string.len(currentcatstate)~=doubletablelength(allsetcats)) then
currentcatstate = zeros(doubletablelength(allsetcats))
end
currentsite = "Tagtest"
sefinalendtext = '{|class="tagholder"\n|style="width:50%"|\n'
tagstatelength = string.len(currenttagstate)
catstatelength = string.len(currentcatstate)
countcat = 1
for curcatname,cursubcats in pairs(allsetcats) do
cursublength = tablelength(cursubcats)
catstdif = catstatelength-cursublength+1
sefinalendtext = sefinalendtext..'{|class="'..nummulttran(currentcatstate,catstdif,catstatelength)..'"\n|'..nummulttranlinkopen(currentcatstate,catstdif,catstatelength)..'[https://howtobeahero.de/index.php?title='..currentsite..'&tagstate='..currenttagstate..'&catstate='..multchangebinall(currentcatstate, catstdif, catstatelength).." "..curcatname..":]</span>\n"
nowcatstatelength = catstatelength-cursublength
while (catstatelength>nowcatstatelength) do
cursubcatname = allsetcats[curcatname][catstatelength-nowcatstatelength]
sefinalendtext = sefinalendtext..'{|class="'..numtrancat(currentcatstate,catstatelength)..'"\n|'..numtranlinkopen(currentcatstate,catstatelength)..'[https://howtobeahero.de/index.php?title='..currentsite..'&tagstate='..currenttagstate..'&catstate='..changebin(currentcatstate,catstatelength).." "..cursubcatname.."]</span>\n|}\n"--..numtranlinkopen(
catstatelength = catstatelength-1
end
sefinalendtext = sefinalendtext.."\n|}\n"
if (countcat%2==0) then
sefinalendtext = sefinalendtext.."\n"
end
countcat=countcat+1
end
sefinalendtext = sefinalendtext..'|style="width:40%"|\n'
    while (tagstatelength>0) do
        sefinalendtext=sefinalendtext..'{|class="'..numtran(currenttagstate,tagstatelength)..'"\n|'..numtranlinkopen(currenttagstate,tagstatelength)..'[https://howtobeahero.de/index.php?title='..currentsite..'&tagstate='..changebin(currenttagstate,tagstatelength)..'&catstate='..currentcatstate.." "..allsetags[tagstatelength]..' •]</span>\n|}\n'
tagstatelength = tagstatelength-1
end
    sefinalendtext=sefinalendtext..'|style="width:10%"|\n'
 
 
 
 
sefinalendtext=sefinalendtext..'|}'
return sefinalendtext.."\n\n"
end
 
return p

Version vom 7. Juni 2020, 23:29 Uhr

/* Das folgende CSS wird für alle Benutzeroberflächen geladen. */

/* +++++ 0. Generelle Wikiformatierung +++++ */
.image, a#top{
    background:none !important;
    padding-right: 0px !important;
    text-decoration: none;
}
.image:hover, a#top:hover{
    background:none !important;
}
.mw-body a:not([rel="nofollow"]), .mw-body .external{
    background-position: center right;
    background-repeat: no-repeat;
    background-image: url(/skins/Vector/images/external-link-ltr-icon.png?325de);
    padding-right: 13px;
    text-decoration: underline;
}
.mw-body a:not([rel="nofollow"]):hover, .mw-body .external:hover{
    background-color: #bdbdbd;
}
.mw-body h1{
    font-size: 2.7em !important;
    font-family: "tahoma" !important;
}
.mw-body :not(.toctitle)> h2{
    font-size: 2.3em !important;
    font-weight: bold;
    font-family: "tahoma" !important;
}

.mw-body h3{
    font-size: 1.9em !important;
    border-bottom: 1px solid #a2a9b1;
    font-family: "tahoma" !important;
    font-weight: normal !important;
}

.mw-body h4{
    font-size: 1.6em !important;
    font-family: "tahoma";
}

.mw-body h5{
    font-size: 1.3em !important;
    font-family: "tahoma";
}

/* +++++ 1. HAUPTSEITE +++++ */
.mw-wiki-logo {
        background-size: 100%;
}

.heroimage img, .heroimage {
	max-width: 100%;
	max-height: 100%;
	width: 100%;
	height: 100%;
	border: 0 !important;
	margin: auto;
	margin-top: 2px;
}

.sub {
	padding: 10px 0px 15px;
}

div#hauptseite h2 {
	font-family: inherit;
	font-size: 1.5em;
	font-weight: bold;
	line-height: 1.5;
	margin: 0;
	padding: .1em 0;
}
div#hauptseite h3 {
	font-family: inherit;
	font-size: 1em;
	font-weight: bold;
	line-height: 1.5;
	margin: 0;
	padding: .1em 0;
}
#hauptseite .inhalt {
	border-top: 0;
	min-height: 0; /* IE 7 */
	padding: .3em .8em .4em;
}
#hauptseite .inhalt hr {
	height: 1px;
	margin: .5em 0;
}
#hauptseite .inhalt .mehr {
	clear: both;
	font-size: 95%;
	margin-top: .8em;
	text-align: right;
}
.hauptseite-oben,
.hauptseite-obenlinks,
.hauptseite-obenrechts,
.hauptseite-links,
.hauptseite-rechts,
.hauptseite-hinweise,
.hauptseite-mitte{
	margin-bottom: 1em;
}
.hauptseite-obenlinks,
.hauptseite-links {
	margin-right: .5em;
}
.hauptseite-obenrechts,
.hauptseite-hinweise,
.hauptseite-rechts {
	margin-left: .5em;
}
.hauptseite-oben h2,
.hauptseite-obenlinks h2,
.hauptseite-obenrechts h2,
.hauptseite-hinweise h2,
.hauptseite-mitte h2,
.hauptseite-unten h2 {
	text-align: center;
}
.hauptseite-oben .inhalt .portale {
	font-weight: bold;
	margin: .2em 0;
}
.hauptseite-oben .inhalt .intern {
	font-size: 90%;
	text-align: center;
}
.hauptseite-links h2,
.hauptseite-hinweise h2,
.hauptseite-rechts h2, 
.hauptseite-unten h2 {
	text-indent: .8em;
}
.hauptseite-links h3,
.hauptseite-hinweise h3,
.hauptseite-rechts h3, 
.hauptseite-unten h3 {
	text-indent: .8em;
}

.hauptseite-unten h3 {
	font-size: 1.15em;
}
 
#hauptseite .mw-headline-anchor {
	display: none;
}

/* +++++ 2. KATEGORIE-KLAPPBOXEN +++++ */
.categoryListTitle {
    font-family: inherit;
    font-size: 1em;
    font-weight: bold;
    color: #ffffff;
    line-height: 1.5;
    margin: 0;
    padding: .1em 10px;
    text-decoration: underline;
    border: 2px solid #A3ACBE;
}

.categoryListColumn:hover .categoryListTitle {
    border: 2px solid #838FA7;
    text-decoration: none;
}

.categoryList.hidden {
    display: none;
}

.categoryList.shown {
    display: block;
}

.categoryList-item {
    font-size: 1em;
}

.categoryList {
    padding: 5px 10px;
    background: white;
}

.categoryListRow {
    display: flex;
    flex-wrap: wrap;
}

.categoryListColumn {
    flex-grow: 1;
    flex-basis: 10%;

    background: #A3ACBE;
}

.categoryListColumn:hover {
    flex-grow: 1;
    flex-basis: 10%;

    background: #838FA7;
}

.break-1 .categoryListColumn {
    min-width: 100%;
}

.break-2 .categoryListColumn {
    min-width: 50%;
}

.break-3 .categoryListColumn {
    min-width: 33.333%;
}

.break-4 .categoryListColumn {
    min-width: 25%;
}

.break-5 .categoryListColumn {
    min-width: 20%;
}

.break-6 .categoryListColumn {
    min-width: 16.66666%;
}

.break-7 .categoryListColumn {
    min-width: 14.285%;
}

.break-8 .categoryListColumn {
    min-width: 12.5%;
}

.break-9 .categoryListColumn {
    min-width: 11.1111%;
}

.break-10 .categoryListColumn {
    min-width: 10%;
}

/* +++++ 3. BOX-HALTENDE HOWKYS +++++ */
.howky
{
    position: relative;
}

.howky:after, .howky.tragendBeidseitig:before {
    position: absolute;
    display: block;
    content: '';
    background-size: cover;
    background-position: 0 0;
    background-repeat: no-repeat no-repeat;
}

.howky.knieendUntenLinks:after {
    background-image: url(https://howtobeahero.de/images/c/c5/Howky_Kniened_Unten.png);
    height: 76px;
    width: 63px;
    bottom: -76px;
    left: 0;
}

.howky.knieendUntenRechts:after {
    background-image: url(https://howtobeahero.de/images/c/c5/Howky_Kniened_Unten.png);
    height: 76px;
    width: 63px;
    bottom: -76px;
    right: 0;
}

.howky.stehendUntenLinks:after {
    background-image: url(https://howtobeahero.de/images/6/6b/Howky_Stehend_Unten.png);
    height: 76px;
    width: 44px;
    bottom: -76px;
    left: 0;
}

.howky.stehendUntenRechts:after {
    background-image: url(https://howtobeahero.de/images/6/6b/Howky_Stehend_Unten.png);
    height: 76px;
    width: 44px;
    bottom: -76px;
    right: 0;
}

.howky.tragendBeidseitig:after {
    background-image: url(https://howtobeahero.de/images/1/19/Howky_Stehend_Rechts.png);
    height: 76px;
    width: 41px;
    bottom: 0;
    right: -41px;
}

.howky.tragendBeidseitig:before {
    background-image: url(https://howtobeahero.de/images/5/51/Howky_Stehend_Links.png);
    height: 76px;
    width: 41px;
    bottom: 0;
    left: -41px;
}

/* +++++ 4. BOX-HALTENDE HOWKYS +++++ */
.howkyContainer
{
    position: relative;
}

.howky:after, .howky.tragendBeidseitig:before {
    position: absolute;
    display: block;
    content: '';
    background-size: cover;
    background-position: 0 0;
    background-repeat: no-repeat no-repeat;
}

.howky.knieendUntenLinks:after {
    background-image: url(https://howtobeahero.de/images/c/c5/Howky_Kniened_Unten.png);
    height: 76px;
    width: 63px;
    bottom: -76px;
    left: 0;
}

.howky.knieendUntenRechts:after {
    background-image: url(https://howtobeahero.de/images/c/c5/Howky_Kniened_Unten.png);
    height: 76px;
    width: 63px;
    bottom: -76px;
    right: 0;
}

.howky.stehendUntenLinks:after {
    background-image: url(https://howtobeahero.de/images/6/6b/Howky_Stehend_Unten.png);
    height: 76px;
    width: 44px;
    bottom: -76px;
    left: 0;
}

.howky.stehendUntenRechts:after {
    background-image: url(https://howtobeahero.de/images/6/6b/Howky_Stehend_Unten.png);
    height: 76px;
    width: 44px;
    bottom: -76px;
    right: 0;
}

.howky.tragendBeidseitig:after {
    background-image: url(https://howtobeahero.de/images/1/19/Howky_Stehend_Rechts.png);
    height: 76px;
    width: 41px;
    bottom: 0;
    right: -41px;
}

.howky.tragendBeidseitig:before {
    background-image: url(https://howtobeahero.de/images/5/51/Howky_Stehend_Links.png);
    height: 76px;
    width: 41px;
    bottom: 0;
    left: -41px;
}

/* +++++ 5. AUFTEILENDE BOXEN +++++ */
.flexbox
{
    display: flex;
    flex-wrap: wrap;
}

.flexbox > *
{
    flex: 1 100%;
}

.flexbox > .double
{
    flex: 1 49%;
}

.flexbox > .triple
{
    flex: 1 32%;
}

/* Allow limiting of which header levels are shown in a TOC;
   <div class="toclimit-3">, for instance, will limit to
   showing ==headings== and ===headings=== but no further
   (as long as there are no =headings= on the page, which
   there shouldn't be according to the MoS).
 */
.toclimit-2 .toclevel-2,
.toclimit-3 .toclevel-3,
.toclimit-4 .toclevel-4,
.toclimit-5 .toclevel-5,
.toclimit-6 .toclevel-6,
.toclimit-7 .toclevel-7 { display: none; }

/* +++++ 6. FIXIERTE INFINITYBARS +++++ */
 .sticky {
    position: fixed;
    z-index: 99999999;
}

/* +++++ 7. YGGDRASIL+++++ */

.ns-104 .mw-body h2 {
        font-size: 3em;
        font-family: serif;
        color: #000eb9;
        text-transform: capitalize;
}
.ns-104 .mw-body h3 {
        font-size: 2.2em;
        font-family: serif;
        color: #006708;
        text-transform: capitalize;
        font-weight: normal;
        border-bottom: 1px solid #868686;
        padding-top: 0em;
}
.ns-104 .mw-body h4 {
        font-size: 1.6em;
        font-weight: bold;
        font-family: sans-serif;
        padding-top: 0.2em;
}
.ns-104 .mw-body h5 {
        font-size: 1.2em;
        font-weight: bold;
        font-family: sans-serif;
}
.ns-104 .mw-body h6 {
        font-size: 1em;
        font-weight: bold;
        font-family: sans-serif;
}
/*
.ns-104 .mw-body a {
        font-weight: bold;
        
}
.ns-104 .mw-editsection a,.ns-104 .wikiEditor-ui-tabs div a{
        font-weight: normal !important;
}
*/
.ns-104 .wikiEditor-ui-controls{
    background: url(https://howtobeahero.de/images/thumb/5/55/Dankepf%C3%B6n.png/800px-Dankepf%C3%B6n.png);
    background-repeat: no-repeat;
    background-size: 16%;
    background-position-x: +99%;
    background-color: white;
}

div#yggimg img {
    margin-top: 0.3em;
    max-width: 100%;
    max-height: 100%;
    height: auto;
    border: 0 !important;
    margin: auto;
    right: 0;

}

.ns-104 .mw-body .toc h2{
    font-weight: normal !important;
    
}

.ns-104 .mw-body .toc a{
    font-weight: normal !important;
    
}

.yggclass #categoryListTitle {
    font-family: inherit;
    font-size: 1em;
    font-weight: bold;
    color: #ffffff;
    line-height: 1.5;
    margin: 0;
    padding: .1em 10px;
    text-decoration: underline;
    border: 2px solid #A3ACBE;
}

.yggclass categoryListTitle {
    border: 5px solid #838FA7;
    text-decoration: none;
}

/* +++++ 8. REGISTER+++++ */
.registerselected {
    white-space: nowrap;
    border: solid;
    border-color: blueviolet;
    border-bottom-color: white; 
    border-width: 2px;
    padding: 0px;
    text-align: center;
}

.registerunselected {
    white-space: nowrap;  
    border: solid; 
    border-color: blueviolet; 
    border-width: 2px;
    padding: 0px;
    text-align: center;
}

.registerunselected a{
    display:block;
    padding: 15px;
    padding-right: 40px;
    padding-left: 40px;
    background-color: tan;
    background-image: none;
}

.registerselected a{
    display:block;
    padding: 15px;
    padding-right: 40px;
    padding-left: 40px;
    background-color: bisque;
    background-image: none;
}
.registerunselected a:hover{
    background-color: rosybrown;
    text-decoration: none;
}
.registerbetween {
    padding: 0; 
    width: 0.2%;
    border-bottom: solid;
    border-bottom-color: blueviolet;
    border-width: 2px;
    text-align: center;

}
.registerrest {
    border-bottom: solid;
    width:100%;
    border-bottom-color: blueviolet;
    border-width: 2px;
    text-align: center;
}

/* +++++ 9. HEADERTEST+++++ */

body.page-Yggdrasil_Test1Ohnetitel h1, body.page-Yggdrasil_Test2Ohnetitel h1, body.page-Yggdrasil_Test3Ohnetitel h1 { 
    border: none;
    display: none;
}

body.page-Yggdrasil_Test1Ohnetitel .mw-body, body.page-Yggdrasil_Test2Ohnetitel .mw-body, body.page-Yggdrasil_Test3Ohnetitel .mw-body { 
    padding-top: 0px;
}


body.page-Benutzerin_Murmelgrumpf h1{
    background-image: url( https://howtobeahero.de/images/thumb/4/40/Vinetest3.PNG/800px-Vinetest3.PNG );
    background-position-y: -10px;
    font-style: italic;
    font-weight: bold;
    color: antiquewhite;
}

body.page-Benutzerin_Murmelgrumpf .mw-wiki-logo:hover{
    background-image: url(https://howtobeahero.de/images/thumb/4/4e/Wikioc.png/800px-Wikioc.png)
}

.ns-104 .mw-collapsed {
    display: none !important;
}

body.page-Headertest h1{
    background-image: url( https://howtobeahero.de/images/thumb/7/70/Headertest2.png/800px-Headertest2.png );
    color: transparent;
    border: none;
    background-repeat: no-repeat;
    background-size: 600px;
}

body.page-Yggdrasil_Religion h1, body.page-Yggdrasil_Religion2 h1, body.page-Yggdrasil_Religion3 h1, body.page-Yggdrasil_Religion4 h1, body.page-Yggdrasil_Religion5 h1, body.page-Yggdrasil_Religion6 h1{  
    font-size:28.8px;
    margin-top: 0px;
}

body.page-Yggdrasil_Religion .firstHeading, body.page-Yggdrasil_Religion2 .firstHeading, body.page-Yggdrasil_Religion3 .firstHeading, body.page-Yggdrasil_Religion4 .firstHeading, body.page-Yggdrasil_Religion5 .firstHeading, body.page-Yggdrasil_Religion6 .firstHeading{ 
    border: none;
    display: none;
}

body.page-Yggdrasil_Religion #contentSub, body.page-Yggdrasil_Religion2 #contentSub, body.page-Yggdrasil_Religion3 #contentSub, body.page-Yggdrasil_Religion4 #contentSub, body.page-Yggdrasil_Religion5 #contentSub, body.page-Yggdrasil_Religion6 #contentSub{
    display: none;
}

body.page-Yggdrasil_Religion h1 .mw-editsection, body.page-Yggdrasil_Religion2 h1 .mw-editsection, body.page-Yggdrasil_Religion3 h1 .mw-editsection, body.page-Yggdrasil_Religion4 h1 .mw-editsection, body.page-Yggdrasil_Religion5 h1 .mw-editsection, body.page-Yggdrasil_Religion6 h1 .mw-editsection{  
    display: none;
}
/* +++++ 10. REDAKTIONSMEETINGSHOWOFF+++++ */

.box {
    color: #000;
    background-color: #f8f9fa;
    border: 1px solid #eaecf0;
    padding: 1em;
    font-family: monospace,'Courier';
    display: block;
	margin-top: 1em;
    margin-bottom: 1em;
}

.box p{
    margin:0;
}

/* +++++ 11. NAVFRAME+++++ */
div.NavFrame + div.NavFrame {
	border-top-style: none;
	border-top-style: hidden;
}
div.NavPic {
	background-color: #fff;
	margin: 0;
	padding: 2px;
	/* @noflip */
	float: left;
}
div.NavFrame div.NavHead {
	position: relative;
}
div.NavFrame p,
div.NavFrame div.NavContent,
div.NavFrame div.NavContent p {
    font-size: 100%;
    
}
div.NavEnd {
    margin: 0;
    padding: 0;
    line-height: 1px;
    clear: both;
}
a.NavToggle {
    position: absolute;
    top: 0;
    right: 1.8em;
    font-weight: normal;
    font-size: 120%;
}

.client-js .NavFrame.collapsed > .NavContent {
	display: none;
}

/* +++++ 12. TagSystem+++++ */
.tagholder {
	margin-left: auto;
	margin-right: auto;
	align-self: center;
	width:100%;
	text-align: center;
}
.tagselected {
	background-color: #ff3939;
	display: inline-block;
	border: 1px solid #ff3939;
	margin-right: 1em;
	margin-left: 1em;
	border-radius: 0.9em;
}

.tagunselected {
	background-color: #ffffff;
	display: inline-block;
	border: 1px solid #ff3939;
	margin-right: 1em;
	margin-left: 1em;
	border-radius: 0.9em;
}
.tagunselected:hover {
    background-color: #ff8e8e;
    background-image: none;
    text-decoration: none;
}
.tagselected:hover {
    background-color: #ff8e8e;
    background-image: none;
    text-decoration: none;
}

.catselected {
	background-color: #ff3939;
	display: table;
	border: 1px solid #ff3939;
	border-radius: 0.9em;
}
.tagselected .catselected{
	border: 1px solid #ffffff;
}
.catunselected {
	background-color: #ffffff;
	display: table;
	border: 1px solid #ff3939;
	border-radius: 0.9em;
}
.catunselected:hover {
    background-color: #ff8e8e;
    background-image: none;
    text-decoration: none;
}
.catselected:hover {
    background-color: #ff8e8e;
    background-image: none;
    text-decoration: none;
}

.linkred a{
    display: block;
    background-image: none !important;
    padding-right: 0px !important;
    text-decoration: none !important;
    background: transparent !important;
    color: #ff3939 !important;
}

.linkwhite a{
    display: block;
    background-image: none !important;
    padding-right: 0px !important;
    text-decoration: none !important;
    background: transparent !important;
    color: #ffffff !important;
}