Minggu, 27 September 2026
00:34 WIB
TERKINI
Bandar Lampung Semangat Anak Sawah: Harumkan Nama Lampung di Kancah Nasional Tanpa Dukungan Pemda Lampung Selatan Gunung Anak Krakatau Kembali Erupsi, Status Siaga Tetap Dipertahankan Bandar Lampung BPS Lampung Tuntaskan Sensus Ekonomi 2026, Hasilnya Siap Rilis Awal 2027 Bandar Lampung Inovasi Double Teaching: Guru Ahli Berbagi Ilmu Lintas Sekolah di Lampung Bandar Lampung Coki, Buaya Peliharaan Warga Panjang yang Bikin Haru Jelang Evakuasi KKP Lampung Tekuni Hobi Sejak Kuliah, Dani Tetap Bertahan Jual Ikan Hias di Tengah Tantangan Cuaca Prakiraan Cuaca Lampung 26 September 2026: Cerah Berawan dan Potensi Hujan Humaniora Perlindungan Anak Digital: MPR Desak Komitmen Global Terwujud Nyata di Tanah Air Regional Bupati Gowa Sitti Husniah Talenrang Tersangka Pemerasan Perizinan Bangunan dan TPPU Bandar Lampung Puluhan Siswa di Lampung Tengah Diduga Keracunan Makanan Program MBG Bandar Lampung Semangat Anak Sawah: Harumkan Nama Lampung di Kancah Nasional Tanpa Dukungan Pemda Lampung Selatan Gunung Anak Krakatau Kembali Erupsi, Status Siaga Tetap Dipertahankan Bandar Lampung BPS Lampung Tuntaskan Sensus Ekonomi 2026, Hasilnya Siap Rilis Awal 2027 Bandar Lampung Inovasi Double Teaching: Guru Ahli Berbagi Ilmu Lintas Sekolah di Lampung Bandar Lampung Coki, Buaya Peliharaan Warga Panjang yang Bikin Haru Jelang Evakuasi KKP Lampung Tekuni Hobi Sejak Kuliah, Dani Tetap Bertahan Jual Ikan Hias di Tengah Tantangan Cuaca Prakiraan Cuaca Lampung 26 September 2026: Cerah Berawan dan Potensi Hujan Humaniora Perlindungan Anak Digital: MPR Desak Komitmen Global Terwujud Nyata di Tanah Air Regional Bupati Gowa Sitti Husniah Talenrang Tersangka Pemerasan Perizinan Bangunan dan TPPU Bandar Lampung Puluhan Siswa di Lampung Tengah Diduga Keracunan Makanan Program MBG

Modul:Class

Wikimedia module

