Module:Gutenberg

local p = {} function p.author(frame) local pframe = frame:getParent local args = pframe.args local tname = "Gutenberg author" -- name of calling template. Change if template is renamed. local id      = nil -- author name, or author number. The later will go direct to the author page, the former to a search results page. local name    = nil -- display name on Wikipedia (default: article title) local url     = nil local tagline = "at Project Gutenberg" local urlheadname = "http://www.gutenberg.org/author/"          -- SSL problems with certain browsers. See Template_talk:Gutenberg_author local urlheadnumb = "http://www.gutenberg.org/ebooks/author/" local urlhead = nil

id = trimArg(args[1]) or trimArg(args.id) if not id then error("Parameter id is missing. See Template:" .. tname .. " documentation") else if tonumber(id) then -- it's a number urlhead = urlheadnumb else urlhead = urlheadname end end

name = trimArg(args[2]) or trimArg(args.name) if not name then name = mw.title.getCurrentTitle.text:gsub('%s+%([^%(]-%)$', '') -- Current page name without the final parentheses end

url = "[" .. urlhead .. id .. " Works by " .. name .. "] " .. tagline

return url

end

function trimArg(arg)

if arg == "" or arg == nil then return nil else return mw.text.trim(arg) end

end

return p