Modul:Parts
Hopp til navigering
Hopp til søk
Parts er et bibliotek for å formatere en liste av signaturer for refererte elementer. Oppførselen som konstrueres består av etiketten og beskrivelsen, med en eventuell nettstedlenke som går til aktuell artikkel. En tilsvarende modul på nnwiki konstruerer i tillegg en lenke til spesialsiden «AboutTopic» for elementet.
Modulen er antatt å være spesifikk for de enkelte elementene som brukes, og vil derfor ikke ta ekstra parametre.
Bruk[rediger kilde]
Kallet er uten ekstra parametre
{{#invoke:Parts|list}}
Dette er eneste form som så langt gir mening.
Du kan eksperimentere med denne modulens sandkasse (opprett | speil) og testtilfeller (opprett). Vennligst legg kategorier på undersiden /dok. Vis undersider av denne modulen. |
local parts = {}
local data,_ = require 'Module:SignatureList'('P527')
function parts.list( frame )
local html = mw.html.create( 'div' ) -- this is the outer containing node
local ul = true
local last = ''
for i,item in ipairs( data ) do
local id = item[1]
local label = item[2] or item[4] or item[1] or "?" -- should never reach "?"
local description = item[3]
local sitelink = item[4]
local codePoint = mw.ustring.upper( mw.ustring.sub( label, 1, 1 ) )
if last ~= codePoint then -- the char is different from the last one
-- create a dd-element and use the code point as header
local dd = mw.html.create( 'dd' )
html:node ( mw.html.create( 'dl' )
:node( mw.html.create( 'dt' ):node( mw.html.create( 'span' ):attr( 'id', codePoint ) ):wikitext( codePoint ) )
:node( dd ) )
-- create a new ul-element as container for new signatures
ul = mw.html.create( 'ul' ) -- this is the list node that has to be recreated for each char in the alphabet
dd:node( ul )
last = codePoint
end
-- add the signature to the containing ul-element
ul:node( mw.html.create( 'li' )
:node( mw.html.create( 'span' ):attr( 'id', label ) )
:wikitext( sitelink
-- use the sitelink
and ( string.format( "''[[%s|%s]]''[[File:Blue pencil.svg|11px|link=d:%s]]", sitelink, label, id ) .. ( description and string.format( ' – %s', description ) or '' ) )
-- do not use the sitelink
or ( string.format( "''%s''[[File:Blue pencil.svg|11px|link=d:%s]]", label, id ) .. ( description and string.format( ' – %s', description ) or '' ) )))
end
return html
end
return parts