Selasa, 22 September 2026
23:35 WIB
TERKINI
Regional Solo Safari Bantah Larang Hijab, Akui Ada Kesalahan Komunikasi Berita Banjir Bandang Landa Kompleks Pemkab Solok, Peralatan Kantor Hanyut dan Warga Mengungsi Berita Mengungkap Jaringan Video Asusila "A Day in My Life": Dua Pelaku Raup Jutaan Rupiah Berita Nusron Wahid Mundur dari Golkar, Serahkan Detail ke Bahlil Lahadalia Wawancara Tragedi 1965: Oka Rusmini Soroti Perampasan Hak Hidup Perempuan Prelude Dua Mantan Menteri Keuangan: Riwayat Berbeda di Kursi Kasir Negara Politik Kepala BGN Gencar Beriklan di Medsos, Benahi Citra Program Makan Bergizi Gratis Bisnis Jerat Pungli Ancam UMKM Indonesia: Kisah Bolosego dan Solusi Mendesak Hukum & Kriminal Empat Eks Pejabat LPEI Divonis 6 Tahun Penjara dalam Skandal Korupsi Pembiayaan Ekspor Hukum & Kriminal Mantan Bupati Sidoarjo Gus Muhdlor Bebas Bersyarat Usai Dua Tahun Dipenjara Regional Solo Safari Bantah Larang Hijab, Akui Ada Kesalahan Komunikasi Berita Banjir Bandang Landa Kompleks Pemkab Solok, Peralatan Kantor Hanyut dan Warga Mengungsi Berita Mengungkap Jaringan Video Asusila "A Day in My Life": Dua Pelaku Raup Jutaan Rupiah Berita Nusron Wahid Mundur dari Golkar, Serahkan Detail ke Bahlil Lahadalia Wawancara Tragedi 1965: Oka Rusmini Soroti Perampasan Hak Hidup Perempuan Prelude Dua Mantan Menteri Keuangan: Riwayat Berbeda di Kursi Kasir Negara Politik Kepala BGN Gencar Beriklan di Medsos, Benahi Citra Program Makan Bergizi Gratis Bisnis Jerat Pungli Ancam UMKM Indonesia: Kisah Bolosego dan Solusi Mendesak Hukum & Kriminal Empat Eks Pejabat LPEI Divonis 6 Tahun Penjara dalam Skandal Korupsi Pembiayaan Ekspor Hukum & Kriminal Mantan Bupati Sidoarjo Gus Muhdlor Bebas Bersyarat Usai Dua Tahun Dipenjara

Modul:Namespace detect

Wikimedia module

Dokumentasi modullihatsuntingriwayatsegarkan
WarningModul Lua ini digunakan pada 9.300+ halaman dan perubahannya kemungkinan memicu perubahan massal pada semua halaman yang menggunakannya. Uji cobalah di subhalaman /bak pasir atau /kasus uji Modul:Namespace detect, atau bak pasir modul Anda. Pertimbangkan untuk mendiskusikan perubahan di halaman pembicaraan sebelum mengimplementasikannya.

This module allows you to output different text depending on the namespace that a given page is in. It is a Lua implementation of the {{namespace detect}} template, with a few improvements: all namespaces and all namespace aliases are supported, and namespace names are detected automatically for the local wiki.

UsageUsage

{{#invoke: Namespace detect | main
| page              = <!-- page to detect namespace for, if not the current page -->
| main              = <!-- text to return for the main namespace -->
| talk              = <!-- text to return for talk namespaces -->

<!-- text to return for specific subject namespaces -->
| portal            = 
| category          = 
| user 	            = 
| wikipedia         = 
| education program = 
| mediawiki         = 
| book              = 
| timedtext         = 
| template          = 
| special           = 
| media             = 
| file              = 
| image             = 
| help 	            = 
| module            = 

| other             = <!-- text to return for unspecified namespaces -->
| demospace         = <!-- namespace to display text for -->

| subjectns         = <!-- set to "yes" to treat talk pages as the corresponding subject page -->
}}

