Module:Small scan link

-- Implements Template:Small scan link require('strict')

local p = {} --p stands for package

local getArgs = require('Module:Arguments').getArgs

-- simple function to make a link to a give index page local function index_link(index, display) return "" .. display .. "" end

-- get the n'th link in the args, including name if given local function get_link(args, n)	local display = n	local argname = 'name' .. n	if args[argname] ~= nil then display = args[argname] end

return index_link(args[n], display) end

--[=[ Return a formatted small scan link Args: 1,2,3....       : The index pages to link to   name1, name2, ...: Display text for corresponding index page ]=] function p._small_scan_link(args) local s = ''

if args[1] == nil then error("At least an Index page is required", 0) end if args[2] == nil then -- single argument

local target = args[1] local link_text = "" -- use the provided name if there is one if args['name1'] ~= nil then link_text = args['name1'] else -- name based on existance of target if mw.title.new("Index:" .. target).exists then link_text = "transcription project" else link_text = "start transcription" end end s = index_link(target, link_text) else -- multiple positional args

local i = 1 s = "transcription volumes: " -- iterate positional parameters while args[i] ~= nil do s = s .. get_link(args, i)			i = i + 1 if args[i] ~= nil then s = s .. ", "			end end end

return "(" .. s .. ") " end

function p.small_scan_link(frame) local args = getArgs(frame) return p._small_scan_link(args) end

return p