No edit summary Tag: sourceedit |
No edit summary Tag: sourceedit |
||
Line 99: | Line 99: | ||
for _,v in ipairs( raw_table ) do |
for _,v in ipairs( raw_table ) do |
||
if (not hash[v] and v ~= '') then |
if (not hash[v] and v ~= '') then |
||
− | table.insert( unique_results, v ) |
+ | table.insert( unique_results, v:trim() ) |
hash[v] = true |
hash[v] = true |
||
end |
end |
Revision as of 19:21, 12 August 2017
Lua error in Dev:Docbunto at line 609: attempt to concatenate local 'item_name' (a nil value).
-- HF stands for High Frequency.
-- This Module augments the built-in HF
local HF = mw.InfoboxBuilderHF
----------------------------
-- Libraries of functions --
----------------------------
-----------------------
-- Libraries of data --
-----------------------
------------------------------------------------
-- Local functions (used only in this Module) --
------------------------------------------------
----------------------------------------------------------
-- Public functions (called from a Template or article) --
----------------------------------------------------------
---------------------------------------------------------
-- Internal functions (used in this and other Modules) --
---------------------------------------------------------
-- eliminates whitespace from the front and back of a string
function HF.trim(s)
if type(s) == 'string' then
return (s:gsub("^%s*(.-)%s*$", '%1'))
else
return false
end
end
-- This creates an external link.
function HF.ExternalLink( target, label, plain )
local output = string.format('[%s %s]', target, label)
if plain == true then
output = string.format('<span class="plainlinks">%s</span>', output)
end
return output
end
-- This creates a link to a category, as well as placing it in that category.
-- `sortkey` and `label` are optional
-- If there's no `label` given, it will only place it in the category,
-- which is what HF.Category is for.
function HF.CategoryLink( category, sortkey, label )
if not HF.isempty( label ) then
return HF.LinkToCategory( category, label ) ..
HF.Category( category, sortkey )
else
return HF.Category( category, sortkey )
end
end
-- Adds a Category
-- `sortkey` is optional
function HF.Category( category, sortkey )
if sortkey == nil then sortkey = '' else sortkey = '|' .. sortkey end
return string.format('[['..'Category:%s%s]]', category, sortkey)
end
-- Adds a link to a Category
function HF.LinkToCategory( category, label )
return string.format('[[:'..'Category:%s|%s]]', category,
label or 'Category:' .. category )
end
-- Adds an internal link
-- `label` is optional
function HF.Link( link, text )
if not HF.isempty( text ) then
return string.format('[['..'%s|%s]]', link, text)
else
return string.format('[['..'%s]]', link)
end
end
-- Adds a SMW inline property
-- `label` is optional
function HF.SMWP( property, value, label )
if label and (#label > 0) then
return string.format('[['..'%s::%s|%s]]', property, value, label )
elseif type(label) == 'string' and ((#label == 0) or label == ' ')then
return string.format('[['..'%s::%s| ]]', property, value )
else
return string.format('[['..'%s::%s]]', property, value)
end
end
-- Normalize page name
function HF.NP( title )
title = title or mw.title.getCurrentTitle().text
clear = title:gsub( '"', '\"'):gsub('&','&'):gsub(''', "\'"):gsub('=', '=')
return clear
end
-- Unique table items
function HF.unique( raw_table )
local hash = {}
local unique_results = {}
for _,v in ipairs( raw_table ) do
if (not hash[v] and v ~= '') then
table.insert( unique_results, v:trim() )
hash[v] = true
end
end
return unique_results
end
-------------------------------------------------
-- Output (send it back to whatever called it) --
-------------------------------------------------
return HF