Module:Musician Infobox: Difference between revisions
From NOISZ Wiki
RiceEmpress (talk | contribs) mNo edit summary |
RiceEmpress (talk | contribs) No edit summary |
||
| Line 12: | Line 12: | ||
{ | { | ||
{ 'Website', args. website }, | { 'Website', args. website }, | ||
{ 'Linktree', args.linktree }, | |||
{ 'Pronouns', args.pronouns }, | { 'Pronouns', args.pronouns }, | ||
{ 'Active from', args.active_from } | { 'Active from', args.active_from } | ||
| Line 37: | Line 38: | ||
{ 'Tumblr', args.tumblr }, | { 'Tumblr', args.tumblr }, | ||
{ 'Ameblo', args.ameblo }, | { 'Ameblo', args.ameblo }, | ||
{ 'Misskey', args.misskey }, | |||
{ 'Newgrounds', args.newgrounds }, | { 'Newgrounds', args.newgrounds }, | ||
{ 'about.me', args.aboutme }, | { 'about.me', args.aboutme }, | ||
{ 'Blogspot', args.blogspot }, | { 'Blogspot', args.blogspot }, | ||
{ 'Artstation', args.artstation }, | |||
{ 'Other', args.other } | { 'Other', args.other } | ||
} | } | ||
| Line 46: | Line 49: | ||
{ 'Booth', args.booth }, | { 'Booth', args.booth }, | ||
{ 'Fanbox', args.fanbox }, | { 'Fanbox', args.fanbox }, | ||
{ 'Pixiv', args.pixiv } | { 'Pixiv', args.pixiv }, | ||
{ 'skeb', args.skeb } | |||
} | } | ||
if args.website or args.pronouns or args.active_from then | if args.website or args.pronouns or args.active_from then | ||
Latest revision as of 18:09, 21 December 2025
This module is intended to create infoboxes on the musician pages on each of their categories, using Capiunto's infobox capabilities.
local capiunto = require 'capiunto'
local p = {}
function p.main(frame)
local args = frame:getParent().args
local infobox = capiunto.create( {
title = string.gsub(tostring(mw.title.getCurrentTitle()),"Category:Songs featuring","")
} )
if args.image1 then
infobox:addImage('[[File:' .. args.image1 .. '|200px]]', args.caption )
end
local attributes =
{
{ 'Website', args. website },
{ 'Linktree', args.linktree },
{ 'Pronouns', args.pronouns },
{ 'Active from', args.active_from }
}
local music =
{
{ 'Spotify', args.spotify },
{ 'YouTube', args.youtube },
{ 'Bandcamp', args.bandcamp },
{ 'Soundcloud', args.soundcloud },
{ 'Apple Music', args.apple_music },
{ 'iTunes', args.itunes },
{ 'Niconico', args.niconico }
}
local socials =
{
{ 'Twitter', args.twitter},
{ 'Bluesky', args.bluesky },
{ 'Instagram', args.instagram },
{ 'Facebook', args.facebook },
{ 'Threads', args.threads },
{ 'Twitch', args.twitch },
{ 'TikTok', args.tiktok },
{ 'Mastodon', args.mastodon },
{ 'Tumblr', args.tumblr },
{ 'Ameblo', args.ameblo },
{ 'Misskey', args.misskey },
{ 'Newgrounds', args.newgrounds },
{ 'about.me', args.aboutme },
{ 'Blogspot', args.blogspot },
{ 'Artstation', args.artstation },
{ 'Other', args.other }
}
local stores =
{
{ 'Booth', args.booth },
{ 'Fanbox', args.fanbox },
{ 'Pixiv', args.pixiv },
{ 'skeb', args.skeb }
}
if args.website or args.pronouns or args.active_from then
for _, row in ipairs(attributes) do
local label, value = row[1], row[2]
if value and value ~= '' then
infobox:addRow(label, value)
end
end
end
if args.spotify or args.bandcamp or args.youtube or args.itunes or args.apple_music or args.niconico or args.soundcloud then
infobox:addHeader( 'Music' )
for _, row in ipairs(music) do
local label, value = row[1], row[2]
if value and value ~= '' then
infobox:addRow(label, value)
end
end
end
if args.twiter or args.bluesky or args.instagram or args.facebook or args.threads or args.twitch or args.tiktok or args.mastodon or args.tumblr or args.ameblo or args.newgrounds or args.aboutme or args.blogspot or args.other then
infobox:addHeader( 'Socials' )
for _, row in ipairs(socials) do
local label, value = row[1], row[2]
if value and value ~= '' then
infobox:addRow(label, value)
end
end
end
if args.booth or args.fanbox or args.pixiv then
infobox:addHeader( 'Stores' )
for _, row in ipairs(stores) do
local label, value = row[1], row[2]
if value and value ~= '' then
infobox:addRow(label, value)
end
end
end
return infobox
end
return p