×
Create a new article
Write your page title here:
We currently have 69 articles on Super Shiritori Wiki. Type your article name above or click on one of the titles below and start writing!



Super Shiritori Wiki
Revision as of 01:42, 27 January 2026 by imported>BlankEntity (Created page with "-- Cannot unsubst if not currently being substed. if not mw.isSubsting() then local frame_title = mw.getCurrentFrame():getTitle() -- If another module is calling this one, throw an error. if frame_title ~= "Module:unsubst" then error(("%s should not require Module:unsubst unless mw.isSubsting() returns true"):format(frame_title)) end -- Otherwise, enable {{#invoke:unsubst|me|...}}. local export = {} local process_params = require("Module:parameters")...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Welcome to Super-Shiritori!

Please remember:

  • No vandalism – Do not add nonsense, false info, spam, or blank pages.
  • Respect others – Be polite and assume good faith.
  • Use reliable information – Make sure edits are accurate and IMPORTANT.
  • Stay constructive – Help us grow the wiki with content, especially with the Word compendium.

⚠️ Repeated vandalism or rule-breaking may result in warnings or blocks. If you see vandalism, please revert it and notify an admin.

Documentation for this module may be created at Module:Unsubst/doc

-- Cannot unsubst if not currently being substed.

if not mw.isSubsting() then
	local frame_title = mw.getCurrentFrame():getTitle()

	-- If another module is calling this one, throw an error.
	if frame_title ~= "Module:unsubst" then
		error(("[[%s]] should not require [[Module:unsubst]] unless mw.isSubsting() returns true"):format(frame_title))
	end

	-- Otherwise, enable {{#invoke:unsubst|me|...}}.
	local export = {}

	local process_params = require("Module:parameters").process

	function export.me(frame)
		return process_params(frame.args, {
			[""] = true
		})[""]
	end

	return export
end

local m_pages = require("Module:pages")
local m_template_parser = require("Module:template parser")

local build_template = m_template_parser.buildTemplate
local concat = table.concat
local is_internal_title = m_pages.is_internal_title
local new_title = mw.title.new

local function get_title(frame)
	local title = new_title(frame:getTitle())
	return is_internal_title(title) and title or
		-- This shouldn't happen.
		error("frame returned an invalid title")
end

local function serialize(title, args)
	return "{{" .. concat(build_template(title, args), "|") .. "}}"
end

local mt = {}

if m_pages.is_transcluded() then
	local get_template_invocation_name = m_template_parser.getTemplateInvocationName

	function mt:__index(entry_point)
		return function(frame)
			frame = frame:getParent()
			return serialize(get_template_invocation_name(get_title(frame)), frame.args)
		end
	end
else
	function mt:__index(entry_point)
		return function(frame)
			local title = get_title(frame)
			return title.namespace == 828 and
				(serialize(("safesubst:<noinclude/>#invoke:%s|%s"):format(title.text, entry_point), frame.args)) or
				-- This shouldn't happen.
				error(("[[Module:unsubst]] cannot work if the current frame is not in the %s namespace, because the #invoke magic word requires it"):format(mw.site.namespaces[828].canonicalName))
		end
	end
end

return setmetatable({}, mt)