Module:Userbox: Difference between revisions
From Test Wiki
Content deleted Content added
m No |
|||
Line 82: | Line 82: | ||
local borderWidthNum = checkNum(args['border-width'] or args['border-s'], 1) -- Used to calculate width. |
local borderWidthNum = checkNum(args['border-width'] or args['border-s'], 1) -- Used to calculate width. |
||
data.borderWidth = addSuffix(borderWidthNum, 'px') |
data.borderWidth = addSuffix(borderWidthNum, 'px') |
||
data.borderColor = args['border-color'] or args[ |
data.borderColor = args['border-color'] or args['border-c'] or args[1] or args['id-c'] or '#999' |
||
data.width = addSuffix(240 - 2 * borderWidthNum, 'px') -- Also used in the table tag. |
data.width = addSuffix(240 - 2 * borderWidthNum, 'px') -- Also used in the table tag. |
||
data.bodyClass = args.bodyclass |
data.bodyClass = args.bodyclass |
||
Line 108: | Line 108: | ||
data.idBackgroundColor = args['logo-background'] or args[1] or args['id-c'] or '#ddd' |
data.idBackgroundColor = args['logo-background'] or args[1] or args['id-c'] or '#ddd' |
||
data.idTextAlign = args['id-a'] or 'center' |
data.idTextAlign = args['id-a'] or 'center' |
||
data.idFontSize = |
data.idFontSize = checkNum(args['logo-size'] or args[5] or args['id-s'], 14) |
||
data.idColor = args['logo-color'] or args['id-fc'] or data.infoColor |
data.idColor = args['logo-color'] or args['id-fc'] or data.infoColor |
||
data.idPadding = args['logo-padding'] or args['id-p'] or '0 1px 0 0' |
data.idPadding = args['logo-padding'] or args['id-p'] or '0 1px 0 0' |
||
Line 124: | Line 124: | ||
-- Get div tag values. |
-- Get div tag values. |
||
data.float = args.float or 'left' |
data.float = args.float or 'left' |
||
local borderWidthNum = checkNum(args[ |
local borderWidthNum = checkNum(args['border-s'] or args[9], 1) -- Used to calculate width. |
||
data.borderWidth = addSuffix(borderWidthNum, 'px') |
data.borderWidth = addSuffix(borderWidthNum, 'px') |
||
data.borderColor = args[ |
data.borderColor = args['border-c'] or args[6] or args['id1-c'] or args[1] or '#999999' |
||
data.width = addSuffix(240 - 2 * borderWidthNum, 'px') -- Also used in the table tag. |
data.width = addSuffix(240 - 2 * borderWidthNum, 'px') -- Also used in the table tag. |
||
data.bodyClass = args.bodyclass |
data.bodyClass = args.bodyclass |
||
-- Get table tag values. |
-- Get table tag values. |
||
data.backgroundColor = args[ |
data.backgroundColor = args['info-c'] or args[2] or '#eeeeee' |
||
-- Get info values. |
-- Get info values. |
||
data.info = args |
data.info = args.info or args[4] or "<code>{{{info}}}</code>" |
||
data.infoTextAlign = args['info-a'] or 'left' |
data.infoTextAlign = args['info-a'] or 'left' |
||
data.infoFontSize = checkNumAndAddSuffix(args['info-s'], 8, 'pt') |
data.infoFontSize = checkNumAndAddSuffix(args['info-s'], 8, 'pt') |
||
data.infoColor = args[ |
data.infoColor = args['info-fc'] or args[8] or 'black' |
||
data.infoPadding = args['info-p'] or '0 4px 0 4px' |
data.infoPadding = args['info-p'] or '0 4px 0 4px' |
||
data.infoLineHeight = args['info-lh'] or '1.25em' |
data.infoLineHeight = args['info-lh'] or '1.25em' |
||
Line 147: | Line 147: | ||
data.idWidth = checkNumAndAddSuffix(args['id1-w'], 45, 'px') |
data.idWidth = checkNumAndAddSuffix(args['id1-w'], 45, 'px') |
||
data.idHeight = checkNumAndAddSuffix(args['id-h'], 45, 'px') |
data.idHeight = checkNumAndAddSuffix(args['id-h'], 45, 'px') |
||
data.idBackgroundColor = args[ |
data.idBackgroundColor = args['id1-c'] or args[1] or '#dddddd' |
||
data.idTextAlign = 'center' |
data.idTextAlign = 'center' |
||
data.idFontSize = |
data.idFontSize = checkNum(args['id1-s'], 14) |
||
data.idLineHeight = args['id1-lh'] or '1.25em' |
data.idLineHeight = args['id1-lh'] or '1.25em' |
||
data.idColor = args['id1-fc'] or data.infoColor |
data.idColor = args['id1-fc'] or data.infoColor |
||
Line 160: | Line 160: | ||
data.id2Width = checkNumAndAddSuffix(args['id2-w'], 45, 'px') |
data.id2Width = checkNumAndAddSuffix(args['id2-w'], 45, 'px') |
||
data.id2Height = data.idHeight |
data.id2Height = data.idHeight |
||
data.id2BackgroundColor = args[ |
data.id2BackgroundColor = args['id2-c'] or args[7] or args[1] or '#dddddd' |
||
data.id2TextAlign = 'center' |
data.id2TextAlign = 'center' |
||
data.id2FontSize = |
data.id2FontSize = checkNum(args['id2-s'], 14) |
||
data.id2LineHeight = args['id2-lh'] or '1.25em' |
data.id2LineHeight = args['id2-lh'] or '1.25em' |
||
data.id2Color = args['id2-fc'] or data.infoColor |
data.id2Color = args['id2-fc'] or data.infoColor |
||
Line 179: | Line 179: | ||
local borderWidthNum = checkNum(args['border-width'] or args['border-s'], 1) -- Used to calculate width. |
local borderWidthNum = checkNum(args['border-width'] or args['border-s'], 1) -- Used to calculate width. |
||
data.borderWidth = addSuffix(borderWidthNum, 'px') |
data.borderWidth = addSuffix(borderWidthNum, 'px') |
||
data.borderColor = args['border-color'] or args[ |
data.borderColor = args['border-color'] or args['border-c'] or args[1] or args['id-c'] or '#999' |
||
data.width = addSuffix(240 - 2 * borderWidthNum, 'px') -- Also used in the table tag. |
data.width = addSuffix(240 - 2 * borderWidthNum, 'px') -- Also used in the table tag. |
||
data.bodyClass = args.bodyclass |
data.bodyClass = args.bodyclass |
||
Line 205: | Line 205: | ||
data.id2BackgroundColor = args['logo-background'] or args[1] or args['id-c'] or '#ddd' |
data.id2BackgroundColor = args['logo-background'] or args[1] or args['id-c'] or '#ddd' |
||
data.id2TextAlign = args['id-a'] or 'center' |
data.id2TextAlign = args['id-a'] or 'center' |
||
data.id2FontSize = |
data.id2FontSize = checkNum(args['logo-size'] or args[5] or args['id-s'], 14) |
||
data.id2Color = args['logo-color'] or args['id-fc'] or data.infoColor |
data.id2Color = args['logo-color'] or args['id-fc'] or data.infoColor |
||
data.id2Padding = args['logo-padding'] or args['id-p'] or '0 0 0 1px' |
data.id2Padding = args['logo-padding'] or args['id-p'] or '0 0 0 1px' |
||
Line 245: | Line 245: | ||
:css('background', data.idBackgroundColor) |
:css('background', data.idBackgroundColor) |
||
:css('text-align', data.idTextAlign) |
:css('text-align', data.idTextAlign) |
||
:css('font-size', data.idFontSize) |
:css('font-size', data.idFontSize .. 'pt') |
||
:css('font-weight', 'bold') |
:css('font-weight', 'bold') |
||
:css('color', data.idColor) |
:css('color', data.idColor) |
||
Line 278: | Line 278: | ||
:css('background', data.id2BackgroundColor) |
:css('background', data.id2BackgroundColor) |
||
:css('text-align', data.id2TextAlign) |
:css('text-align', data.id2TextAlign) |
||
:css('font-size', data.id2FontSize) |
:css('font-size', data.id2FontSize .. 'pt') |
||
:css('font-weight', 'bold') |
:css('font-weight', 'bold') |
||
:css('color', data.id2Color) |
:css('color', data.id2Color) |
||
Line 301: | Line 301: | ||
local function has_text(wikitext) |
local function has_text(wikitext) |
||
local function get_alt(text) |
|||
return text:match("|alt=([^|]*)") or "" |
|||
⚫ | |||
⚫ | |||
wikitext = wikitext:gsub("]]", "|]]") |
wikitext = wikitext:gsub("]]", "|]]") |
||
wikitext = wikitext:gsub("%[%[%s*[Mm][Ee][Dd][Ii][Aa]%s*:[^|]-(|.-)]]", |
wikitext = wikitext:gsub("%[%[%s*[Mm][Ee][Dd][Ii][Aa]%s*:[^|]-(|.-)]]", "") |
||
wikitext = wikitext:gsub("%[%[%s*[Ii][Mm][Aa][Gg][Ee]%s*:[^|]-(|.-)]]", |
wikitext = wikitext:gsub("%[%[%s*[Ii][Mm][Aa][Gg][Ee]%s*:[^|]-(|.-)]]", "") |
||
wikitext = wikitext:gsub("%[%[%s*[Ff][Ii][Ll][Ee]%s*:[^|]-(|.-)]]", |
wikitext = wikitext:gsub("%[%[%s*[Ff][Ii][Ll][Ee]%s*:[^|]-(|.-)]]", "") |
||
return mw.text.trim(wikitext) ~= "" |
return mw.text.trim(wikitext) ~= "" |
||
end |
end |
||
Line 316: | Line 312: | ||
end |
end |
||
-- For bold text >= 14pt, requirement is only 3. |
|||
⚫ | |||
local idContrastThreshold = 4.5 |
|||
local id2ContrastThreshold = 4.5 |
|||
if (data.idFontSize or 0) >= 14 then |
|||
idContrastThreshold = 3 |
|||
⚫ | |||
if (data.id2FontSize or 0) >= 14 then |
|||
id2ContrastThreshold = 3 |
|||
⚫ | |||
⚫ | |||
⚫ | |||
if has_text(data.id or "") then |
if has_text(data.id or "") then |
||
legible = false |
legible = false |
||
Line 322: | Line 328: | ||
end |
end |
||
if data.showId2 and contrast { data.id2Color, data.id2BackgroundColor, error = 0 } < |
if data.showId2 and contrast { data.id2Color, data.id2BackgroundColor, error = 0 } < id2ContrastThreshold then |
||
if has_text(data.id2 or "") then |
if has_text(data.id2 or "") then |
||
legible = false |
legible = false |
||
Line 329: | Line 335: | ||
if not legible then |
if not legible then |
||
root:wikitext('') |
root:wikitext('[[Category:Userboxes with insufficient color contrast]]') |
||
end |
end |
||
Line 343: | Line 349: | ||
cats[#cats + 1] = args.usercategory2 |
cats[#cats + 1] = args.usercategory2 |
||
cats[#cats + 1] = args.usercategory3 |
cats[#cats + 1] = args.usercategory3 |
||
cats[#cats + 1] = args.usercategory4 |
|||
cats[#cats + 1] = args.usercategory5 |
|||
-- Get the title object |
|||
-- Get the title object |
|||
local title |
|||
if page then |
|||
title = mw.title.new(page) |
|||
else |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
else |
else |
||
⚫ | |||
return nil |
|||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
end |
end |
||
⚫ | |||
⚫ | |||
end |
end |
||