Final Fantasy Wiki
Advertisement

A documentação para este módulo pode ser criada em Módulo:DialogBox/doc

local p = {}

local css = [[

/* Stylised dialogue boxes - Beta */

blockquote.dialogbox {
    background-origin: border-box;
    display: inline-block;
    position: relative;
}
 
blockquote.dialogbox::after, blockquote.dialogbox::before {
    content: "";
}
blockquote.dialogbox p::before {
    content: "“";
}
blockquote.dialogbox p::after {
    content: "”";
}
 
blockquote.dialogbox {
    background-color: #0000a8;
    color: white;
    border-style: ridge;
    border-width: 4px;
    border-color: silver;
    border-radius: 5px;
    font-family: "Lucida Console", Monaco, monospace;
    padding: .5em 1em;
}
 
blockquote.dialogbox.FFVI {
    background-color: #0000ad;
    background-image: linear-gradient(to bottom, #8484de, #000039);
    background-repeat: repeat;
    color: white;
    text-shadow: 1px 1px black;
    border-style: solid;
    border-width: 6px;
    border-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAOCAYAAAD0f5bSAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAEOSURBVHjajJAhcsMwEEWf0oBQHyFQxDOiOUJhr+AjBLqgoLmBqamhYWhgmBdkJoKiAQFhDcjMFnikyp502s+0+5/+7hpVBaDve3XOsV6vyRVCQETwIQCYervFqCohBI3mMDaT8nrX9wDmpSxL3Ww2k1/3hwNyOmEeD1arFUVRUBQF18uF6+32sbDWJqDtOgbv+axrA5jBe9quS+nWWr7udxIkIgARiDKAOR6Pk5EXAN77PCHCyXSe7bnMH++7HTmUgQbQ1KybRt+qSifFJ8p9C/4nBQjDMO60b1usc5PmXO6nP0IighehbppnoDrn9LWq8CLpwss89hcQL5I88SrJNB8jKiZExsyX/UMG4HsA0luPREJkJLwAAAAASUVORK5CYII=) 6 fill stretch;
    border-radius: 6px;
    font-family: "Lucida Sans Unicode", "Lucida Grande", sans-serif;
}
 
blockquote.dialogbox.FFVI cite {
    float: left;
}
 
blockquote.dialogbox.FFVI cite::after {
    content: ":";
    padding-right: .5em;
}
 
blockquote.dialogbox.FFVI p::before, blockquote.dialogbox.FFVI p::after {
    content: "";  
}
 
blockquote.dialogbox.FFVII {
    background-color: #0000ad;
    background-image: linear-gradient(170deg, transparent 40%, rgba(0,0,0,.5)), linear-gradient(to right, transparent 50%, rgba(0,0,0,0.3));
    background-repeat: repeat;
    color: white;
    text-shadow: 1px 1px black;
    border-style: solid;
    border-width: 7px;
    border-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAJaSURBVHjaVJPPTvJcEIefU3pqSQghoUVo1cS48V9cENNL8WpYvBsvwSvRC3DjQpbGaiLGJhQkCGqMKLQ9Pf0W5OXjPas5M/PLnPPMjCiKgvVzcXFR/PUppTAMg4eHBwaDAVdXV2I911i/dDqdQoj/461Wa2ULIQiCoAiCYOUz14W+7+N5HrZtA1CtVqlWq6RpuqxkGIxGoyIIAtHtdpfiTqdTSCnJsgzP86jX6xRFwWw2w3Vd0jTl9/eXfr+PYRhorYsgCEQJKGzbxnEcarUa39/fRFHE/f09cRwjhCDPc0zTZLFYoJQiyzLyPP9jKqUQQuC6LuVymTAMiaKIwWBApVJBCMHW1ha+7/P5+cl8PmcymSxhrgObz+fEccx4PEZrTa/XQ2vNeDxmNBrhOA6e52Ga5r/AABaLBf1+n+l0ys3NzQr7+fl5USqVOD4+ZjabUSqVlgC/vr6o1+tUKhWSJKFcLvP+/v5P75+enpBSopSi2Wyyv79PlmWIs7OzwrIsDg8PabVaCCHIsowkSbi7u+Pk5ISNjQ2klAA8Pz9zfX3Nz88PZq/Xw7IsLMtCSsnR0RFKKeI45vT0lCzLaDQaWJZFGIa8vr6ilFr+WUqJZVm8vb1h2za1Wg3Xddnb21s9O0kShsMhURQxmUyQUqK1xry9vRXtdrtI0xSlFI1GA8dx2N3dJc9zpJSEYchwOOTl5YWPjw+01nS7XSH+LkG73S62t7dpNptsbm7iOA47OzvEccx0Ol21S2vN5eWlABDrW9Vutwvf99FaA3BwcMDj4+NqroGVEOC/AQAtvCXgV+XAVAAAAABJRU5ErkJggg==) 7 fill repeat;
    border-radius: 10px;
    font-family: Verdana, Geneva, sans-serif;
}
 
blockquote.dialogbox.FFVII p {
    padding-left: 1em;
    text-indent: -1em;
}
 
blockquote.dialogbox.FFVIII {
    background-image: linear-gradient(to right, #404040, #606060);
    background-repeat: repeat;
    color: #ddd;
    text-shadow: 0 0 1px black;
    border-style: solid;
    border-width: 2px;
    border-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAA/SURBVHjaXIyxDcAwDMOYoo949An+/wCNOkFnpEPRIeVIgFzdvflxA8wMVYUkbHMBn1hJAF4piST7yG0fz2cAR4EVtOgM0OcAAAAASUVORK5CYII=) 2 fill repeat;
    border-radius: 0;
    font-family: Tahoma, Geneva, sans-serif;
}
 
blockquote.dialogbox.FFVIII p {
    padding-left: .3em;
    text-indent: -.3em;
}

blockquote.dialogbox.FFIX {
    background-color: transparent;
    background-image: url(data:image/png;base64,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);
    background-repeat: repeat;
    color: #ccc;
    text-shadow: 1px 1px 1px black;
    border-style: solid;
    border-width: 5px;
    border-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAMCAYAAABWdVznAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAAChSURBVHjalJKhEoMwEAU3TEUlEpm64oiLxEbG5Q8q+VQkcUUiI+OuDgIznaZPvtk98eaUiFCmN+ZcFFnmWalS6I2R9t5iR7t3utOs20qMkRhXblc4hMA0vdT1unNOAJoaGCClDEBTA5dpAOxoq+Bd+CdVgvNeqgXnvaQtkXI6BN3pn3DO8F5mpZ7DIFpryHmf7jRnAQMoEeHRf38HOGCAzwAkc1H5EeKLzQAAAABJRU5ErkJggg==) 5 fill repeat;
    border-radius: 8px 3px;
    font-family: Verdana, Geneva, sans-serif;
}
 
