Modul:Wikitable

Fra Wikipedia, den frie encyklopedi
Moduldokumentasjon

Bruk[rediger kilde]

Denne modulen er designet for å gjøre det enklere å bruke tabeller inni maler.

Hvis man prøver å bruke en tabell inni en mal gir det som regel et meningsløst resultat, fordi malen tror at vertikalstrekene (|) i tabellkoden er skilletegn for nye parametere i malen. En måte å løse det på er å erstatte alle vertikalstrekene med {{!}}, men det er tidkrevende og gjør resultatet i kildemodus mindre lesevennlig.

Med denne modulen kan wikitabeller brukes i maler uten å måtte endra noen vertikalstreker. Man trenger heller ikke å endre erliktegn dersom disse brukes i tabellen.

Originalversjon (fra en:2016 Summer Olympics)
Resultater fra budrunden til OL i 2016
By OL-komité 1. runde 2. runde 3. runde
Rio de Janeiro Brasils flagg 26 46 66
Madrid Spanias flagg 28 29 32
Tokyo Japans flagg 22 20
Chicago USAs flagg 18

kode:

{| class="wikitable" width="auto" style="text-align: center"
|-
! colspan="6" |Resultater fra budrunden til OL i 2016
[[File:Bids for the 2016 Summer Olympics.svg|center|500px]]
|- style="background:#efefef;"
! By
! OL-komité
| style="background: silver" |'''1. runde'''
| style="background: silver" |'''2. runde'''
| style="background: silver" |'''3. runde'''
|-
| style="text-align:left;" |'''[[Rio de Janeiro]]'''
| style="text-align:left;" |'''{{flagg|Brasil}}'''
| style="text-align:center;" |26
| style="text-align:center;" |'''46'''
| style="text-align:center;" |'''66'''
|-
| style="text-align:left;" |[[Madrid]]
| style="text-align:left;" |{{flagg|Spania}}
| style="text-align:center;" |'''28'''
| style="text-align:center;" |29
| style="text-align:center;" |32
|-
| style="text-align:left;" |[[Tokyo]]
| style="text-align:left;" |{{flagg|Japan}}
| style="text-align:center;" |22
| style="text-align:center;" |20
| style="text-align:center;" ||-
| style="text-align:left;" |[[Chicago]]
| style="text-align:left;" |{{flagg|USA}}
| style="text-align:center;" |18
| style="text-align:center;" || style="text-align:center;" ||}
modulen:
Resultater fra budrunden til OL i 2016
By OL-komité 1. runde 2. runde 3. runde
Rio de Janeiro Brasils flagg 26 46 66
Madrid Spanias flagg 28 29 32
Tokyo Japans flagg 22 20
Chicago USAs flagg 18

Kode:

{{wikitable| class="wikitable" width{{=}}"auto" style{{=}}"text-align: center"
|-
! colspan{{=}}"6" |Resultater fra budrunden til OL i 2016
[[File:Bids for the 2016 Summer Olympics.svg|center|500px]]
|- style{{=}}"background:#efefef;"
! By
! OL-komité
| style{{=}}"background: silver" |'''1. runde'''
| style{{=}}"background: silver" |'''2. runde'''
| style{{=}}"background: silver" |'''3. runde'''
|-
| style{{=}}"text-align:left;" |'''[[Rio de Janeiro]]'''
| style{{=}}"text-align:left;" |'''{{flagg|Brasil}}'''
| style{{=}}"text-align:center;" |26
| style{{=}}"text-align:center;" |'''46'''
| style{{=}}"text-align:center;" |'''66'''
|-
| style{{=}}"text-align:left;" |[[Madrid]]
| style{{=}}"text-align:left;" |{{flagg|Spania}}
| style{{=}}"text-align:center;" |'''28'''
| style{{=}}"text-align:center;" |29
| style{{=}}"text-align:center;" |32
|-
| style{{=}}"text-align:left;" |[[Tokyo]]
| style{{=}}"text-align:left;" |{{flagg|Japan}}
| style{{=}}"text-align:center;" |22
| style{{=}}"text-align:center;" |20
| style{{=}}"text-align:center;" |—
|-
| style{{=}}"text-align:left;" |[[Chicago]]
| style{{=}}"text-align:left;" |{{flagg|USA}}
| style{{=}}"text-align:center;" |18
| style{{=}}"text-align:center;" |—
| style{{=}}"text-align:center;" |—
}}

local p = {};
local getArgs = require('Module:Arguments').getArgs
local buffer = require("Module:Buffer")('{|')
function p.main(frame)
	local args =  getArgs(frame, {removeBlanks=false, trim=false} )
	for k, v in pairs(args) do
		if type(k) ~= 'number' then buffer:_(string.format(string.match(v, '^["\']') and ' %s=%s' or ' %s="%s"', k, v)) end
	end
	buffer:_'\n'
	for _, v in ipairs(args) do
		if not string.match(v, '^!') then buffer:_'|' end
		buffer:_(v)
	end
	return table.concat(buffer:_'\n|}')
end
return p;