| https://akurasu.net/downloads/Mazin_head.png | Come hang out with us in the Discord server.
Account creation is disabled due to spam. If you want to help out on the Wiki, poke us in on our Discord server in #wiki. Please consider supporting the site with the PlayAsia referral links here or via the donate buttons in the sidebar, it really does help. | https://akurasu.net/downloads/Flonne_cheer.png |
Module:TextReplacer
From Akurasu
Jump to navigationJump to search
Documentation for this module may be created at Module:TextReplacer/doc
--[[
Module:Example
This module provides a function to perform text replacements on a specified page
using a template replacement table defined in a separate page.
Usage: {{#invoke:Example|main|BasicPage=OriginalPage|ReplaceList=ReplacementsTable}}
Parameters:
- BasicPage: The name of the page on which the text replacements should be performed.
- ReplaceList: The name of the page containing the replacement table.
Replacement Table Format:
The replacement table should be defined in the following format:
`Key1`||Replacement1;
`Key2`||Replacement2;
...
- Each line represents a single replacement entry.
- The key and replacement value are separated by "||".
- The key should be enclosed in backticks (`).
- The replacement value can contain wikitext formatting.
- Each line should end with a semicolon (;).
- Empty lines are ignored.
Example Replacement Table:
`A`||'''Apple''';
`B`||''Banana'';
`C`||Carrot;
]]
local p = {}
function p.main(frame)
local args = frame.args
local BasicPage = frame.args['BasicPage']
local ReplaceList = frame.args['ReplaceList']
if not BasicPage then
return "Error: BasicPage parameter is missing."
end
if not ReplaceList then
return "Error: ReplaceList parameter is missing."
end
local replaceTable = {}
local replaceContent = frame:expandTemplate{title = ReplaceList}
for line in replaceContent:gmatch("[^\n]+") do
local key, value = line:match("(`[^`]+`)||([^;]+)")
if key and value then
key = mw.text.trim(key)
value = mw.text.trim(value)
replaceTable[key] = value
end
end
local page = mw.title.new(BasicPage)
if page then
local pageContent = page:getContent()
if pageContent then
-- Perform text replacements based on replaceTable
for key, value in pairs(replaceTable) do
pageContent = pageContent:gsub(key, value)
end
return pageContent
else
return "Page " .. BasicPage .. " exists but has no content."
end
else
return "Page " .. BasicPage .. " does not exist."
end
end
return p