blockquote.dialogbox.FFX {
    background-color: transparent;
    color: white;
    text-shadow: 2px 2px 1px black, 2px 0 1px black, 2px -2px 1px black, -2px 2px 1px black, -2px 0 1px black, -2px -2px 1px black, 0 2px 1px black, 0 -2px 1px black;
    border-style: solid;
    border-width: 0;
    border-radius: 0;
    font-family: Verdana, Geneva, sans-serif;
    padding: 0 0 0 3em;
}
 
blockquote.dialogbox.FFX cite::after {
    content: ":";
}
 
blockquote.dialogbox.FFX .p-container {
    float: right;
    margin-left: .8em;
}
 
blockquote.dialogbox.FFX p::before, blockquote.dialogbox.FFX p::after {
    content: "";
}
 
blockquote.dialogbox.FFXII {
    background-color: transparent;
    background-image: linear-gradient(to bottom, transparent .5em, rgba(0,0,0,.5) .5em);
    background-repeat: repeat;
    color: white;
    text-shadow: 0 0 2px black, 0 0 2px black, 0 0 2px black;
    border-style: solid;
    border-width: 0;
    border-radius: 0;
    font-family: Verdana, Geneva, sans-serif;
    padding: .5em 3em;
}
 
blockquote.dialogbox.FFXII p {
    padding: 0 0 0 .5em;
}
 
blockquote.dialogbox.FFXII p::before, blockquote.dialogbox.FFXII p::after {
    content: "";
}
 
