This module stores information about commonly referenced Tumblr accounts, and retrieves that information when provided a URL from a known Tumblr account.
You should not need to use this module directly. {{EzTumblr}} uses this module to simplify {{TumblrRef}}.
If you find that you are often referencing a Tumblr not known by this module, feel free to edit the table at the top. Please be careful to match the syntax used.
local Ez = {}
-- Editors: make sure to carefully copy syntax, including the comma at the end of any new entry
Ez.tumblrs = {
-- WotC staff
["markrosewater"] = { author = "Mark Rosewater", title = "Blogatog" },
["dougbeyermtg"] = { author = "Doug Beyer", title = "A Voice for Vorthos" },
["tabakrules"] = { author = "Matt Tabak", title = "Snarkham Asylum" },
["wizardsmagic"] = { author = "WotCStaff", title = "The Official Magic: The Gathering Tumblr" },
-- Other notable MtG tumblrs
["vorthosjay"] = { author = "Jay Annelli", title = "Archive Trap Mini" },
}
-- Match the bit between the double-slash and the first period in the given URL
function Ez.getAuthor(frame)
local tumblrAddress = frame.args[1]
local subdomain = tumblrAddress:match("^%w+://([^%.]+)")
return Ez.tumblrs[subdomain].author
end
function Ez.getTitle(frame)
local tumblrAddress = frame.args[1]
local subdomain = tumblrAddress:match("^%w+://([^%.]+)")
return Ez.tumblrs[subdomain].title
end
-- Generates a title for the post if not provided and the editor left the human-readable tail on the URL
function Ez.createPostTitle(frame)
local tumblrAddress = frame.args[1]
if not tumblrAddress:find("%w$") then return mw.html.create("span"):addClass("scribunto-error"):wikitext("No title in template or URL") end
local tail = tumblrAddress:match("/([%w%-]+)$")
tail = tail:gsub("^%l", string.upper)
tail = tail:gsub("%-", " ") .. "..."
return tail
end
return Ez