| Modul ini dilindungi. Modul ini sangat mencolok yang digunakan oleh banyak halaman, atau sangat sering disubstitusikan. Karena vandalisme atau kesalahan akan mempengaruhi banyak halaman, dan suntingan kecil dapat memberi beban besar pada server, modul ini dilindungi dari penyuntingan. |
| Modul Lua ini digunakan pada sekitar 145.000 halaman. Untuk mencegah suntingan mengganggu skala besar dan beban peladen, setiap perubahan harus diuji di subhalaman /bak pasir atau /kasus uji Modul:Side box, atau bak pasir modul Anda. Perubahan yang telah diuji kemudian dapat ditambahkan ke halaman ini dalam satu suntingan. Pertimbangkan untuk mendiskusikan perubahan di halaman pembicaraan sebelum mengimplementasikannya. |
| Modul ini menggunakan Lua: |
| Modul ini menggunakan TemplateStyles: |
Modul ini mengimplementasikan templat {{side box}}.
Penggunaan dari teks wikiPenggunaan dari teks wiki
Modul ini tidak dapat digunakan secara langsung dari teks wiki. Modul ini hanya bisa di digunakan dari templat {{side box}}. Silakan lihat halaman templat untuk dokumentasi.
Penggunaan dari modul LuaPenggunaan dari modul Lua
Untuk menggunakan modul ini dari modul Lua lain, pertama-tama muatlah modul.
<source lang="l local mSideBox = require('Module:Side box') </source>
Anda dapat menghasilkan sebuah side box menggunakan _main function.
mSideBox._main(args)
Variabel args haruslah sebuah tabel yang memuat argumen untuk meluluskan modul. Untuk melihat perbedaan argumen yang dapat ditentukan dan bagaiamana mereka mempengaruhi output modul, silakan merujuk ke dokumentasi templat {{side box}}.
Dokumentasi di atas ditransklusikan dari Modul:Side box/doc. (sunting | riwayat)
Penyunting dapat melakukan uji coba pada halaman bak pasir (sunting | beda) dan kasus uji (buat) modul ini.
Subhalaman modul ini.
Penyunting dapat melakukan uji coba pada halaman bak pasir (sunting | beda) dan kasus uji (buat) modul ini.
Subhalaman modul ini.
localyesno=require('Modul:Yesno') localp={} localfunctionmakeData(args) localdata={} -- Main table classes data.classes={} ifyesno(args.metadata)~=falsethen table.insert(data.classes,'metadata') end ifargs.positionandargs.position:lower()=='left'then table.insert(data.classes,'side-box-left') else table.insert(data.classes,'side-box-right') end ifargs.collapsiblethen table.insert(data.classes,'mw-collapsible') ifargs.collapsible=="collapsed"then table.insert(data.classes,'mw-collapsed') end data.collapsible=true end table.insert(data.classes,args.class) -- Image ifargs.imageandargs.image~='none'then data.image=args.image end -- we have to check to see if a downstream use has plainlist like -- Template:Sister_project. also it's the default. wikitext is :( ifargs.textclass=='plainlist'ornotargs.textclassthen data.textclass='plainlist' data.plainlist_templatestyles='Plainlist/styles.css' else data.textclass=args.textclass end -- Copy over data that does not need adjusting localargsToCopy={ -- aria qualities 'role', 'labelledby', -- Styles 'style', 'textstyle', 'templatestyles', -- Above row 'above', 'abovestyle', -- Body row 'text', 'imageright', -- Below row 'below', } fori,keyinipairs(argsToCopy)do data[key]=args[key] end returndata end localfunctionrenderSidebox(data) -- Renders the sidebox HTML. -- Table root localroot=mw.html.create('div') root:attr('role',data.role) :attr('aria-labelledby',data.labelledby) :addClass('side-box') fori,classinipairs(data.classesor{})do root:addClass(class) end ifdata.stylethen root:cssText(data.style) end localframe=mw.getCurrentFrame() ifdata.plainlist_templatestylesthen root:wikitext(frame:extensionTag{ name='templatestyles',args={src=data.plainlist_templatestyles} }) end -- The "above" row ifdata.abovethen localabove=root:newline():tag('div') above:addClass('side-box-abovebelow') :newline() :wikitext(data.above) ifdata.textstylethen above:cssText(data.textstyle) end ifdata.abovestylethen above:cssText(data.abovestyle) end end -- The body row localbody=root:newline():tag('div') body:addClass('side-box-flex') :addClass(data.collapsibleand'mw-collapsible-content') :newline() ifdata.imagethen body:tag('div') :addClass('side-box-image') :wikitext(data.image) end localtext=body:newline():tag('div') text:addClass('side-box-text') :addClass(data.textclass) ifdata.textstylethen text:cssText(data.textstyle) end text:wikitext(data.text) ifdata.imagerightthen body:newline():tag('div') :addClass('side-box-imageright') :wikitext(data.imageright) end -- The below row ifdata.belowthen localbelow=root:newline():tag('div') below :addClass('side-box-abovebelow') :wikitext(data.below) ifdata.textstylethen below:cssText(data.textstyle) end end root:newline() localtemplatestyles='' ifdata.templatestylesthen templatestyles=frame:extensionTag{ name='templatestyles',args={src=data.templatestyles} } end returnframe:extensionTag{ name='templatestyles',args={src='Modul:Side box/styles.css'} }..templatestyles..tostring(root) end -- private, export for testing p._makeData=makeData p._renderSidebox=renderSidebox functionp._main(args) localdata=makeData(args) returnrenderSidebox(data) end functionp.main(frame) localorigArgs=frame:getParent().args localargs={} fork,vinpairs(origArgs)do v=v:match('%s*(.-)%s*$') ifv~=''then args[k]=v end end returnp._main(args) end returnp