モジュール:Gutenberg/sandbox

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  = "- プロジェクト・グーテンベルク"
local urlheadname  = "https://www.gutenberg.org/author/"          
local urlheadnumb  = "https://www.gutenberg.org/ebooks/author/" 
local urlhead  = nil
-- Argument |id=
id = trimArg(args1) or trimArg(args.id)
if not id then
local bestP1938 = mw.wikibase.getBestStatements(mw.wikibase.getEntityIdForCurrentPage(), 'P1938')1
if bestP1938 and bestP1938.mainsnak.snaktype == 'value' then
id = bestP1938.mainsnak.datavalue.value
local entity = mw.wikibase.getEntityObject() or {}
tagline = tagline .. " ウィキデータで編集" 
else
error("idの指定がありません。Template:" .. tname .. "の解説文を参照してください。")
end
end 
if tonumber(id) then -- it's a number
urlhead = urlheadnumb
else
urlhead = urlheadname
id = mw.ustring.gsub(id," ", "+")
end
-- Argument |name=
name = trimArg(args2) 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 .. " " .. 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  = "- プロジェクト・グーテンベルク・オーストラリア"
local italic   = ""
-- Argument |id=
id = trimArg(args1) or trimArg(args.id)
if not id then
error("idの指定がありません。Template:" .. tname .. "のドキュメントを参照してください。")
end 
-- Argument |name=
name = trimArg(args2) 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 = ""
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 for author, eg. http://fadedpage.com/csearch.php?author=Shortt%2C%20Adam .. the id = Shortt, Adam
-- ID for book titles, eg. http://fadedpage.com/showbook.php?pid=20160704 .. the id = 20160704
local name     = nil                                             -- display name on Wikipedia (default: article title)
local author   = nil                                             -- flag if an author (default: no)
local url      = nil
local urlhead  = "https://fadedpage.com/"
local urlbook  = "showbook.php?pid="
local urlauth  = "csearch.php?author="
local prefix   = ""
local tagline  = "- Faded Page (Canada)"
local italic   = ""
-- Argument |id=
id = trimArg(args1) or trimArg(args.id)
if not id then
error("idの指定がありません。Template:" .. tname .. "のドキュメントを参照してください。")
end 
-- Argument |name=
name = trimArg(args2) 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 = mw.uri.encode( id, "PATH" )                                -- handle spaces within id argument string
prefix = ""
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 trimArg(arg)
if arg == "" or arg == nil then
return nil
else
return mw.text.trim(arg)
end
end
return p