Module:StoryLine: Difference between revisions

From The Unofficial Isekai:Slow Life Wiki
Jump to navigation Jump to search
(Created page with "local p = {} function p.render(frame) local args = frame:getParent().args local actorNPC = args.actorNPC local actorAlias = args.actorAlias local actorLink = args.actorLink local actor = args.actor local line = args.line or "" local speaker = "" if actorNPC and actorNPC ~= "" then speaker = actorNPC elseif actorAlias and actorAlias ~= "" and actorLink and actorLink ~= "" then speaker = '' .. actorAlias .. '' elseif actorAlias and...")
 
mNo edit summary
Line 3: Line 3:
function p.render(frame)
function p.render(frame)
local args = frame:getParent().args
local args = frame:getParent().args
local actorNPC = args["actorNPC"]
local actorAlias = args["actorAlias"]
local actorLink = args["actorLink"]
local actor = args["actor"]
local line = args["line"] or ""


local actorNPC = args.actorNPC
local actorText = ""
local actorAlias = args.actorAlias
local actorLink = args.actorLink
local actor = args.actor
local line = args.line or ""


local speaker = ""
if actorNPC then
 
actorText = actorNPC
if actorNPC and actorNPC ~= "" then
elseif actorAlias and actorLink then
speaker = actorNPC
actorText = string.format('[[%s|%s]]', actorLink, actorAlias)
elseif actorAlias and actorAlias ~= "" and actorLink and actorLink ~= "" then
elseif actor then
speaker = '[[' .. actorLink .. '|' .. actorAlias .. ']]'
actorText = string.format('[[%s]]', actor)
elseif actorAlias and actorAlias ~= "" then
speaker = actorAlias
elseif actor and actor ~= "" then
speaker = '[[' .. actor .. ']]'
end
end


local output = '{| class="wikitable" style="width: 100%;"\n'
return string.format([[
output = output .. '|-\n'
<div style="display: flex; margin: 2px 0;">
output = output .. '| style="width: 100px; text-align: center;" | ' .. speaker .. '\n'
  <div style="width: 100px; text-align: center;">%s</div>
output = output .. '| style="font-weight: bold;" | ' .. line .. '\n'
  <div style="flex: 1;"><b>%s</b></div>
output = output .. '|}'
</div>
 
]], actorText, line)
return output
end
end


return p
return p

Revision as of 20:40, 5 July 2025

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

local p = {}

function p.render(frame)
	local args = frame:getParent().args
	local actorNPC = args["actorNPC"]
	local actorAlias = args["actorAlias"]
	local actorLink = args["actorLink"]
	local actor = args["actor"]
	local line = args["line"] or ""

	local actorText = ""

	if actorNPC then
		actorText = actorNPC
	elseif actorAlias and actorLink then
		actorText = string.format('[[%s|%s]]', actorLink, actorAlias)
	elseif actor then
		actorText = string.format('[[%s]]', actor)
	end

	return string.format([[
<div style="display: flex; margin: 2px 0;">
  <div style="width: 100px; text-align: center;">%s</div>
  <div style="flex: 1;"><b>%s</b></div>
</div>
]], actorText, line)
end

return p