blockquote.dialogbox.FFXIII {
    background-color: transparent;
    color: white;
    text-shadow: 2px 2px 1px black, 2px 0 1px black, 2px -2px 1px black, -2px 2px 1px black, -2px 0 1px black, -2px -2px 1px black, 0 2px 1px black, 0 -2px 1px black;
    border-style: solid;
    border-width: 0;
    border-radius: 0;
    font-family: Verdana, Geneva, sans-serif;
    padding: .5em 3em .5em 0;
}
 
blockquote.dialogbox.FFXIII cite {
    border-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAANCAYAAABy6+R8AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAABMSURBVHja7JCxDYBADAPv0W/CTGlYhn3i7hc0DQXlJzUnubFsKfGwTZWDBn/pgze0gNs2thmvWeGambmVlIQkgLP1U+u80hARAcAzAI2bJzFIt5XvAAAAAElFTkSuQmCC) 6 fill repeat;
    border-width: 0 0 6px;
    border-style: solid;
    padding: 0 .25em 0 3em;
}

blockquote.dialogbox.FFXIII p {
    padding: 0 0 0 2em;
    text-align: center;
}

blockquote.dialogbox.FFXIII .p-container {
    margin-top: .25em;
}
 
blockquote.dialogbox.FFXIII p::before, blockquote.dialogbox.FFXIII p::after {
    content: "";
}


blockquote.dialogbox.FFXIV {
    background-color: transparent;
    border-image: url(data:image/png;base64,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) 61 fill repeat;
    border-width: 61px;
    border-style: solid;
    color: black;
    font-family: Verdana, Geneva, sans-serif;
}

blockquote.dialogbox.FFXIV .p-container {
    margin: -45px -30px;
}

blockquote.dialogbox.FFXIV cite {
    color: white;
    text-shadow: 0 0 10px black, 0 0 10px black, 0 0 10px black, 0 0 10px black, 0 0 10px black, 0 0 10px black, 0 0 10px black, 0 0 10px black;
    position: absolute;
    top: -65px;
    left: -30px;
    font-size: larger;
}

blockquote.dialogbox.FFXIV p::before, blockquote.dialogbox.FFXIV p::after {
    content: "";
}

blockquote.dialogbox.FFXV {
    background-color: transparent;
    color: white;
    text-shadow: 2px 2px 1px black, 2px 0 1px black, 2px -2px 1px black, -2px 2px 1px black, -2px 0 1px black, -2px -2px 1px black, 0 2px 1px black, 0 -2px 1px black;
    border-style: solid;
    border-width: 0;
    border-radius: 0;
    font-family: Verdana, Geneva, sans-serif;
    padding: .5em 3em .5em 0;
}


blockquote.dialogbox.FFXV cite {
    padding: 0 0 0 0.5em;
}

blockquote.dialogbox.FFXV cite::after {
    content: " ";
    background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAANQAAAAECAYAAAD24BE3AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAIGNIUk0AAHolAACAgwAA+f8AAIDpAAB1MAAA6mAAADqYAAAXb5JfxUYAAALvSURBVHjajJZLbhQxFEWPq/qbNElIwjYYMmFTLID9ILEFJmyBNTBDSiAJ6XR3ddkMuEZXT64ES5ar7Pe17/ukUso74CPwSfMC6IFHYAck4Bp4An4DK2Ct7xOgAFn0F6LrgC1/RwI2knm0/TkwAJfAXrqOwLnRrYz+teg6rQPwCngQ3UJ8e+AMGGXLGXAvO6q9d8Ab6RzFfwtcyY+svUfgVL5eGn2WPzvZ4yNpLTor9p+Mpu53dk5D1lz6cqDP4jkafTdhRx194HWealMfbOjlcxxZ+1HnaLKS4YPGPfR6N+cl2BPluRy3dQwyqs5lg9ftmYW96GvrXSZHKqV8A94C34GvwE+B9Ao4yOGdAHyqtdOaNPdaFzq7V3DtFXxHyXKArSVjkBNnoum1VtmDguyHQF4DcSW5SwvACwVBvaiDvhfSWwzoO8noZe8r2VvEW/Vg93AQz2iAyAE8KQCnTOxH4KTG4yULmGy6/NtnNhC6XQ6WHPiHID+HICjhLE4aOv1saMgo5uux4VPLvxz8KyE5xPsm2EdjnyC/FVB5IqCbo7MLLQIZqiiPEu4gy8r6R4GpZqcTBdtOdGsBvNdag6/XrEH4JOBW4IxWqSpYTwX4tezK0lszZJW/0ffCgmQj2w7hIeaqOMl4ayZbSfbW/JtJbn28pWTVO4gzhfvxytRZsnhpEux2sCQLFp9joDnavk8HYTLb6uwngpxGMiiNyksI8qkKnAI2OvuePWNbH+6yD/eWQgLPjWDihWCKb/dcxSq1Qr0HPgCfgS/ALxl3rjZoY4FUM/cokG4M1BspfbD2bLCWaqbWqdiF1Cw/mKEV0Evtb2VLD9zovLNSnaxC1cDvVHFutHdtLeRduJi5Zm1Zt9I9l/9FwXcrmTXrzuXr4j8qTHohqSXLhLG6zcJD9wEkqfHt/s0abek40Y61gmWq5cOSWwRfbMta/L21rM9l/65ht495o42NLR+hYk/dZTzvQkvNRJfxb/8PAAAA//8DANy6Z0q4t1H4AAAAAElFTkSuQmCC);
    display: block;
    height: 4px;
    width: 212px;
    clear: both;
    position: absolute;
}

