Toggle menu
68
66
13
4499
1F616EMO Survival Server Wiki
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.
Revision as of 17:38, 19 September 2020 by wikipeida:zh>SunAfterRain
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
local z = {}
local error = require( 'Module:Error' )

local function makeText( frame, v )
	local text = v.text
	if not v.preprocessed then
		text = frame:preprocess( text )
	end
	return mw.text.trim( text ) .. '\n'
end

local function makeItem( frame, v )
	local text = '* '
	if v.original then
		text = text .. '原文:' .. v.original .. ';'
	end
	return text .. '-{D|' .. v.rule .. '}-当前显示为:-{|' .. v.rule .. '}-\n'
end

function z.sandboxshow( frame )
	local name = frame.args[1]
	if not name or name == '' then
		return ''
	end
	local data = require( 'Module:' .. name )
	local text = '-{H|zh-hans:模块;zh-hant:模組}-<strong>以下是[[Wikipedia:字詞轉換處理/公共轉換組|公共转换组]]“' .. data.description .. '”的沙盒。</strong>\n\n'
	for i, v in ipairs( data.content ) do
		if v.type == 'text' then
			text = text .. makeText( frame, v )
		elseif v.type == 'item' then
			text = text .. makeItem( frame, v )
		end
	end
	text = text .. '[[Category:公共转换组模块|sandbox]]' 
	return text
end


function z._conversion(frame, args)
	local name = args[1]
	if not name or name == '' then
		return ''
	end
	local data = require( 'Module:CGroup/' .. name )
	if type( data ) ~= 'table' or not data.name or data.name == '' then
		return error.error{ '指定-{zh-hans:模块;zh-hant:模組};-“' .. name .. '”不是有效的转换组' }
	end
	local text = string.format([=[
<!--
公共转换组%s
https://zh.wikipedia.org/wiki/Module:CGroup/%s
\n
公共轉換組%s
https://zh.wikipedia.org/wiki/Module:CGroup/%s
這是此公共轉換組的純轉換版
\n
Chinese Conversion Group(CGroup) - %s
Copy from https://zh.wikipedia.org/wiki/Module:CGroup/%s
You can use {{#invoke:CGroupViewer2|main|%s}} in chinese wikipedia to find they.
-->
]=], name, name, name, name, name, name, name)
	for i, v in ipairs( data.content ) do
		if v.type == 'text' then
			if not v.preprocessed then
				text = text .. '<!--\n' .. v.text .. '-->\n'
			end
		elseif v.type == 'item' then
			if v.original then
				text = text .. '-{H|' .. v.rule .. '}-<!--' .. v.original .. '-->\n'
			else
				text = text .. '-{H|' .. v.rule .. '}-\n'
			end
		end
	end
	text = text .. ''
	return text
end

function z.main( frame )
	local args = {}
	for k, v in pairs( frame.args ) do
		args[k] = v
	end
	return 	'<div style="dispaly:none">' .. string.gsub(z._conversion(frame, args), '\\n', '----') .. '</div>'
end

function z.main2( frame )
	local args = {}
	for k, v in pairs( frame.args ) do
		args[k] = v
	end
	local pre = string.format('<pre>%s</pre>', z._conversion(frame, args))
	pre = string.gsub(pre, '!', '&#33;')
	pre = string.gsub(pre, '=', '&#61;')
	pre = string.gsub(pre, 'h', '&#104;')
	pre = string.gsub(pre, '%[', '&#91;')
	pre = string.gsub(pre, '%]', '&#93;')
	pre = string.gsub(pre, '{', '&#123;')
	pre = string.gsub(pre, '|', '&#124;')
	pre = string.gsub(pre, '}', '&#125;')
	pre = string.gsub(pre, '{{', '&#123;&#123;')
	pre = string.gsub(pre, '\\n', '&#45;&#45;&#45;&#45;')
	return pre
end

function z.showlua(frame, args)
	local name = frame.args[1]
	if not name or name == '' then
		return ''
	end
	local data = require( 'Module:CGroup/' .. name )
	if type( data ) ~= 'table' or not data.name or data.name == '' then
		return error.error{ '指定-{zh-hans:模块;zh-hant:模組};-“' .. name .. '”不是有效的转换组' }
	end
	return mw.getCurrentFrame():preprocess('<syntaxhighlight lang="lua">'  .. mw.title.new('Module:CGroup/' .. name):getContent() .. '</syntaxhighlight>')
end

return z