ParametersParameters

  • main - text to return if the page is in the main namespace.
  • talk - text to return if the page is in a talk namespace. This can be any talk namespace - it will match any of "Talk:", "Wikipedia talk:", "User talk:", etc.
  • Subject namespace parameters, e.g. wikipedia, user, file... - the text to return if the page is in the corresponding namespace. This module accepts all subject namespaces as parameters, including namespace aliases and virtual namespaces. See below for a list of supported values.
  • other - text to return if no parameters for the page's namespace were specified. This text is also returned if |demospace= is set to an invalid namespace value.
  • subjectns - if on a talk page, use the corresponding subject page. Can be set with values of "yes", "y", "true" or "1".
  • demopage - specifies a page to detect the namespace of. If not specified, and if the |demospace= parameter is not set, then the module uses the current page.
  • demospace - force the module to behave as if the page was in the specified namespace. Often used for demonstrations.

Namespace parametersNamespace parameters

Possible values for subject namespace parameters are as follows:

Namespace Aliases
main
pengguna user
wikipedia project, wp
berkas file, gambar, image
mediawiki
templat template
bantuan help
kategori category
portal
mos
timedtext
modul module
story
acara event
topik topic

Table functionTable function

Use the following to display a table with the different possible namespace parameters:

{{#invoke:Namespace detect|table|talk=yes}}

To include the parameter for talk namespaces, use |talk=yes.

Porting to different wikisPorting to different wikis

This module is designed to be portable. To use it on a different wiki, all you need to do is to change the values in Module:Namespace detect/config. Instructions are available on that page.

Technical detailsTechnical details

The module uses a data page at Module:Namespace detect/data. This page is loaded with mw.loadData, which means it is processed once per page rather than once per #invoke. This was done for performance reasons.

Dokumentasi di atas ditransklusikan dari Modul:Namespace detect/doc. (sunting | riwayat)
Penyunting dapat melakukan uji coba pada halaman bak pasir (buat | cermin) dan kasus uji (buat) modul ini.
Subhalaman modul ini.
--[[
--------------------------------------------------------------------------------
--                                                                            --
--                            NAMESPACE DETECT                                --
--                                                                            --
-- This module implements the {{namespace detect}} template in Lua, with a    --
-- few improvements: all namespaces and all namespace aliases are supported,  --
-- and namespace names are detected automatically for the local wiki. The     --
-- module can also use the corresponding subject namespace value if it is     --
-- used on a talk page. Parameter names can be configured for different wikis --
-- by altering the values in the "cfg" table in                               --
-- Module:Namespace detect/config.                                            --
--                                                                            --
--------------------------------------------------------------------------------
--]]
localdata=mw.loadData('Module:Namespace detect/data')
localargKeys=data.argKeys
localcfg=data.cfg
localmappings=data.mappings
localyesno=require('Module:Yesno')
localmArguments-- Lazily initialise Module:Arguments
localmTableTools-- Lazily initilalise Module:TableTools
localustringLower=mw.ustring.lower
localp={}
localfunctionfetchValue(t1,t2)
-- Fetches a value from the table t1 for the first key in array t2 where
-- a non-nil value of t1 exists.
fori,keyinipairs(t2)do
localvalue=t1[key]
ifvalue~=nilthen
returnvalue
end
end
returnnil
end
localfunctionequalsArrayValue(t,value)
-- Returns true if value equals a value in the array t. Otherwise
-- returns false.
fori,arrayValueinipairs(t)do
ifvalue==arrayValuethen
returntrue
end
end
returnfalse
end
functionp.getPageObject(page)
-- Get the page object, passing the function through pcall in case of
-- errors, e.g. being over the expensive function count limit.
ifpagethen
localsuccess,pageObject=pcall(mw.title.new,page)
ifsuccessthen
returnpageObject
else
returnnil
end
else
returnmw.title.getCurrentTitle()
end
end
-- Provided for backward compatibility with other modules
functionp.getParamMappings()
returnmappings
end
localfunctiongetNamespace(args)
-- This function gets the namespace name from the page object.
localpage=fetchValue(args,argKeys.demopage)
ifpage==''then
page=nil
end
localdemospace=fetchValue(args,argKeys.demospace)
ifdemospace==''then
demospace=nil
end
localsubjectns=fetchValue(args,argKeys.subjectns)
localret
ifdemospacethen
-- Handle "demospace = main" properly.
ifequalsArrayValue(argKeys.main,ustringLower(demospace))then
ret=mw.site.namespaces[0].name
else
ret=demospace
end
else
localpageObject=p.getPageObject(page)
ifpageObjectthen
ifpageObject.isTalkPagethen
-- Get the subject namespace if the option is set,
-- otherwise use "talk".
ifyesno(subjectns)then
ret=mw.site.namespaces[pageObject.namespace].subject.name
else
ret='talk'
end
else
ret=pageObject.nsText
end
else
returnnil-- return nil if the page object doesn't exist.
end
end
ret=ret:gsub('_',' ')
returnustringLower(ret)
end
functionp._main(args)
-- Check the parameters stored in the mappings table for any matches.
localnamespace=getNamespace(args)or'other'-- "other" avoids nil table keys
localparams=mappings[namespace]or{}
localret=fetchValue(args,params)
--[[
	-- If there were no matches, return parameters for other namespaces.
	-- This happens if there was no text specified for the namespace that
	-- was detected or if the demospace parameter is not a valid
	-- namespace. Note that the parameter for the detected namespace must be
	-- completely absent for this to happen, not merely blank.
	--]]
ifret==nilthen
ret=fetchValue(args,argKeys.other)
end
returnret
end
functionp.main(frame)
mArguments=require('Module:Arguments')
localargs=mArguments.getArgs(frame,{removeBlanks=false})
localret=p._main(args)
returnretor''
end
functionp.table(frame)
--[[
	-- Create a wikitable of all subject namespace parameters, for
	-- documentation purposes. The talk parameter is optional, in case it
	-- needs to be excluded in the documentation.
	--]]
-- Load modules and initialise variables.
mTableTools=require('Module:TableTools')
localnamespaces=mw.site.namespaces
localcfg=data.cfg
localuseTalk=type(frame)=='table'
andtype(frame.args)=='table'
andyesno(frame.args.talk)-- Whether to use the talk parameter.
-- Get the header names.
localfunctioncheckValue(value,default)
iftype(value)=='string'then
returnvalue
else
returndefault
end
end
localnsHeader=checkValue(cfg.wikitableNamespaceHeader,'Namespace')
localaliasesHeader=checkValue(cfg.wikitableAliasesHeader,'Aliases')
-- Put the namespaces in order.
localmappingsOrdered={}
fornsname,paramsinpairs(mappings)do
ifuseTalkornsname~='talk'then
localnsid=namespaces[nsname].id
-- Add 1, as the array must start with 1; nsid 0 would be lost otherwise.
nsid=nsid+1
mappingsOrdered[nsid]=params
end
end
mappingsOrdered=mTableTools.compressSparseArray(mappingsOrdered)
-- Build the table.
localret='{| class="wikitable"'
..'\n|-'
..'\n! '..nsHeader
..'\n! '..aliasesHeader
fori,paramsinipairs(mappingsOrdered)do
forj,paraminipairs(params)do
ifj==1then
ret=ret..'\n|-'
..'\n| <code>'..param..'</code>'
..'\n| '
elseifj==2then
ret=ret..'<code>'..param..'</code>'
else
ret=ret..', <code>'..param..'</code>'
end
end
end
ret=ret..'\n|-'
..'\n|}'
returnret
end
returnp
Konten disalin dari Wikipedia Bahasa Indonesia (lisensi CC BY-SA) Lihat versi asli di Wikipedia

Rekomendasi Pilihan