请输入您要查询的百科知识:

 

词条 Module:Clickable button 2/sandbox
释义 -- This module implements {{clickable button 2}}.

local yesno = require('Module:Yesno')

local p = {}

function p.main(frame)

local args = require('Module:Arguments').getArgs(frame, {

wrappers = 'Template:Clickable button 2'

})

return p.luaMain(args)

end

function p.luaMain(args)

if not args[1] and not args.url then

return

end

local data = p.makeLinkData(args)

local link = p.renderLink(data)

local trackingCategories = p.renderTrackingCategories(args)

return link .. trackingCategories

end

function p.makeLinkData(args)

local data = {}

-- Get the link and display values, and find whether we are outputting a

-- wikilink or a URL.

if args.url then

data.isUrl = true

data.link = args.url

if args[1] then

data.display = args[1]

else

data.display = args.url

end

else

data.isUrl = false

data.link = args[1]

if args[2] then

data.display = args[2]

else

data.display = args[1]

end

end

-- Classes

local class = args.class and args.class:lower()

data.classes = {}

if class == 'ui-button-green'

or class == 'ui-button-blue'

or class == 'ui-button-red'

then

table.insert(

data.classes,

'submit ui-button ui-widget ui-state-default ui-corner-all'

.. ' ui-button-text-only ui-button-text'

)

else

table.insert(data.classes, 'mw-ui-button')

end

if class then

table.insert(data.classes, class)

end

-- Styles

do

--[[

-- Check whether we are on the same page as we have specified in

-- args[1], but not if we are using a URL link, as then args[1] is only

-- a display value. If we are currently on the page specified in

-- args[1] make the button colour darker so that it stands out from

-- other buttons on the page.

--]]

local success, linkTitle, currentTitle

if not data.isUrl then

currentTitle = mw.title.getCurrentTitle()

success, linkTitle = pcall(mw.title.new, args[1])

end

if success

and linkTitle

and mw.title.equals(currentTitle, linkTitle)

then

if class == 'ui-button-blue'

or class == 'mw-ui-progressive'

or class == 'mw-ui-constructive'

then

data.backgroundColor = '#2962CB'

elseif class == 'ui-button-green' then

data.backgroundColor = '#008B6D'

elseif class == 'ui-button-red' or class == 'mw-ui-destructive' then

data.backgroundColor = '#A6170F'

else

data.backgroundColor = '#CCC'

data.color = '#666'

end

end

-- Add user-specified styles.

data.style = args.style

end

return data

end

function p.renderLink(data)

-- Render the display span tag.

local display

do

local displaySpan = mw.html.create('span')

for i, class in ipairs(data.classes or {}) do

displaySpan:addClass(class)

end

displaySpan

:css{

['background-color'] = data.backgroundColor,

color = data.color

}

if data.style then

displaySpan:cssText(data.style)

end

displaySpan:wikitext(data.display)

display = tostring(displaySpan)

end

-- Render the link

local link

if data.isUrl then

link = string.format('[%s %s]', data.link, display)

else

link = string.format('%s', data.link, display)

end

return string.format('%s', link)

end

function p.renderTrackingCategories(args)

if yesno(args.category) == false then

return

end

local class = args.class and args.class:lower()

if class == 'ui-button-green'

or class == 'ui-button-blue'

or class == 'ui-button-red'

then

return

else

return

end

end

return p

1 : Pages using old style ui-button-color

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/9/27 17:36:53