Home
Random
Log in
Settings
About the Petit Planet Wiki
Search
Editing
Module
:
Item
Warning:
You are not logged in. Once you make an edit, a temporary account will be created for you.
Learn more
.
Log in
or
create an account
to continue receiving notifications after this account expires, and to access other features.
Anti-spam check. Do
not
fill this in!
-- Adapted from: https://genshin-impact.fandom.com/wiki/Module:Item local p = {} local lib = require('Module:Feature') function p.main(frame) local args = require('Module:Arguments').getArgs(frame, { parentFirst = true, removeBlanks = false }) return p._main(args) end function p._main(args) local item = lib.nilIfEmpty(args[1]) or lib.nilIfEmpty(args.name) or 'Unknown' local size = lib.nilIfEmpty(args[2]) or lib.nilIfEmpty(args.size) or 30 local count = lib.nilIfEmpty(args.count) or lib.nilIfEmpty(args.x) or nil local note = lib.nilIfEmpty(args.note) or nil local ref = lib.nilIfEmpty(args.ref) or nil local typeInput = lib.nilIfEmpty(args['type']) or 'Item' local text = lib.nilIfEmpty(args.text) or item local link = args.link or lib.ternary(item == 'Unknown', '', item) local invert = lib.nilIfEmpty(args.invert) local newline = tostring(args.newline) == '1' local noText = tostring(args.no_text or args.notext) == '1' local white = tostring(args.white) == '1' local prefix = '' local suffix = ' Icon' if (typeInput ~= 'Neighbor' and item == 'Unknown') then prefix = '' suffix = ' Icon' end local invertIcon = require('Module:Item/Invert') if not invert then invert = invertIcon[item] end local invertClass = nil if invert then invert = invert:lower() if invert == 'day' or invert == 'light' then invertClass = 'day-invert-image' elseif invert == 'night' or invert == 'dark' then invertClass = 'night-invert-image' end end if (white) then suffix = suffix .. ' White' end local fileName = 'File:' .. prefix .. item .. suffix .. '.png' local class = invertClass and ('|class=' .. invertClass) or '' local file = '[[' .. fileName .. '|' .. size .. 'x' .. size .. 'px|alt=' .. item .. '|link=' .. link .. class .. ']]' local icon = nil local corner_size = math.floor(tonumber(size) / 2.5) local offset = 0 if (corner_size > 21) then offset = 0 elseif (corner_size > 8) then offset = math.floor((corner_size - 22) / 2) else offset = -6 end if (lib.isEmpty(item)) then return '' end local outerClass = lib.ternary(typeInput:lower() == 'item', 'item', 'item ' .. typeInput:lower()) local result = mw.html.create():tag('span'):addClass(outerClass) local item_image = result:tag('span') :addClass('item-image') :tag('span') :css({ width = size .. 'px', height = size .. 'px', }) :attr('data-size', size) :wikitext(file) :done() if (icon ~= nil) then item_image:tag('span'):addClass('item-icon') :css({ top = offset .. 'px', width = corner_size .. 'px', height = corner_size .. 'px' }) :attr('data-offset', offset) :attr('data-corner-size', corner_size) :wikitext(icon) end if (newline) then result:addClass('newline') result:tag('br'):addClass('hidden') end function parseAmE(a, b) local a = a or '' local b = b or '' function addPunct(var) if args.comma or args.comma_spc then var = var .. ',' elseif args.dot or args.dot_spc then var = var .. '.' end var = var :gsub('%.%.%."%s-[%.%,]$', '..."') -- no punctuation if quote ends in elipses :gsub('([%?%!])"%s-[%.%,]$', '%1"') -- no punctuation if quote ends in question or exclamation :gsub('"%s-([%.%,])$', '%1"') -- move punctuation inside quote for anything else bc AmE return var end -- needs to append to the last one with text if lib.isEmpty(b) then a = addPunct(a) else b = addPunct(b) end if args.comma_spc or args.dot_spc then b = b .. ' ' end -- space always on the very end return {a, b} end local item_text = result:tag('span'):addClass('item-text') if (not noText) then local before = newline and '' or ' ' local ame = ((count or note) and {text, ''} or parseAmE(text, '')) local label = ame[1] local after = ame[2] if (ref and not(count or note)) then after:gsub('%s*$', '') end if (lib.isEmpty(link)) then item_text:wikitext(before, label, after) else item_text:wikitext(before, '[[', link, '|', label, ']]', after) end end if (count) then count = (count:gsub(',', '')) if tonumber(count)~=nil then count = lib.thousandsSeparator(count) end count = table.concat(note and {count, ''} or parseAmE(count, ''), '') if (ref and not note) then count:gsub('%s*$', '') end item_text:wikitext((noText and '' or ' ') .. '×' .. count) end if (note) then local after = table.concat(parseAmE('', ''), '') if (ref) then after:gsub('%s*$', '') end item_text:tag('small'):wikitext(((noText and not count) and '' or ' '),'(', note, ')', after) end if (ref) then local after = (args.comma_spc or args.dot_spc) and ' ' or '' -- avoid space between ref and punctuation item_text:wikitext(ref, after) end return tostring(result); end return p
Summary:
Please note that all contributions to The Petit Planet Wiki are considered to be released under the Creative Commons Attribution-ShareAlike (see
Petit Planet Wiki:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Preview page with this template
Below are commonly used wikitext from
MediaWiki:Edittools
. Click on any to insert them in the edit box.
File Pages
==Summary==
==Licensing==
{{Fairuse}}
{{File|}}
Dynamic Page List
¦
²
«
»
²{¦}²
«»
«/»
«!----»
Array in DPL
¹
^2{
}^2
^2{¹}^2
Parser Functions
{{#if:||}}
{{#if:<condition>|<result if true>|<result if false>}}
{{#ifeq:|||}}
{{#ifeq:<text1>|<text2>|<result if text1=text2>|<result if text1≠text2>}}
{{#expr:}}
{{#expr:<mathematical expression>}}
{{#switch:||#default=}}
{{#switch:<text1>|<text2>=<result if text1=text2>|<text3>=<result if text1=text3>|#default=<result if no valid match>}}
{{#replace:||}}
{{#replace:<text1>|<plain text to find in text1>|<plain text to insert in place of the text found>}}
{{#titleparts:}}
{{#replace:<page name>}}
{{#tag:|}}
{{#tag:<name of html tag>|<content inside html tag>}}
Markup
{{}}
|
[]
[[]]
[[Category:]]
#REDIRECT [[]] [[Category:Redirect Pages]]
<code></code>
<includeonly></includeonly>
<noinclude></noinclude>
<nowiki></nowiki>
<!---->
<br>
§
Notices
{{Stub|}}
{{Stub Dialogue}}
{{Upcoming}}
{{Under Construction}}
{{Placeholder|}}
Magic Words
{{!}}
{{formatnum:}}
{{lc:}}
{{uc:}}
{{PAGENAME}}
{{FULLPAGENAME}}
{{ROOTPAGENAME}}
{{BASEPAGENAME}}
{{SUBPAGENAME}}
{{DISPLAYTITLE:|noreplace}}
__TOC__
__NOTOC__
__EXPECTUNUSEDCATEGORY__
__HIDDENCAT__
HTML Entities
—
,
­
Pages included on this page:
Template:Documentation/Header
(
edit
)
Template:Documentation/styles.css
(
edit
)
Template:T
(
edit
)
Template:TOC Right
(
edit
)
Module:Arguments
(
edit
)
Module:Arguments/i18n
(
edit
)
Module:Common/i18n
(
edit
)
Module:Config
(
edit
)
Module:Documentation
(
edit
)
Module:Documentation/config
(
edit
)
Module:Documentation/i18n
(
edit
)
Module:Entrypoint
(
edit
)
Module:Exists
(
edit
)
Module:Fallbacklist
(
edit
)
Module:Feature
(
edit
)
Module:Formatting
(
edit
)
Module:I18n
(
edit
)
Module:Item/doc
(
edit
)
Module:Languages
(
edit
)
Module:TableTools
(
edit
)
Module:Yesno
(
edit
)
This page is a member of 2 hidden categories:
Category:Pages using DynamicPageList4 parser function
Category:Pages using DynamicPageList4