Module:Gutenberg/sandbox: Difference between revisions
Appearance
Content deleted Content added
mNo edit summary |
mNo edit summary |
||
Line 108: | Line 108: | ||
local url = nil |
local url = nil |
||
local urlhead = "http://fadedpage.com/" |
local urlhead = "http://fadedpage.com/" |
||
local urlbook = "showbook.php?pid=" |
|||
local urlauth = "csearch.php?author=" |
|||
local prefix = "" |
local prefix = "" |
||
local tagline = "at [[Distributed Proofreaders Canada|Faded Page]]" |
local tagline = "at [[Distributed Proofreaders Canada|Faded Page]]" |
||
Line 131: | Line 133: | ||
prefix = "Works by " |
prefix = "Works by " |
||
italic = "" |
italic = "" |
||
⚫ | |||
return url |
|||
end |
end |
||
end |
end |
||
url = "[" .. urlhead .. urlbook .. id .. " " .. prefix .. italic .. name .. italic .. "] " .. tagline |
|||
-- Argument |coda= |
|||
if trimArg(args.coda) then |
|||
tagline = tagline .. " " .. trimArg(args.coda) |
|||
end |
|||
⚫ | |||
return url |
return url |
Revision as of 16:28, 29 January 2017
![]() | This is the module sandbox page for Module:Gutenberg (diff). |
![]() | This module is rated as beta, and is ready for widespread use. It is still new and should be used with some caution to ensure the results are as expected. |
![]() | This module is subject to page protection. It is a highly visible module in use by a very large number of pages, or is substituted very frequently. Because vandalism or mistakes would affect many pages, and even trivial editing might cause substantial load on the servers, it is protected from editing. |
![]() | This Lua module is used on approximately 12,000 pages and changes may be widely noticed. Test changes in the module's /sandbox or /testcases subpages, or in your own module sandbox. Consider discussing changes on the talk page before implementing them. |
This module uses the Wikidata property:
Usage
There are currently 3 templates that invoke this module, {{Gutenberg author}}
, {{Gutenberg Australia}}
and {{FadedPage}}
(Canada)
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 number. Name goes to search page, number goes direct to author 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#https_problem]]
local urlheadnumb = "http://www.gutenberg.org/ebooks/author/"
local urlhead = nil
-- Argument |id=
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
id = mw.ustring.gsub(id," ", "+")
end
end
-- Argument |name=
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
-- Argument |coda=
if trimArg(args.coda) then
tagline = tagline .. " " .. trimArg(args.coda)
end
url = "[" .. urlhead .. id .. " Works by " .. name .. "] " .. tagline
return url
end
function p.Australia(frame)
local pframe = frame:getParent()
local args = pframe.args
local tname = "Gutenberg Australia" -- name of calling template. Change if template is renamed.
local id = nil -- ID. eg. http://gutenberg.net.au/plusfifty-n-z.html#shanks .. the ID = plusfifty-n-z.html#shanks
-- ID is the same for linking an individual book title, or all books by the author.
local name = nil -- display name on Wikipedia (default: article title)
local author = nil -- flag if an author (default: no)
local url = nil
local urlhead = "http://gutenberg.net.au/"
local prefix = ""
local tagline = "at [[Project Gutenberg Australia]]"
local italic = "''"
-- Argument |id=
id = trimArg(args[1]) or trimArg(args.id)
if not id then
error("Parameter id is missing. See [[Template:" .. tname .. "]] documentation")
end
-- Argument |name=
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
-- Argument |author=
author = trimArg(args.author)
if author then
if mw.ustring.lower(author) == "yes" then
prefix = "Works by "
italic = ""
end
end
-- Argument |coda=
if trimArg(args.coda) then
tagline = tagline .. " " .. trimArg(args.coda)
end
url = "[" .. urlhead .. id .. " " .. prefix .. italic .. name .. italic .. "] " .. tagline
return url
end
function p.Canada(frame)
local pframe = frame:getParent()
local args = pframe.args
local tname = "FadedPage" -- name of calling template. Change if template is renamed.
local id = nil -- ID. eg. http://gutenberg.net.au/plusfifty-n-z.html#shanks .. the ID = plusfifty-n-z.html#shanks
-- ID is the same for linking an individual book title, or all books by the author.
local name = nil -- display name on Wikipedia (default: article title)
local author = nil -- flag if an author (default: no)
local url = nil
local urlhead = "http://fadedpage.com/"
local urlbook = "showbook.php?pid="
local urlauth = "csearch.php?author="
local prefix = ""
local tagline = "at [[Distributed Proofreaders Canada|Faded Page]]"
local italic = "''"
-- Argument |id=
id = trimArg(args[1]) or trimArg(args.id)
if not id then
error("Parameter id is missing. See [[Template:" .. tname .. "]] documentation")
end
-- Argument |name=
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
-- Argument |author=
author = trimArg(args.author)
if author then
if mw.ustring.lower(author) == "yes" then
--id = urlencode(id)
prefix = "Works by "
italic = ""
url = "[" .. urlhead .. urlauth .. id .. " " .. prefix .. italic .. name .. italic .. "] " .. tagline
return url
end
end
url = "[" .. urlhead .. urlbook .. id .. " " .. prefix .. italic .. name .. italic .. "] " .. tagline
return url
end
function urlencode(str)
if (str) then
str = string.gsub (str, "\n", "\r\n")
str = string.gsub (str, "([^%w ])",
function (c) return string.format ("%%%02X", string.byte(c)) end)
str = string.gsub (str, " ", " ")
end
return str
end
function trimArg(arg)
if arg == "" or arg == nil then
return nil
else
return mw.text.trim(arg)
end
end
return p