打开/关闭菜单
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

Module:Ruby:修订间差异

来自OGAS数据中枢
创建页面,内容为“local module = {} local g_frame function get_arg ( name, plain ) if g_frame.args[name] and (mw.text.trim(g_frame.args[name]) ~= '' or plain) then return mw.text.trim(g_frame.args[name]) end end function module.ruby ( frame ) local parent = frame:getParent() if parent and (parent:getTitle() == "Template:Ruby" or parent:getTitle() == "Template:Ruby/Sandbox" or parent:getTitle() == "Template:沙盒") then frame = parent end g_frame = frame local args…”
 
imported>弃权者
无编辑摘要
第9行: 第9行:


function module.ruby ( frame )
function module.ruby ( frame )
local parent = frame:getParent()
if parent and (parent:getTitle() == "Template:Ruby" or parent:getTitle() == "Template:Ruby/Sandbox" or parent:getTitle() == "Template:沙盒") then
frame = parent
end
g_frame = frame
g_frame = frame
local args = {
local args = {
第33行: 第29行:


function module._ruby ( args, frame )
function module._ruby ( args, frame )
local html = mw.html.create():tag('ruby')
local html = mw.html.create()
if args.class then html:addClass( args.class) end
if args.id then html:attr('id', args.id) end
-- 创建包含括号和 ruby 的容器
if args.style then html:cssText(args.style) end
local container = html:tag('span'):addClass('ruby-container')
-- 添加左括号
container:tag('span'):addClass('template-ruby-hidden'):wikitext('('):done()
-- 创建 ruby 结构
local ruby = container:tag('ruby')
if args.class then ruby:addClass(args.class) end
if args.id then ruby:attr('id', args.id) end
if args.style then ruby:cssText(args.style) end


local rb = html:tag('rb'):attr('data-id', 'template-ruby')
-- 创建 rb(基础文字)
local rb = ruby:tag('rb')
if args.rbclass then rb:addClass(args.rbclass) end
if args.rbclass then rb:addClass(args.rbclass) end
if args.rbid then rb:attr('id', args.rbid) end
if args.rbid then rb:attr('id', args.rbid) end
第52行: 第58行:
rb:wikitext(args.rbtext)
rb:wikitext(args.rbtext)
end
end
rb:tag('span'):addClass('template-ruby-hidden'):wikitext('('):done()


local rt = html:tag('rt')
-- 创建 rt(注音)
local rt = ruby:tag('rt')
if args.rtclass then rt:addClass(args.rtclass) end
if args.rtclass then rt:addClass(args.rtclass) end
if args.rtid then rt:attr('id', args.rtid) end
if args.rtid then rt:attr('id', args.rtid) end
第67行: 第73行:
rt:wikitext(args.rttext)
rt:wikitext(args.rttext)
end
end
html:tag('span'):addClass('template-ruby-hidden'):wikitext(')'):done()
-- 添加右括号
container:tag('span'):addClass('template-ruby-hidden'):wikitext(')'):done()


return tostring ( html )
return tostring ( html )

2026年3月3日 (二) 08:47的版本

此模块的文档可以在Module:Ruby/doc创建

local module = {}
local g_frame

function get_arg ( name, plain )
	if g_frame.args[name] and (mw.text.trim(g_frame.args[name]) ~= '' or plain) then
		return mw.text.trim(g_frame.args[name])
	end
end

function module.ruby ( frame )
	g_frame = frame
	local args = {
		class = get_arg('class'),
		id = get_arg('id'),
		style = ( get_arg('style') or get_arg('css') ),
		rbclass = get_arg('rbclass'),
		rbid = get_arg('rbid'),
		rbsize = get_arg('rbsize'),
		rtclass = get_arg('rtclass'),
		rtid = get_arg('rtid'),
		rtsize = get_arg('rtsize'),
		rbtext = ( get_arg(1, true) or '{{{1}}}' ),
		rttext = ( get_arg(2, true) or '{{{2}}}' ),
		rblang = get_arg(3),
	}
	args.rtlang = get_arg(4) or args.rblang
	return module._ruby ( args, frame )
end

function module._ruby ( args, frame )
	local html = mw.html.create()
	
	-- 创建包含括号和 ruby 的容器
	local container = html:tag('span'):addClass('ruby-container')
	
	-- 添加左括号
	container:tag('span'):addClass('template-ruby-hidden'):wikitext('('):done()
	
	-- 创建 ruby 结构
	local ruby = container:tag('ruby')
	if args.class then ruby:addClass(args.class) end
	if args.id then ruby:attr('id', args.id) end
	if args.style then ruby:cssText(args.style) end

	-- 创建 rb(基础文字)
	local rb = ruby:tag('rb')
	if args.rbclass then rb:addClass(args.rbclass) end
	if args.rbid then rb:attr('id', args.rbid) end
	if args.rbsize then rb:css('font-size', args.rbsize) end

	if args.rblang then
		if frame then 
			rb:wikitext( frame:expandTemplate{ title = 'lang', args = { args.rblang, args.rbtext } } )
		else
			rb:tag('span'):attr('lang', args.rblang):attr('xml:lang', args.rblang):wikitext(args.rbtext)
		end
	else
		rb:wikitext(args.rbtext)
	end

	-- 创建 rt(注音)
	local rt = ruby:tag('rt')
	if args.rtclass then rt:addClass(args.rtclass) end
	if args.rtid then rt:attr('id', args.rtid) end
	if args.rtsize ~= '' then rt:css('font-size', (args.rtsize or '0.75em') ) end
	if args.rtlang then
		if frame then
			rt:wikitext( frame:expandTemplate{ title = 'lang', args = { args.rtlang, args.rttext } } )
		else
			rt:tag('span'):attr('lang', args.rtlang):attr('xml:lang', args.rtlang):wikitext(args.rttext)
		end
	else
		rt:wikitext(args.rttext)
	end
	
	-- 添加右括号
	container:tag('span'):addClass('template-ruby-hidden'):wikitext(')'):done()

	return tostring ( html )
end

return module