跳转到内容

模組:DataPage/sandbox

维基百科,自由的百科全书

这是本页的一个历史版本,由A2569875-sandbox留言 | 贡献2018年1月18日 (四) 15:43 建立内容为“local p = {} local yesno = require('Module:Yesno') function p.getDisambiguationData(args) if (args[1] and args[1] ~= '') then test_str = args[…”的新页面)编辑。这可能和当前版本存在着巨大的差异。

(差异) ←上一修订 | 最后版本 (差异) | 下一修订→ (差异)
local p = {}
local yesno = require('Module:Yesno')

function p.getDisambiguationData(args)
	if (args[1] and args[1]  ~= '') then 
		test_str = args[1]
	else
		return {'',''}
	end
	
	local start_iterator = 0
	while start_iterator >= 0 do
		start_pos = start_iterator
		start_iterator = mw.ustring.find( test_str, " (", start_iterator + 1, true )
		
		if start_iterator == nil then
        	start_iterator = -1
		end
		
	end
	
	local end_iterator = 0
	while end_iterator >= 0 do
		end_pos = end_iterator
		end_iterator = mw.ustring.find( test_str, ')', end_iterator + 1, true )
		if end_iterator == nil then
        	end_iterator = -1
		end
	end

	if (start_pos < 0) or (end_pos < 0) or (end_pos <= start_pos) then
		return {test_str , ''}
	end
	return {mw.ustring.sub(test_str, 1, start_pos - 1) , mw.ustring.sub(test_str, start_pos + 1, end_pos)}
end

function p.getWithoutDisambiguation(frame)
	-- For calling from #invoke.
	local pframe = frame:getParent()
	args = {}
	for k, v in pairs( frame.args ) do
		args[k] = v;	   
	end
	return p.getDisambiguationData(args)[1]
end

function p.getWithDisambiguation(frame)
	-- For calling from #invoke.
	local pframe = frame:getParent()
	args = {}
	for k, v in pairs( frame.args ) do
		args[k] = v;	   
	end
	return p.getDisambiguationData(args)[2]
end

function p.getDataPageName(frame)
	-- For calling from #invoke.
	local pframe = frame:getParent()
	args = {}
	for k, v in pairs( frame.args ) do
		args[k] = v;	   
	end
	isHans = "no"
	no_disambig = "no"
	if (args[2] and args[2]  ~= '') then 
		isHans = args[2]
	end
	if (args["isHans"] and args["isHans"]  ~= '') then 
		isHans = args["isHans"]
	end
	if (args["NoDisambig"] and args["NoDisambig"]  ~= '') then 
		no_disambig = args["NoDisambig"]
	end
	
	HansOrHant = yesno(isHans)
	datapage_str = "性質表"
	if HansOrHant then
		datapage_str = "性质表"
	end
	
	disambiguation_data = p.getDisambiguationData(args)
	if disambiguation_data[2] == '' then
		return disambiguation_data[1] .. datapage_str
	end
	
	if yesno(no_disambig) then
		return disambiguation_data[1] .. datapage_str
	end
	
	return disambiguation_data[1] .. datapage_str .. ' ' .. disambiguation_data[2]
end

return p