Modül:Daraltılabilir gruplu dolaşım

Vikipedi, özgür ansiklopedi

Modül belgelemesi[gör] [değiştir] [geçmiş] [temizle]
-- This module implements {{Daraltılabilir gruplu dolaşım}} local q = {} local Navbox = require('Modül:Dolaşım')  -- helper functions local function concatstrings(s) 	local r = table.concat(s, '') 	if r:match('^%s*$') then r = nil end 	return r end  local function concatstyles(s) 	local r = table.concat(s, ';') 	while r:match(';%s*;') do 		r = mw.ustring.gsub(r, ';%s*;', ';') 	end 	if r:match('^%s*;%s*$') then r = nil end 	return r end  function q._navbox(pargs) 	-- table for args passed to navbox 	local targs = {}  	-- process args 	local passthrough = { 		['ad']=true,['dolçub']=true,['durum']=true,['kenar']=true, 		['gövdesınıfı']=true,['grupsınıfı']=true,['listesınıfı']=true, 		['biçim']=true,['gövdebiçimi']=true,['temelbiçim']=true, 		['başlık']=true,['başlıksınıfı']=true,['başlıkbiçimi']=true, 		['üst']=true,['üstsınıf']=true,['üstbiçim']=true, 		['alt']=true,['altsınıf']=true,['altbiçim']=true, 		['resim']=true,['resimsınıfı']=true,['resimbiçimi']=true, 		['resimsol']=true,['resimsolbiçimi']=true 	} 	for k,v in pairs(pargs) do 		if k and type(k) == 'string' then 			if passthrough[k] then 				targs[k] = v 			elseif k:match('^liste[0-9][0-9]*$')  then 				local n = mw.ustring.gsub(k, '^[a-z]*([0-9]*)$', '%1') 				if targs['liste' .. n] == nil and pargs['grup' .. n] == nil then 					targs['liste' .. n] = concatstrings( 						{pargs['liste' .. n] or ''}) 				end 			elseif (k:match('^grup[0-9][0-9]*$')  					or k:match('^seç[0-9][0-9]*$') ) then 				local n = mw.ustring.gsub(k, '^[a-z]*([0-9]*)$', '%1') 				if targs['liste' .. n] == nil then 					local titlestyle = concatstyles( 						{pargs['grupbiçimi'] or '',pargs['seçbaşlıkbiçimi'] or '',  							pargs['grup' .. n .. 'biçimi'] or '',  							pargs['seç' .. n ..'başlıkbiçimi'] or ''}) 					local liststyle = concatstyles( 						{pargs['listebiçimi'] or '', pargs['liste' .. n .. 'biçimi'] or ''}) 					local title = concatstrings( 						{pargs['grup' .. n] or '', pargs['seç' .. n] or ''}) 					local list = concatstrings( 						{pargs['liste' .. n] or ''}) 					local state = (pargs['kısaltma' .. n] and pargs['kısaltma' .. n] == pargs['seç'])  						and 'uncollapsed' or pargs['durum' .. n] or 'collapsed' 					 					targs['liste' .. n] = Navbox._navbox( 						{'child', ["dolçub"] = 'sade', durum = state, 						["temelbiçim"] = pargs['temelbiçim'], 						["başlık"] = title, ["başlıkbiçimi"] = titlestyle, 						["liste1"] = list, ["listebiçimi"] = liststyle, 						["listesınıfı"] = pargs['liste' .. n .. 'sınıfı'], 						resim = pargs['resim' .. n], 						resimsol = pargs['resimsol' .. n], 						listedolgusu = pargs['listedolgusu']}) 				end 			end 		end 	end 	-- ordering of style and bodystyle 	targs['biçim'] = concatstyles({targs['biçim'] or '', targs['gövdebiçimi'] or ''}) 	targs['gövdebiçimi'] = nil 	 	-- child or subgroup 	if targs['kenar'] == nil then targs['kenar'] = pargs[1] end  	return Navbox._navbox(targs) end  function q.navbox(frame) 	local pargs = require('Modül:Bağımsız değişkenler').getArgs(frame, {wrappers = {'Şablon:Daraltılabilir gruplu dolaşım'}})  	-- Read the arguments in the order they'll be output in, to make references number in the right order. 	local _ 	_ = pargs["başlık"] 	_ = pargs["üst"] 	for i = 1, 20 do 		_ = pargs["grup" .. tostring(i)] 		_ = pargs["liste" .. tostring(i)] 	end 	_ = pargs.alt  	return q._navbox(pargs) end  return q