blockquote.dialogbox.FFXV p {
    padding: 0 0 0 3em;
}

blockquote.dialogbox.FFXV .p-container {
    margin-top: .25em;
}
 
blockquote.dialogbox.FFXV p::before, blockquote.dialogbox.FFXV p::after {
    content: "";
}
 
blockquote.dialogbox p {
  margin: 0 0 0 0;
}
 
blockquote.dialogbox p + p {
  margin: .6em 0 0 0;
}

/*this is at the bottom to override*/
blockquote.dialogbox.noquotes p::before, blockquote.dialogbox.noquotes p::after {
    content: "";
}



]]

--<blockquote class="dialogbox FFXII"><cite>Cloud</cite><div class="p-container"><p>I know...<br/>no one lives in the slums<br/>because they want to.</p><p>It's like this train.<br/>It can't run anywhere except<br/>where its rails take it.</p></div></blockquote>

function splitinput(str)
    --this splits an input with 2+ newLines into array items
    return mw.text.split(mw.text.trim(str, "\n"), "\n\n+")
end

function literalnewlines(str)
    --this turns a single newLine into an actual (HTML) newLine (while MW will ordinarily later
    --turn it in to a space)
    return str:gsub("\n", "<br/>")
end

function tabletopara(tbl)
    --this converts an auto-indexed table of strings into a HTML string of p elements
    return "<p>" .. table.concat(tbl, "</p><p>") .. "</p>"
end

function stylizetext(str)
    --this allows for stylizing text, converting {\[style]} into em class="[style]". default reverts to normal
    local activetag
    local out = string.gsub("{\\default}" .. str, "(%{\\(%a+)%})", function(s, a)
        local ret = ""
        a = a:lower()
        if activetag then
            ret = "</" .. activetag .. ">"
        end
        if a == "default" then
            activetag = "span"
        else
            activetag = "em"
        end
        return ret .. "<" .. activetag .. ' class="' .. a .. '-text">'
    end)
    return out .. "</" .. activetag .. ">"
end

function p.quote(frame)
    local args = frame.args
    local quote = frame.args[1]
    local speaker = frame.args[2]
    local coden = frame.args["rel"]
    
    local textpages = splitinput(quote)
    for i=1, #textpages do
        textpages[i] = stylizetext(literalnewlines(textpages[i]))
    end
    
    textpages = tabletopara(textpages)
    
    local blq = mw.html.create("blockquote")
    
    if speaker then
        if mw.text.trim(speaker, "%t%r%n%f " .. mw.text.decode("&nbsp;", true)) ~= "" then
            blq:tag("cite"):wikitext(speaker)
        end
    else
        blq:addClass("noquotes")
    end
    
    if coden then blq:addClass("dialogbox " .. coden) end
    
    blq:tag("div"):addClass("p-container"):wikitext(textpages)
    
    return blq
end

return p
Advertisement