“模块:NoteTA”的版本间的差异
小 (导入41个版本) |
|||
| (未显示5个用户的28个中间版本) | |||
| 第3行: | 第3行: | ||
function Tcode( args ) | function Tcode( args ) | ||
| − | + | if args.T == nil or args.T == '' then | |
| − | + | return '' | |
| − | + | end | |
| − | + | local div = mw.html.create( 'div' ) | |
| − | + | :attr( 'class', 'noteTA-title' ) | |
| − | + | :attr( 'data-noteta-code', args.T ) | |
| − | + | :wikitext( WikitextLC.title( args.T ) ) | |
| − | + | if args.dt ~= nil and args.dt ~= '' then | |
| − | + | div:attr( 'data-noteta-desc', args.dt ) | |
| − | + | end | |
| − | + | return tostring( div ) | |
end | end | ||
function group( name, frame ) | function group( name, frame ) | ||
| − | + | if name == nil or name == '' then | |
| − | + | return '' | |
| − | + | end | |
| − | + | local moduleTitle = mw.title.makeTitle( 'Module', 'CGroup/' .. name ) | |
| − | + | if moduleTitle and moduleTitle.exists then | |
| − | + | local data = mw.loadData( 'Module:CGroup/' .. name ) | |
| − | + | local pieces = {} | |
| − | + | if data.content then | |
| − | + | for i, v in ipairs( data.content ) do | |
| − | + | if v.type == 'item' and v.rule then | |
| − | + | table.insert( pieces, '-{H|' .. v.rule .. '}-' ) | |
| − | + | end | |
| + | end | ||
| + | return tostring( mw.html.create( 'div' ) | ||
| + | :attr( 'data-noteta-group-source', 'module' ) | ||
| + | :attr( 'data-noteta-group', data.name or name ) | ||
| + | :wikitext( table.concat( pieces ) ) ) | ||
| + | end | ||
| + | end | ||
| + | local templateTitle = mw.title.makeTitle( 'Template', 'CGroup/' .. name ) | ||
| + | if templateTitle and templateTitle.exists then | ||
| + | return frame:expandTemplate{ title = templateTitle } | ||
| + | end | ||
| + | return tostring( mw.html.create( 'div' ) | ||
| + | -- :attr( 'id', 'noteTA-group-' .. mw.uri.anchorEncode( name ) ) | ||
| + | :attr( 'data-noteta-group-source', 'none' ) | ||
| + | :attr( 'data-noteta-group', name ) ) | ||
end | end | ||
function Gcode( args, frame ) | function Gcode( args, frame ) | ||
| − | + | local code = {} | |
| − | + | for i = 1, 30 do | |
| − | + | table.insert( code, group( args['G' .. i], frame ) ) | |
| − | + | end | |
| − | + | code = table.concat( code ) | |
| − | + | if code ~= '' then | |
| − | + | code = tostring( mw.html.create( 'div' ) | |
| − | + | :attr( 'class', 'noteTA-group' ) | |
| − | + | :wikitext( code ) ) | |
| − | + | if args.G31 ~= nil then | |
| − | + | code = code .. '[[Category:NoteTA模板参数使用数量超过限制的页面|G]]' | |
| − | + | end | |
| − | + | end | |
| − | + | return code | |
end | end | ||
function local_( i, code, desc ) | function local_( i, code, desc ) | ||
| − | + | if code == nil or code == '' then | |
| − | + | return '' | |
| − | + | end | |
| − | + | local div = mw.html.create( 'div' ) | |
| − | + | -- :attr( 'id', 'noteTA-local-' .. i ) | |
| − | + | :attr( 'data-noteta-code', code ) | |
| − | + | :wikitext( WikitextLC.hidden( code ) ) | |
| − | + | if desc ~= nil and desc ~= '' then | |
| − | + | div:attr( 'data-noteta-desc', desc ) | |
| − | + | end | |
| − | + | return tostring( div ) | |
end | end | ||
function Lcode( args ) | function Lcode( args ) | ||
| − | + | local code = {} | |
| − | + | for i = 1, 30 do | |
| − | + | table.insert( code, local_( i, args[i], args['d' .. i] ) ) | |
| − | + | end | |
| − | + | code = table.concat( code ) | |
| − | + | if code ~= '' then | |
| − | + | code = tostring( mw.html.create( 'div' ) | |
| − | + | :attr( 'class', 'noteTA-local' ) | |
| − | + | :wikitext( code ) ) | |
| − | + | if args[31] ~= nil then | |
| − | + | code = code .. '[[Category:NoteTA模板参数使用数量超过限制的页面|L]]' | |
| − | + | end | |
| − | + | end | |
| − | + | return code | |
end | end | ||
function z.main( frame ) | function z.main( frame ) | ||
| − | + | local args | |
| − | + | if frame == mw.getCurrentFrame() then | |
| − | + | -- Being called from {{noteTA}} | |
| − | + | args = frame:getParent().args | |
| − | + | else | |
| − | + | -- Being called from another module | |
| − | + | args = frame | |
| − | + | frame = mw.getCurrentFrame() | |
| − | + | end | |
| − | + | local Tc = Tcode( args ) | |
| − | + | local Gc = Gcode( args, frame ) | |
| − | + | local Lc = Lcode( args ) | |
| − | + | local code = Tc .. Gc .. Lc | |
| − | + | if code ~= '' then | |
| − | + | local hash = require( 'Module:Crc32lua' ).crc32( mw.dumpObject( args ) ) | |
| − | + | code = frame:extensionTag{ | |
| − | + | name = 'indicator', | |
| − | + | content = '[[File:Zh conversion icon m.svg|35px| 本页使用了标题或全文手工转换|link=]]', | |
| − | + | args = { name = string.format( 'noteTA-%x', hash ) }, | |
| − | + | } .. tostring( mw.html.create( 'div' ) | |
| − | + | :attr( 'id', string.format( 'noteTA-%x', hash ) ) | |
| − | + | :attr( 'class', 'noteTA' ) | |
| − | + | :wikitext( code ) ) | |
| − | + | if mw.title.getCurrentTitle():inNamespace( 'Template' ) then | |
| + | code = code .. '[[Category:放置于模板的noteTA]]' | ||
| + | end | ||
| + | end | ||
| + | return code | ||
end | end | ||
return z | return z | ||
2022年7月11日 (一) 18:56的最新版本
| 本页面原先来自中文维基百科的模块:NoteTA,依照 CC BY-SA 3.0 授权被引入;原始贡献者的名字可以在这里看到。 经过双方编辑者的修改,本页面可能已与它的来源大不相同。 |
本模块用于执行{{NoteTA}}模板,请到模板页阅读具体用法。
| 上述文档嵌入自模块:NoteTA/doc。 (编辑 | 历史) 编者可以在本模块的沙盒 (创建 | 镜像)和测试样例 (创建)页面进行实验。 本模块的子页面。 |
local z = {}
local WikitextLC = require( 'Module:WikitextLC' )
function Tcode( args )
if args.T == nil or args.T == '' then
return ''
end
local div = mw.html.create( 'div' )
:attr( 'class', 'noteTA-title' )
:attr( 'data-noteta-code', args.T )
:wikitext( WikitextLC.title( args.T ) )
if args.dt ~= nil and args.dt ~= '' then
div:attr( 'data-noteta-desc', args.dt )
end
return tostring( div )
end
function group( name, frame )
if name == nil or name == '' then
return ''
end
local moduleTitle = mw.title.makeTitle( 'Module', 'CGroup/' .. name )
if moduleTitle and moduleTitle.exists then
local data = mw.loadData( 'Module:CGroup/' .. name )
local pieces = {}
if data.content then
for i, v in ipairs( data.content ) do
if v.type == 'item' and v.rule then
table.insert( pieces, '-{H|' .. v.rule .. '}-' )
end
end
return tostring( mw.html.create( 'div' )
:attr( 'data-noteta-group-source', 'module' )
:attr( 'data-noteta-group', data.name or name )
:wikitext( table.concat( pieces ) ) )
end
end
local templateTitle = mw.title.makeTitle( 'Template', 'CGroup/' .. name )
if templateTitle and templateTitle.exists then
return frame:expandTemplate{ title = templateTitle }
end
return tostring( mw.html.create( 'div' )
-- :attr( 'id', 'noteTA-group-' .. mw.uri.anchorEncode( name ) )
:attr( 'data-noteta-group-source', 'none' )
:attr( 'data-noteta-group', name ) )
end
function Gcode( args, frame )
local code = {}
for i = 1, 30 do
table.insert( code, group( args['G' .. i], frame ) )
end
code = table.concat( code )
if code ~= '' then
code = tostring( mw.html.create( 'div' )
:attr( 'class', 'noteTA-group' )
:wikitext( code ) )
if args.G31 ~= nil then
code = code .. '[[Category:NoteTA模板参数使用数量超过限制的页面|G]]'
end
end
return code
end
function local_( i, code, desc )
if code == nil or code == '' then
return ''
end
local div = mw.html.create( 'div' )
-- :attr( 'id', 'noteTA-local-' .. i )
:attr( 'data-noteta-code', code )
:wikitext( WikitextLC.hidden( code ) )
if desc ~= nil and desc ~= '' then
div:attr( 'data-noteta-desc', desc )
end
return tostring( div )
end
function Lcode( args )
local code = {}
for i = 1, 30 do
table.insert( code, local_( i, args[i], args['d' .. i] ) )
end
code = table.concat( code )
if code ~= '' then
code = tostring( mw.html.create( 'div' )
:attr( 'class', 'noteTA-local' )
:wikitext( code ) )
if args[31] ~= nil then
code = code .. '[[Category:NoteTA模板参数使用数量超过限制的页面|L]]'
end
end
return code
end
function z.main( frame )
local args
if frame == mw.getCurrentFrame() then
-- Being called from {{noteTA}}
args = frame:getParent().args
else
-- Being called from another module
args = frame
frame = mw.getCurrentFrame()
end
local Tc = Tcode( args )
local Gc = Gcode( args, frame )
local Lc = Lcode( args )
local code = Tc .. Gc .. Lc
if code ~= '' then
local hash = require( 'Module:Crc32lua' ).crc32( mw.dumpObject( args ) )
code = frame:extensionTag{
name = 'indicator',
content = '[[File:Zh conversion icon m.svg|35px|本页使用了标题或全文手工转换|link=]]',
args = { name = string.format( 'noteTA-%x', hash ) },
} .. tostring( mw.html.create( 'div' )
:attr( 'id', string.format( 'noteTA-%x', hash ) )
:attr( 'class', 'noteTA' )
:wikitext( code ) )
if mw.title.getCurrentTitle():inNamespace( 'Template' ) then
code = code .. '[[Category:放置于模板的noteTA]]'
end
end
return code
end
return z