Content added Content deleted
(Created page with "local getArgs = require('Module:Arguments').getArgs local utils = require('Module:Utilities') local data = mw.loadData('Module:StoryDialogue/data') local p = {} local function get_name(characters, name) if name and name ~= '' then return name end return mw.text.listToText(characters, ', ', ' & ') end local function line_break(line) if line and line ~= '' then return table.concat(mw.text.split(line, "\n"), "<br>") end return line end function...") |
mNo edit summary |
||
(18 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
local getArgs = require('Module:Arguments').getArgs |
local getArgs = require('Module:Arguments').getArgs |
||
local |
local data = mw.loadData('Module:Dialogue/data') |
||
local data = mw.loadData('Module:StoryDialogue/data') |
|||
local p = {} |
local p = {} |
||
Line 24: | Line 23: | ||
local args = getArgs(frame) |
local args = getArgs(frame) |
||
local characters = |
local characters = mw.text.split(args['character'] or '', ',') |
||
local character_color = '#868686' |
local character_color = '#868686' |
||
Line 30: | Line 29: | ||
for i,v in pairs(characters) do |
for i,v in pairs(characters) do |
||
characters[i] = |
characters[i] = mw.text.trim(v) |
||
local temp_char = string.lower(characters[i]) |
local temp_char = string.lower(characters[i]) |
||
character_image = character_image .. |
character_image = character_image .. |
||
string.format( |
string.format( |
||
'[[File:%s| |
'[[File:%s|50px|link=|%s]]', |
||
data.images[temp_char] or 'Mobchara-circle.png', |
data.images[temp_char] or 'Mobchara-circle.png', |
||
data.characters[temp_char] or '' |
data.characters[temp_char] or '' |
||
Line 41: | Line 40: | ||
end |
end |
||
if #characters > 1 then |
if #characters > 1 then |
||
character_color = '# |
character_color = '#868686' |
||
end |
end |
||
local container = mw.html.create('div') |
local container = mw.html.create('div') |
||
:addClass(' |
:addClass('dialogue') |
||
:addClass('modern') |
|||
container |
container |
||
:tag('div') |
:tag('div') |
||
:addClass('dialogue-icon') |
|||
:wikitext(character_image) |
:wikitext(character_image) |
||
:done() |
:done() |
||
:tag('div') |
:tag('div') |
||
:addClass('dialogue-name') |
|||
:wikitext(get_name(characters, args['display name'])) |
|||
⚫ | |||
⚫ | |||
:addClass('dialogue-text') |
|||
:attr('data-character-color', character_color) |
|||
:tag('div') |
:tag('div') |
||
:wikitext( |
:wikitext(line_break(args['english'])) |
||
:addClass('dt-en') |
|||
:done() |
:done() |
||
:tag('div') |
:tag('div') |
||
:wikitext(line_break(args[' |
:wikitext(line_break(args['japanese'])) |
||
:addClass('dt-jp') |
|||
:done() |
:done() |
||
⚫ | |||
⚫ | |||
:tag('sd-toggle') |
|||
:done() |
:done() |
||
:done() |
:done() |
Latest revision as of 04:35, 17 April 2022
Documentation for this module may be created at Module:Dialogue/doc
local getArgs = require('Module:Arguments').getArgs
local data = mw.loadData('Module:Dialogue/data')
local p = {}
local function get_name(characters, name)
if name and name ~= '' then
return name
end
return mw.text.listToText(characters, ', ', ' & ')
end
local function line_break(line)
if line and line ~= '' then
return table.concat(mw.text.split(line, "\n"), "<br>")
end
return line
end
function p.main(frame)
local args = getArgs(frame)
local characters = mw.text.split(args['character'] or '', ',')
local character_color = '#868686'
local character_image = ''
for i,v in pairs(characters) do
characters[i] = mw.text.trim(v)
local temp_char = string.lower(characters[i])
character_image = character_image ..
string.format(
'[[File:%s|50px|link=|%s]]',
data.images[temp_char] or 'Mobchara-circle.png',
data.characters[temp_char] or ''
)
character_color = data.colors[temp_char] or '#868686'
end
if #characters > 1 then
character_color = '#868686'
end
local container = mw.html.create('div')
:addClass('dialogue')
:addClass('modern')
container
:tag('div')
:addClass('dialogue-icon')
:wikitext(character_image)
:done()
:tag('div')
:addClass('dialogue-name')
:wikitext(get_name(characters, args['display name']))
:done()
:tag('div')
:addClass('dialogue-text')
:attr('data-character-color', character_color)
:tag('div')
:wikitext(line_break(args['english']))
:addClass('dt-en')
:done()
:tag('div')
:wikitext(line_break(args['japanese']))
:addClass('dt-jp')
:done()
:done()
:done()
return tostring(container)
end
return p