Difference between revisions of "Module:Ruler"

From The Kingkiller Chronicle Wiki
Jump to navigation Jump to search
(Try to unlink {{{ruler}}})
(Updated version by Becasita <3)
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
 
-- <nowiki>
 
-- <nowiki>
 
local p = {}
 
local p = {}
 +
 +
local function unlink( v )
 +
    return mw.text.trim( v:match( '%[%[:?(.-)[|%]]' ) or v )
 +
end
  
 
function p.ruler(frame)
 
function p.ruler(frame)
 
     local lines = mw.text.split(frame.args[1], '*')
 
     local lines = mw.text.split(frame.args[1], '*')
     local result = ''
+
     local result = {}
 +
 
 
     for k, v in ipairs(lines) do
 
     for k, v in ipairs(lines) do
 
         v = mw.text.trim(v)
 
         v = mw.text.trim(v)
         if v ~= '' then
+
 
             result = result .. '[[Category:Locations ruled by ' .. v .. ']]'
+
         if v ~= '' and not v:lower():match( '^n/?a$' ) then
 +
             table.insert( result, '[[Category:Locations ruled by ' .. unlink( v ) .. ']]' )
 
         end
 
         end
 
     end
 
     end
    return result
 
end
 
  
function p.unlink( frame )
+
     return table.concat( result )
    local args = frame:getParent().args
 
     return args[1] and ( args[1]:match( '%[%[:?(.-)[|%]]' ) or text.trim( args[1] ) )
 
 
end
 
end
  
 
return p
 
return p
 
-- </nowiki>
 
-- </nowiki>

Latest revision as of 03:43, 1 January 2019

Documentation for this module may be created at Module:Ruler/doc

-- <nowiki>
local p = {}

local function unlink( v )
    return mw.text.trim( v:match( '%[%[:?(.-)[|%]]' ) or v )
end

function p.ruler(frame)
    local lines = mw.text.split(frame.args[1], '*')
    local result = {}

    for k, v in ipairs(lines) do
        v = mw.text.trim(v)

        if v ~= '' and not v:lower():match( '^n/?a$' ) then
            table.insert( result, '[[Category:Locations ruled by ' .. unlink( v ) .. ']]' )
        end
    end

    return table.concat( result )
end

return p
-- </nowiki>