Dokumentasi modulbuatsegarkan
Anda dapat membuat halaman dokumentasi untuk buat pada modul Scribunto ini.
Penyunting dapat melakukan uji coba pada halaman bak pasir (buat | cermin) dan kasus uji (buat) modul ini.
Subhalaman modul ini.
-- This module implements [[Template:Class]], [[Template:Class/icon]] and
-- [[Template:Class/colour]].
localmArguments-- lazily loaded
localdefinitions=mw.loadJsonData('Module:Class/definition.json')
localp={}
--------------------------------------------------------------------------------
-- Local configuration and messages
--------------------------------------------------------------------------------
localcfg={
defaultCode='DEFAULT',
classPrefix='assess-',
globalClass='assess',
defaultClassSuffix='default',
unboldClassSuffix='unbold',
catRootFormat='%s %s',
catTopicFormat='%s %s articles',
catBasicFormat='%s articles',
categoryFormat='[[:Category:%s|%s]]',
templateLocation='Templat:Class',
iconTemplateLocation='Template:Class/icon',
colourTemplateLocation='Templat:Class/colour',
stylesLocation='Modul:Class/styles.css',
baseColourPath={'colour','base'},
iconPath={"icon","file"},
iconDefaultPath={"icon","default"},
iconAttribPath={"icon","requiresAttribution"},
fullLabelPath={"labels","full"},
shortLabelPath={"labels","short"},
categoryRootPath={"categoryRoot"},
tooltipPath={"labels","tooltip"},
yes="yes",
no="no",
argumentNames={
class="kelas",
style="style"
},
getOptions={
--First item is localized argument name, second is case-sensitivity
bold={"bold",false},
header={"header",false},
image={"image",false},
rowspan={"rowspan",false},
fullcategory={"fullcategory",true},
category={"category",true},
topic={"topic",true}
}
}
--------------------------------------------------------------------------------
-- Argument helper functions
--------------------------------------------------------------------------------
localfunctiongetRawArgs(frame,wrapper)
--Retrieves the arguments from the frame
mArguments=mArgumentsorrequire('Modul:Arguments')
returnmArguments.getArgs(frame,{
wrappers=wrapper,
trim=false,
removeBlanks=false
})
end
localfunctionmakeInvokeFunction(func,wrapper)
--Wraps a general function into an invokable version
returnfunction(frame)
localargs=getRawArgs(frame,wrapper)
returnfunc(args)
end
end
--------------------------------------------------------------------------------
-- String helper functions
--------------------------------------------------------------------------------
localfunctiontrim(str)
--Trims strings, passes through non-strings without modification
return(type(str)=='string')andmw.text.trim(str)orstr
end
localfunctionnormalizeValue(val)
--Normalizes strings, particularly class codes
iftype(val)=='string'thenval=trim(val):lower()end
ifval==''thenval=nilend
returnval
end
localfunctionucfirst(str)
--Capitalizes the first character of a string
returnmw.ustring.upper(mw.ustring.sub(str,1,1))..mw.ustring.sub(str,2)
end
--------------------------------------------------------------------------------
-- Definition helper functions
--------------------------------------------------------------------------------
localfunctiongetDefinition(code)
--Retrieves the definition and canonical class code for a given code.
--Returns two values: the definition object and the canonical class code
--string.
localcanonicalCode=normalizeValue(code)
ifcode==cfg.defaultCodethencanonicalCode=codeend
localclass=definitions[canonicalCode]
whileclassandclass.aliasdo
canonicalCode=class.alias
class=definitions[class.alias]
end
ifnotclassthen
returnnil,nil
end
returnclass,canonicalCode
end
localfunctiongetDefault()
--Shortcut function for retrieving the default definition
returngetDefinition(cfg.defaultCode)end
localfunctiongetProperty(class,default,map)
--Retrieves a given property from a string given a class definition, a
--default class definition, and a map for the path to traverse through the
--class object. The map should be a sequential table of string property
--names, e.g. {"colour", "base"} would retrieve someClass.colour.base
localprop,dProp=class,default
fork,vinipairs(map)do
prop=((type(prop)=='table')ornil)andprop[v]
dProp=((type(dProp)=='table')ornil)anddProp[v]
end
ifprop==nilthenprop=dPropend
returnprop
end
--------------------------------------------------------------------------------
-- Color functions
--------------------------------------------------------------------------------
functionp._colour(code)
--Retrieves the base colour for a given code
returngetProperty(getDefinition(code),getDefault(),cfg.baseColourPath)
end
functionp.colour(frame)
--Retrieves the base colour for a given code; is invokable
localargs=getRawArgs(frame,cfg.colourTemplateLocation)
-- Nowiki tags prevent output beginning with "#" from triggering bug 14974.
returnframe:extensionTag('nowiki',p._colour(args[1]))
end
--------------------------------------------------------------------------------
-- Icon functions
--------------------------------------------------------------------------------
functionp._icon(args)
--Retrieves an icon image and formats it as wikitext
localclass=getDefinition(args[cfg.argumentNames.class]orargs[1])
localdefault=getDefault()
localfile=getProperty(class,default,cfg.iconPath)
locallabel=
getProperty(class,default,cfg.tooltipPath)or
ucfirst(getProperty(class,default,cfg.fullLabelPath))
localattrib=getProperty(class,default,cfg.iconAttribPath)
localsize=args.sizeor'16px'
localspan=mw.html.create('span')
span
:cssText(args[cfg.argumentNames.style])
:attr('title',label)
:wikitext(
string.format(
'[[File:%s|%s|'..size..'%s|class=noviewer|alt=]]',
file,
label,
attriband''or'|link='
)
)
returntostring(span)
end
p.icon=makeInvokeFunction(p._icon,cfg.iconTemplateLocation)
--Invokable version of p._icon
--------------------------------------------------------------------------------
-- Class functions
--------------------------------------------------------------------------------
functionp._class(args)
--Parses its arguments into a table cell with an optional icon, a name
--linked to an appropriate category, and appropriate colour styling
localclassDef,classCode=
getDefinition(args[cfg.argumentNames.class]orargs[1])
localdefault=getDefault()
localiconDefault=getProperty(classDef,default,cfg.iconDefaultPath)
localshortLabel=getProperty(classDef,default,cfg.shortLabelPath)
localcategoryRoot=getProperty(classDef,default,cfg.categoryRootPath)
--o is short for "options", go for "get options". Bool true → case-sensitive
localo,go={},cfg.getOptions
fork,vinpairs(go)do
o[k]=v[2]andtrim(args[v[1]])ornormalizeValue(args[v[1]])
end
localcell=mw.html.create(o.headerand'th'or'td')
--image=yes forces icon, image=no disables it, otherwise checks default
localicon=iconDefaultand(o.image~=cfg.no)or(o.image==cfg.yes)
icon=iconandp.icon(args)..' 'or''
localcategory
ifo.fullcategorythen
category=o.fullcategory
elseifo.categorythen
category=string.format(cfg.catRootFormat,categoryRoot,o.category)
elseifo.topicthen
category=string.format(cfg.catTopicFormat,categoryRoot,o.topic)
else
category=string.format(cfg.catBasicFormat,categoryRoot)
end
localtext=string.format(cfg.categoryFormat,category,shortLabel)
cell
:addClass(cfg.globalClass)
:addClass(
o.bold==cfg.noandcfg.classPrefix..cfg.unboldClassSuffixornil
)
:addClass(cfg.classPrefix..(classCodeorcfg.defaultClassSuffix))
:attr('rowspan',tonumber(o.rowspan))
:wikitext(mw.getCurrentFrame():extensionTag{name='templatestyles',args={src=cfg.stylesLocation}},icon,text)
returntostring(cell)
end
p.class=makeInvokeFunction(p._class,cfg.templateLocation)
--Invokable version of p._class
returnp
Konten disalin dari Wikipedia Bahasa Indonesia (lisensi CC BY-SA) Lihat versi asli di Wikipedia

Rekomendasi Pilihan