User:GreenC/software/books and writers.lua

local p = {}
function p.externallink(frame)
  
  local pframe = frame:getParent()
  local args = pframe.args
  
  local tname = "Books and Writers" -- name of calling template. Change if template is renamed.
 
  local id      = nil -- author ID
  local name    = nil -- display name (default: article title)
  local url     = nil
--  local urlhead = "https://web.archive.org/web/20130704043115/http://www.kirjasto.sci.fi/"
--  local urlhead = "https://greencardamom.github.io/BooksAndWriters/"
  local urlhead = "http://authorscalendar.info/"
--  local deadurl = "http://www.kirjasto.sci.fi/"

  id = trimArg(args.id) or trimArg(args[1])
  if not id then
    error("Error in Template:" .. tname .. " - id missing - please see documentation for [[Template:" .. tname .. "]]")
  end 

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

  url = "Petri Liukkonen. [" .. urlhead .. id .. ".htm \"" .. name .. "\"]. ''Books and Writers''"

  return url
 
end

function trimArg(arg)

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

end
 
return p