Module:File: Difference between revisions
From Fanon Wiki
mNo edit summary |
PinkYoshiFan (talk | contribs) m (This should fix the issue of blank parameters not registering) |
||
(2 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
function f.main(frame) | function f.main(frame) | ||
local description = frame.args["description"] | local description | ||
if frame.args["description"]=="" or frame.args["description"]==nil then description="No description provided [[Category:Files lacking description]]" else description=frame.args["description"] end | |||
local type = mw.ustring.lower(frame.args["type"] or "") | local type = mw.ustring.lower(frame.args["type"] or "") | ||
local source | local source | ||
if frame.args["source"]=="" or frame.args["description"]==nil then source="No source specified [[Category:Files lacking a source]]" else source=frame.args["source"] end | |||
local result = {} | local result = {} | ||
local t = {} | local t = {} | ||
t = { | t = { | ||
['art'] = "Official artwork [[Category:Official | ['art'] = "Official artwork [[Category:Official artwork]]", | ||
['arts'] = "Official artwork [[Category:Official | ['arts'] = "Official artwork [[Category:Official artwork]]", | ||
['artwork'] = "Official artwork [[Category:Official | ['artwork'] = "Official artwork [[Category:Official artwork]]", | ||
['art work'] = "Official artwork [[Category:Official | ['art work'] = "Official artwork [[Category:Official artwork]]", | ||
['official artwork'] = "Official artwork [[Category:Official | ['official artwork'] = "Official artwork [[Category:Official artwork]]", | ||
['official artworks'] = "Official artwork [[Category:Official | ['official artworks'] = "Official artwork [[Category:Official artwork]]", | ||
['official art'] = "Official artwork [[Category:Official | ['official art'] = "Official artwork [[Category:Official artwork]]", | ||
['official arts'] = "Official artwork [[Category:Official | ['official arts'] = "Official artwork [[Category:Official artwork]]", | ||
['audio'] = "Audio [[Category:Audio files]]", | ['audio'] = "Audio [[Category:Audio files]]", | ||
Line 27: | Line 29: | ||
['boxarts'] = "Box art [[Category:Box art images]]", | ['boxarts'] = "Box art [[Category:Box art images]]", | ||
['box arts'] = "Box art [[Category:Box art images]]", | ['box arts'] = "Box art [[Category:Box art images]]", | ||
['chart'] = "Chart/diagram [[Category:Charts and diagrams]]", | |||
['diagram'] = "Chart/diagram [[Category:Charts and diagrams]]", | |||
['fanart'] = "Fan art [[Category:Fanarts]]", | ['fanart'] = "Fan art [[Category:Fanarts]]", | ||
Line 84: | Line 89: | ||
local license = mw.title.getCurrentTitle():getContent() | local license = mw.title.getCurrentTitle():getContent() | ||
if license:find(' | if license:find('%{%{License%-') then license = "" else license = "[[Category:Files without licenses]]" end | ||
local panel = '<div class="panel" style="--panel-color: #c5c5c5"><div class="mb-2 panel-title">File information</div><table class="table-responsive"><tr><th class="p-2" style="background: #ff4242; color: #fff; border-radius: .5rem 0 0 0">Description</th><td class="p-2">'.. description ..'</td></tr><tr><th class="p-2" style="background: #4292ff; color: #fff">Type</th><td class="p-2" style="background: rgba(0,0,0,.12)">'.. type ..'</td></tr><tr><th class="p-2" style="background: #f5ff42; border-radius: 0 0 0 .5rem">Source/author</th><td class="p-2">'.. source ..'</td></tr></table></div>'.. license ..'' | local panel = '<div class="panel" style="--panel-color: #c5c5c5"><div class="mb-2 panel-title">File information</div><table class="table-responsive"><tr><th class="p-2" style="background: #ff4242; color: #fff; border-radius: .5rem 0 0 0">Description</th><td class="p-2">'.. description ..'</td></tr><tr><th class="p-2" style="background: #4292ff; color: #fff">Type</th><td class="p-2" style="background: rgba(0,0,0,.12)">'.. type ..'</td></tr><tr><th class="p-2" style="background: #f5ff42; border-radius: 0 0 0 .5rem">Source/author</th><td class="p-2">'.. source ..'</td></tr></table></div>'.. license ..'' |
Latest revision as of 18:32, 11 November 2023
This module is intended to be used on File info pages. It eases the addition of types and categorizes it accordingly, with multiple fallbacks.
This module is intended to be used only on File pages.
How to use
{{#invoke:file|main |description = <Description of the file> |type = <Type of file> |source = <Source, origin, and/or author> }}
All parameters are technically mandatory, but if any is not set (or empty), the file will be categorized under specific maintenance categories, where files without description, type or source can be tracked more easily.
main
— the first parameter will always need to bemain
, otherwise the module invokation will fail.description
— a summary of what the file is about.type
— which type the file is about (it is not case sensitive):- Official artwork:
art
,artwork
,official artwork
,official art
- Audio:
audio
,music
,song
,sound
- Box art:
boxart
,box art
- Chart or diagram:
chart
,diagram
- Fan Art:
fanart
- Flag:
flag
- Logo:
logo
,logotype
,logomark
,wordmark
- Map:
map
- Photograph:
photograph
,photography
,photo
- Scan:
scan
,magazine
- Screenshot:
screenshot
,printscreen
,prtscr
- Sprite:
sprite
,spritesheet
- User images:
user
,user image
,user img
- Vector:
vector
,svg
- Video:
video
,movie
,film
,short
- Wiki image:
wiki
- Official artwork:
source
— the source, origin, and/or author of the file.
File information
Description | This file is about butterflies or something. |
---|---|
Type | Scan |
Source/author | Danny DeVito |
local f = {}
function f.main(frame)
local description
if frame.args["description"]=="" or frame.args["description"]==nil then description="No description provided [[Category:Files lacking description]]" else description=frame.args["description"] end
local type = mw.ustring.lower(frame.args["type"] or "")
local source
if frame.args["source"]=="" or frame.args["description"]==nil then source="No source specified [[Category:Files lacking a source]]" else source=frame.args["source"] end
local result = {}
local t = {}
t = {
['art'] = "Official artwork [[Category:Official artwork]]",
['arts'] = "Official artwork [[Category:Official artwork]]",
['artwork'] = "Official artwork [[Category:Official artwork]]",
['art work'] = "Official artwork [[Category:Official artwork]]",
['official artwork'] = "Official artwork [[Category:Official artwork]]",
['official artworks'] = "Official artwork [[Category:Official artwork]]",
['official art'] = "Official artwork [[Category:Official artwork]]",
['official arts'] = "Official artwork [[Category:Official artwork]]",
['audio'] = "Audio [[Category:Audio files]]",
['music'] = "Audio [[Category:Audio files]]",
['song'] = "Audio [[Category:Audio files]]",
['songs'] = "Audio [[Category:Audio files]]",
['sound'] = "Audio [[Category:Audio files]]",
['boxart'] = "Box art [[Category:Box art images]]",
['box art'] = "Box art [[Category:Box art images]]",
['boxarts'] = "Box art [[Category:Box art images]]",
['box arts'] = "Box art [[Category:Box art images]]",
['chart'] = "Chart/diagram [[Category:Charts and diagrams]]",
['diagram'] = "Chart/diagram [[Category:Charts and diagrams]]",
['fanart'] = "Fan art [[Category:Fanarts]]",
['fanarts'] = "Fan art [[Category:Fanarts]]",
['fan art'] = "Fan art [[Category:Fanarts]]",
['fanartwork'] = "Fan art [[Category:Fanarts]]",
['flag'] = "Flag [[Category:Flags]]",
['flags'] = "Flag [[Category:Flags]]",
['logo'] = "Logotype [[Category:Logos]]",
['logotype'] = "Logotype [[Category:Logos]]",
['logomark'] = "Logotype [[Category:Logos]]",
['wordmark'] = "Logotype [[Category:Logos]]",
['map'] = "Map [[Category:Maps]]",
['maps'] = "Map [[Category:Maps]]",
['photo'] = "Photograph [[Category:Photographs]]",
['photos'] = "Photograph [[Category:Photographs]]",
['photograph'] = "Photograph [[Category:Photographs]]",
['photography'] = "Photograph [[Category:Photographs]]",
['scan'] = "Scan [[Category:Scans]]",
['scans'] = "Scan [[Category:Scans]]",
['magazine'] = "Scan [[Category:Scans]]",
['screenshot'] = "Screenshot [[Category:Screenshots]]",
['screenshots'] = "Screenshot [[Category:Screenshots]]",
['screen shot'] = "Screenshot [[Category:Screenshots]]",
['printscreen'] = "Screenshot [[Category:Screenshots]]",
['print screen'] = "Screenshot [[Category:Screenshots]]",
['prtscr'] = "Screenshot [[Category:Screenshots]]",
['sprite'] = "Sprite [[Category:Sprites]]",
['sprites'] = "Sprite [[Category:Sprites]]",
['spritesheet'] = "Sprite [[Category:Sprites]]",
['sprite sheet'] = "Sprite [[Category:Sprites]]",
['user'] = "User image [[Category:User images]]",
['user image'] = "User image [[Category:User images]]",
['user img'] = "User image [[Category:User images]]",
['vector'] = "Vector graphic [[Category:Vector images]]",
['svg'] = "Vector graphic [[Category:Vector images]]",
['video'] = "Video [[Category:Video files]]",
['videos'] = "Video [[Category:Video files]]",
['movie'] = "Video [[Category:Video files]]",
['film'] = "Video [[Category:Video files]]",
['short'] = "Video [[Category:Video files]]",
['wiki'] = "Wiki image [[Category:Wiki images]]"
}
type = t[type] or "No type specified. [[Category:Files without a type specified]]"
local license = mw.title.getCurrentTitle():getContent()
if license:find('%{%{License%-') then license = "" else license = "[[Category:Files without licenses]]" end
local panel = '<div class="panel" style="--panel-color: #c5c5c5"><div class="mb-2 panel-title">File information</div><table class="table-responsive"><tr><th class="p-2" style="background: #ff4242; color: #fff; border-radius: .5rem 0 0 0">Description</th><td class="p-2">'.. description ..'</td></tr><tr><th class="p-2" style="background: #4292ff; color: #fff">Type</th><td class="p-2" style="background: rgba(0,0,0,.12)">'.. type ..'</td></tr><tr><th class="p-2" style="background: #f5ff42; border-radius: 0 0 0 .5rem">Source/author</th><td class="p-2">'.. source ..'</td></tr></table></div>'.. license ..''
if mw.title.getCurrentTitle().namespace ~= 6 then panel = "Hey! The module does not spawn here because it's intended to be used on File pages only." end
table.insert(result, panel)
return table.concat(result, "")
end
return f