<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mbwiki.stairwaygames.work/w/index.php?action=history&amp;feed=atom&amp;title=Module%3ADialogue</id>
	<title>Module:Dialogue - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mbwiki.stairwaygames.work/w/index.php?action=history&amp;feed=atom&amp;title=Module%3ADialogue"/>
	<link rel="alternate" type="text/html" href="https://mbwiki.stairwaygames.work/w/index.php?title=Module:Dialogue&amp;action=history"/>
	<updated>2026-04-07T16:28:28Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.3</generator>
	<entry>
		<id>https://mbwiki.stairwaygames.work/w/index.php?title=Module:Dialogue&amp;diff=5690&amp;oldid=prev</id>
		<title>Admin coral island: Created page with &quot;--| Creates dialogue definition lists --- For whatever reason, refuses to make blockquotes --- &lt;nowiki&gt; local Dialogue = {}  ---- -- Libraries and Globals ---- -- Parses invocation and template parameters, trims whitespace, and removes blanks. local getArgs = require(&#039;Dev:Arguments&#039;).getArgs  ---- -- Local Functions ---- local function makeInvokeFunc(funcName)   return function (frame)     local args = getArgs(frame, {removeBlanks = false})     return Dialogue[funcName](...&quot;</title>
		<link rel="alternate" type="text/html" href="https://mbwiki.stairwaygames.work/w/index.php?title=Module:Dialogue&amp;diff=5690&amp;oldid=prev"/>
		<updated>2023-08-04T02:45:18Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;--| Creates dialogue definition lists --- For whatever reason, refuses to make blockquotes --- &amp;lt;nowiki&amp;gt; local Dialogue = {}  ---- -- Libraries and Globals ---- -- Parses invocation and template parameters, trims whitespace, and removes blanks. local getArgs = require(&amp;#039;Dev:Arguments&amp;#039;).getArgs  ---- -- Local Functions ---- local function makeInvokeFunc(funcName)   return function (frame)     local args = getArgs(frame, {removeBlanks = false})     return Dialogue[funcName](...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;--| Creates dialogue definition lists&lt;br /&gt;
--- For whatever reason, refuses to make blockquotes&lt;br /&gt;
--- &amp;lt;nowiki&amp;gt;&lt;br /&gt;
local Dialogue = {}&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
-- Libraries and Globals&lt;br /&gt;
----&lt;br /&gt;
-- Parses invocation and template parameters, trims whitespace, and removes blanks.&lt;br /&gt;
local getArgs = require(&amp;#039;Dev:Arguments&amp;#039;).getArgs&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
-- Local Functions&lt;br /&gt;
----&lt;br /&gt;
local function makeInvokeFunc(funcName)&lt;br /&gt;
  return function (frame)&lt;br /&gt;
    local args = getArgs(frame, {removeBlanks = false})&lt;br /&gt;
    return Dialogue[funcName](args)&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
-- Public Functions&lt;br /&gt;
----&lt;br /&gt;
--% Formats dialogue between multiple speakers&lt;br /&gt;
--- Intended to replace {{Dialogue}}.  &lt;br /&gt;
--- Syntax compliant with [[wikipedia:Template:Dialogue]] &lt;br /&gt;
--- with portability and citation modifications&lt;br /&gt;
--@ frame (table) Invokes the frame from {{Dialogue}}. See [[Template:Dialogue/doc]].&lt;br /&gt;
--: (string) HTML &amp;lt;dl /&amp;gt;&lt;br /&gt;
Dialogue.main = makeInvokeFunc(&amp;#039;dialogue&amp;#039;)&lt;br /&gt;
--% &amp;amp; crafts the Dialogue definition list&lt;br /&gt;
--@ args (table) Arguments passed from Module function call &amp;lt;code&amp;gt;[.main]&amp;lt;/code&amp;gt; or other Lua Modules&lt;br /&gt;
function Dialogue.dialogue (args)&lt;br /&gt;
  local block = mw.html.create(&amp;#039;dl&amp;#039;):addClass(&amp;#039;dialogue-wrapper&amp;#039;)&lt;br /&gt;
  for i,v in ipairs(args) do&lt;br /&gt;
    local next_param = i + 1&lt;br /&gt;
    local mood_line = next_param / 2&lt;br /&gt;
      if i == 1 then &lt;br /&gt;
        if v == &amp;#039;action&amp;#039; then&lt;br /&gt;
          block:tag(&amp;#039;dd&amp;#039;)&lt;br /&gt;
          :tag(&amp;#039;small&amp;#039;):attr(&amp;#039;data-dialogue&amp;#039;,&amp;#039;action&amp;#039;)&lt;br /&gt;
          :tag(&amp;#039;u&amp;#039;)&lt;br /&gt;
          :wikitext(&amp;#039;[&amp;#039;..args[next_param]..&amp;#039;]&amp;#039;)&lt;br /&gt;
          :done():done():done()&lt;br /&gt;
        else&lt;br /&gt;
          local speaker = &lt;br /&gt;
            (args[i] and args[args[i]]) &lt;br /&gt;
            and args[args[i]]&lt;br /&gt;
            or (&lt;br /&gt;
                type(args[i]) == &amp;#039;string&amp;#039; &lt;br /&gt;
                    and mw.text.trim(args[i]):len() &amp;gt; 0&lt;br /&gt;
                ) &lt;br /&gt;
              and args[i] &lt;br /&gt;
              or nil&lt;br /&gt;
          speaker = speaker and string.format(&amp;quot;&amp;#039;&amp;#039;&amp;#039;%s&amp;#039;&amp;#039;&amp;#039;&amp;quot;, speaker)&lt;br /&gt;
          local mood = args[&amp;#039;mood&amp;#039;..mood_line] or nil&lt;br /&gt;
          mood = mood and string.format(&amp;quot;&amp;amp;nbsp;&amp;#039;&amp;#039;(%s)&amp;#039;&amp;#039;&amp;quot;, mood)&lt;br /&gt;
          if speaker or mood then&lt;br /&gt;
            block:tag(&amp;#039;dt&amp;#039;)&lt;br /&gt;
            :wikitext(&lt;br /&gt;
              (&amp;#039;%s%s&amp;#039;):format( speaker or &amp;#039;&amp;#039;, mood or &amp;#039;&amp;#039;)&lt;br /&gt;
            ):done()&lt;br /&gt;
          end&lt;br /&gt;
          if args[next_param] then&lt;br /&gt;
            block:tag(&amp;#039;dd&amp;#039;):tag(&amp;#039;q&amp;#039;)&lt;br /&gt;
            :wikitext(args[next_param])&lt;br /&gt;
            :done():done()&lt;br /&gt;
          else&lt;br /&gt;
            block:tag(&amp;#039;dd&amp;#039;):wikitext(&amp;#039;...&amp;#039;):done()&lt;br /&gt;
          end&lt;br /&gt;
        end&lt;br /&gt;
      elseif math.fmod(i, 2) == 1 then&lt;br /&gt;
        if v == &amp;#039;action&amp;#039; then&lt;br /&gt;
          block:tag(&amp;#039;dd&amp;#039;)&lt;br /&gt;
          :tag(&amp;#039;small&amp;#039;)&lt;br /&gt;
          :attr(&amp;#039;data-dialogue&amp;#039;,&amp;#039;action&amp;#039;)&lt;br /&gt;
          :tag(&amp;#039;u&amp;#039;)&lt;br /&gt;
          :wikitext(&amp;#039;[&amp;#039;..args[next_param]..&amp;#039;]&amp;#039;)&lt;br /&gt;
          :done():done():done()&lt;br /&gt;
        else&lt;br /&gt;
          local speaker = &lt;br /&gt;
            (args[i] and args[args[i]]) &lt;br /&gt;
            and args[args[i]]&lt;br /&gt;
            or (&lt;br /&gt;
                type(args[i]) == &amp;#039;string&amp;#039; &lt;br /&gt;
                    and mw.text.trim(args[i]):len() &amp;gt; 0&lt;br /&gt;
                ) &lt;br /&gt;
              and args[i] &lt;br /&gt;
              or nil&lt;br /&gt;
          speaker = speaker and string.format(&amp;quot;&amp;#039;&amp;#039;&amp;#039;%s&amp;#039;&amp;#039;&amp;#039;&amp;quot;, speaker)&lt;br /&gt;
          local mood = args[&amp;#039;mood&amp;#039;..mood_line] or nil&lt;br /&gt;
          mood = mood and string.format(&amp;quot;&amp;amp;nbsp;&amp;#039;&amp;#039;(%s)&amp;#039;&amp;#039;&amp;quot;, mood)&lt;br /&gt;
          if speaker or mood then&lt;br /&gt;
            block:tag(&amp;#039;dt&amp;#039;)&lt;br /&gt;
            :wikitext(&lt;br /&gt;
              (&amp;#039;%s%s&amp;#039;):format( speaker or &amp;#039;&amp;#039;, mood or &amp;#039;&amp;#039;)&lt;br /&gt;
            )&lt;br /&gt;
            :done()&lt;br /&gt;
          end&lt;br /&gt;
          if args[next_param] ~= &amp;#039;&amp;#039; then&lt;br /&gt;
            block:tag(&amp;#039;dd&amp;#039;):tag(&amp;#039;q&amp;#039;)&lt;br /&gt;
            :wikitext(args[next_param])&lt;br /&gt;
            :done():done()&lt;br /&gt;
          else&lt;br /&gt;
            block:tag(&amp;#039;dd&amp;#039;):wikitext(&amp;#039;...&amp;#039;):done()&lt;br /&gt;
          end&lt;br /&gt;
        end&lt;br /&gt;
      end&lt;br /&gt;
  end&lt;br /&gt;
  block:done()&lt;br /&gt;
  if args[&amp;#039;cite&amp;#039;] then&lt;br /&gt;
    block:tag(&amp;#039;cite&amp;#039;):wikitext(string.format(&amp;quot;— %s&amp;quot;, args[&amp;#039;cite&amp;#039;])):done()&lt;br /&gt;
  end&lt;br /&gt;
  return tostring(block)&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
-- Output&lt;br /&gt;
----&lt;br /&gt;
return Dialogue&lt;/div&gt;</summary>
		<author><name>Admin coral island</name></author>
	</entry>
</feed>