Home
Random
Log in
Settings
About Brighter Shores Wiki
Disclaimers
Search
Editing
Module:Param Parse
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
--[=[ -- Standardized functions to parse Infobox params --]=] -- <nowiki> local Infobox = require('Module:Infobox') local parse = {} -- Generic functions -- ----------------------- -- Standardized "has content" function function parse.has_content(arg) -- Return arg if any non-whitespace character is found return string.match(arg or '', '%S') and arg or nil end -- Standardized numbers function parse.number(num) num = string.gsub(num or '',',','') return tonumber(num) end -- Yes/No local yes_no = { ['Yes'] = 'true', ['No'] = 'false', ['N/A'] = 'NIL', } function parse.yes_no(text) if yes_no[text] ~= nil then return text end return nil end function parse.yes_no_smw(text) if text == 'N/A' then return nil end local bool = yes_no[text] if bool ~= nil then return bool end return nil end -- Premade Params -- -------------------- -- Standardized name function parse.name = { name = 'name', func = parse.has_content, smw_property = 'Name', category_incomplete = 'Needs name', } -- Standardized examine function parse.examine = { name = 'examine', func = parse.has_content, smw_property = 'Examine', category_incomplete = 'Needs examine', } -- Standardized image function function parse.image_name(img) if img then return string.match(img, '%[%[(File:.+%.%w%w%w)|?%d*x?%d*p?x?%]%]') end return nil end function parse.image_height(img, default) if img then return string.match(img, '%[%[File:.+%.%w%w%w|%d*x(%d*)px%]%]') or default end return default end function parse.image_width(img, default) if img then return string.match(img, '%[%[File:.+%.%w%w%w|(%d*)x?%d*px%]%]') or default end return default end function parse.image_func(img, default_width, default_height) local name = parse.image_name(img) local width = parse.image_width(img, default_width) local height = parse.image_height(img, default_height) local size = '' if width and height then size = '|'..width..'x'..height..'px' elseif width then size = '|'..width..'px' elseif height then size = '|x'..height..'px' end if name then return '[['..name..size..']]' end return nil end function parse.image_smw(img) return parse.image_name(img) end parse.image = { name = 'image', func = parse.image_func, smw_property = 'Image', smw_func = parse.image_smw, empty = '[[Special:Upload|Please upload an image!]]', category_incomplete = 'Needs image', } parse.image_size300 = { name = 'image', func = {name = parse.image_func, params = {Infobox.raw_param('image'), 300, 300}}, smw_property = 'Image', smw_func = parse.image_smw, empty = '[[Special:Upload|Please upload an image!]]', category_incomplete = 'Needs image', } -- Episode local valid_episodes = { ['hopeport'] = 'Hopeport', ['hopeforest'] = 'Hopeforest', ['mine of mantuban'] = 'Mine of Mantuban', ['crenopolis'] = 'Crenopolis' } function parse.episode_func(episode) local valid_episode = valid_episodes[string.lower(episode or '')] if valid_episode then return '[[File:'..valid_episode..' episode icon.png|18px]] [['..valid_episode..']]' end return nil end function parse.episode_smw(episode) local valid_episode = valid_episodes[string.lower(episode or '')] if valid_episode then return valid_episode end return nil end parse.episode = { name = 'episode', func = parse.episode_func, smw_property = 'Episode', smw_func = parse.episode_smw, category_incomplete = 'Needs episode', } -- Premium parse.premium = { name = 'premium', func = parse.yes_no, smw_property = 'Premium', smw_func = parse.yes_no_smw, category_incomplete = 'Needs premium status', } -- Release (TODO) parse.release = { name = 'release', func = parse.has_content, } -- Profession (TODO) parse.profession = { name = 'profession', func = parse.has_content, category_incomplete = 'Needs profession', smw_property = 'Profession' -- TODO - Need to create property page } parse.variant = { name = 'variant', func = parse.has_content, category_incomplete = 'Needs variant details', smw_property = 'Variant of' -- TODO - Need to create property page } parse.passive = { name = 'passive', func = parse.yes_no, smw_property = 'Passive', smw_func = parse.yes_no_smw, category_incomplete = 'Needs passiveness' } return parse -- </nowiki>
Summary:
Please note that all contributions to Brighter Shores Wiki are considered to be released under the CC BY-NC-SA 3.0 (see
Brighter Shores: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
Templates used on this page:
Template:Documentation
(
edit
)
Template:Extension DPL
(
edit
)
Module:Array
(
edit
)
Module:DPLlua
(
edit
)
Module:DependencyList
(
edit
)
Module:Documentation
(
edit
)
Module:Infobox
(
edit
)
Module:Infobox Episode
(
edit
)
Module:Infobox Interactable
(
edit
)
Module:Infobox Item
(
edit
)
Module:Infobox Location
(
edit
)
Module:Infobox Monster
(
edit
)
Module:Infobox NPC
(
edit
)
Module:Infobox Profession
(
edit
)
Module:Infobox Scenery
(
edit
)
Module:Infobox Shop
(
edit
)
Module:Param Parse
(
edit
)
Module:Param Parse/doc
(
edit
)
Module:Paramtest
(
edit
)
Module:Tooltip
(
edit
)
Module:Yesno
(
view source
) (semi-protected)
This page is a member of a hidden category:
Category:Pages using DynamicPageList3 parser function