| Modul Lua ini digunakan pada 1.130.000+ halaman, atau sekira 26% dari keseluruhan halaman. Untuk mencegah suntingan mengganggu skala besar dan beban peladen, setiap perubahan harus diuji di subhalaman /bak pasir atau /kasus uji Modul:Navbar, 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 Lua ini digunakan di pesan sistem, dan pada sekitar 1.130.000 halaman, atau sekira 26% dari keseluruhan halaman. Perubahan pada templat atau modul ini dapat mengubah antarmuka pengguna Wikipedia secara serentak. Untuk mencegah suntingan mengganggu skala besar dan beban peladen, setiap perubahan harus diuji di subhalaman /bak pasir atau /kasus uji Modul:Navbar, atau bak pasir modul Anda. Perubahan yang telah diuji kemudian dapat ditambahkan ke halaman ini dalam satu suntingan. Harap diskusikan perubahan di halaman pembicaraan sebelum mengimplementasikannya. |
| 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 ini menggunakan Lua: |
| Modul ini menggunakan TemplateStyles: |
Modul ini adalah implementasi Lua dari {{Navbar}}. Modul ini digunakan di Modul:Navbox.
Dokumentasi di atas ditransklusikan dari Modul:Navbar/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.
localp={} localcfg=mw.loadData('Module:Navbar/configuration') localfunctionget_title_arg(is_collapsible,template) localtitle_arg=1 ifis_collapsiblethentitle_arg=2end iftemplatethentitle_arg='template'end returntitle_arg end localfunctionchoose_links(template,args) -- The show table indicates the default displayed items. -- view, talk, edit, hist, move, watch -- TODO: Move to configuration. localshow={true,true,true,false,false,false} iftemplatethen show[2]=false show[3]=false localindex={t=2,d=2,e=3,h=4,m=5,w=6, talk=2,edit=3,hist=4,move=5,watch=6, bicara=2,diskusi=2,sunting=3,riwayat=4,pindah=5,pantau=6} -- TODO: Consider removing TableTools dependency. for_,vinipairs(require('Module:TableTools').compressSparseArray(args))do localnum=index[v] ifnumthenshow[num]=trueend end end localremove_edit_link=args.noedit ifremove_edit_linkthenshow[3]=falseend returnshow end localfunctionadd_link(link_description,ul,is_mini,font_style) locall iflink_description.urlthen l={'[','',']'} else l={'[[','|',']]'} end ul:tag('li') :addClass('nv-'..link_description.full) :wikitext(l[1]..link_description.link..l[2]) :tag(is_miniand'abbr'or'span') :attr('title',link_description.html_title) :cssText(font_style) :wikitext(is_miniandlink_description.miniorlink_description.full) :done() :wikitext(l[3]) :done() end localfunctionmake_list(title_text,has_brackets,displayed_links,is_mini,font_style) localtitle=mw.title.new(mw.text.trim(title_text),cfg.title_namespace) ifnottitlethen error(cfg.invalid_title..title_text) end localtalkpage=title.talkPageTitleandtitle.talkPageTitle.fullTextor'' -- TODO: Get link_descriptions and show into the configuration module. -- link_descriptions should be easier... locallink_descriptions={ {['mini']='l',['full']='lihat',['html_title']='Lihat templat ini', ['link']=title.fullText,['url']=false}, {['mini']='b',['full']='bicara',['html_title']='Diskusikan templat ini', ['link']=talkpage,['url']=false}, {['mini']='s',['full']='sunting',['html_title']='Sunting templat ini', ['link']=title:fullUrl('action=edit'),['url']=true}, {['mini']='r',['full']='riwayat',['html_title']='Riwayat templat ini', ['link']=title:fullUrl('action=history'),['url']=true}, {['mini']='m',['full']='pindah',['html_title']='Pindahkan templat ini', ['link']=mw.title.new('Special:Movepage'):fullUrl('target='..title.fullText),['url']=true}, {['mini']='w',['full']='pantau',['html_title']='Pantau templat ini', ['link']=title:fullUrl('action=watch'),['url']=true} } localul=mw.html.create('ul') ifhas_bracketsthen ul:addClass(cfg.classes.brackets) :cssText(font_style) end fori,_inipairs(displayed_links)do ifdisplayed_links[i]thenadd_link(link_descriptions[i],ul,is_mini,font_style)end end returnul:done() end functionp._navbar(args) -- TODO: We probably don't need both fontstyle and fontcolor... localfont_style=args.fontstyle localfont_color=args.fontcolor localis_collapsible=args.collapsible localis_mini=args.mini localis_plain=args.plain localcollapsible_class=nil ifis_collapsiblethen collapsible_class=cfg.classes.collapsible ifnotis_plainthenis_mini=1end iffont_colorthen font_style=(font_styleor'')..'; color: '..font_color..';' end end localnavbar_style=args.style localdiv=mw.html.create():tag('div') div :addClass(cfg.classes.navbar) :addClass(cfg.classes.plainlinks) :addClass(cfg.classes.horizontal_list) :addClass(collapsible_class)-- we made the determination earlier :cssText(navbar_style) ifis_minithendiv:addClass(cfg.classes.mini)end localbox_text=(args.textorcfg.box_text)..' ' -- the concatenated space guarantees the box text is separated ifnot(is_minioris_plain)then div :tag('span') :addClass(cfg.classes.box_text) :cssText(font_style) :wikitext(box_text) end localtemplate=args.template localdisplayed_links=choose_links(template,args) localhas_brackets=args.brackets localtitle_arg=get_title_arg(is_collapsible,template) localtitle_text=args[title_arg]or(':'..mw.getCurrentFrame():getParent():getTitle()) locallist=make_list(title_text,has_brackets,displayed_links,is_mini,font_style) div:node(list) ifis_collapsiblethen localtitle_text_class ifis_minithen title_text_class=cfg.classes.collapsible_title_mini else title_text_class=cfg.classes.collapsible_title_full end div:done() :tag('div') :addClass(title_text_class) :cssText(font_style) :wikitext(args[1]) end localframe=mw.getCurrentFrame() localhlist_tag='' ifcfg.hlist_templatestylesandcfg.hlist_templatestyles~=''then hlist_tag=frame:extensionTag{name='templatestyles',args={src=cfg.hlist_templatestyles}} end localnavbar_tag='' ifcfg.templatestylesandcfg.templatestyles~=''then navbar_tag=frame:extensionTag{name='templatestyles',args={src=cfg.templatestyles}} end returnhlist_tag..navbar_tag..tostring(div:done()) end functionp.navbar(frame) returnp._navbar(require('Module:Arguments').getArgs(frame)) end returnp