Module:Story info: Difference between revisions

From Sekaipedia
Content added Content deleted
mNo edit summary
mNo edit summary
Line 1: Line 1:
local getArgs = require('Module:Arguments').getArgs
local getArgs = require('Module:Arguments').getArgs
local icons = require('Module:Icons')._main
local icons = require('Module:Icons')._main
local utils = require('Module:Utilities')



local p = {}
local p = {}
Line 16: Line 18:
['padding'] = '20px'
['padding'] = '20px'
}
}
local image = ''
local top = root:tag('div')
local top = root:tag('div')
Line 29: Line 33:
['align-self'] = 'center'
['align-self'] = 'center'
})
})
:wikitext(string.format(
:wikitext(utils.editIfNil(
args['image'],
'[[File:%s|280px|center]]',
args['image']
function (img)
return string.format(
'[[File:%s|280px|center]]',
img
)
end
))
))
:done()
:done()
Line 48: Line 57:
:wikitext(string.format(
:wikitext(string.format(
"'''%s:'''<br />'''%s'''<br />'''%s'''",
"'''%s:'''<br />'''%s'''<br />'''%s'''",
args['chapter'],
utils.editIfNil(args['chapter']),
args['english'],
utils.editIfNil(args['english']),
args['japanese']
utils.editIfNil(args['japanese'])
))
))
:done()
:done()

Revision as of 03:06, 28 October 2021

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

local getArgs   = require('Module:Arguments').getArgs
local icons     = require('Module:Icons')._main
local utils     = require('Module:Utilities')


local p = {}

function p.main(frame)
	local args = getArgs(frame)
	
	local root = mw.html.create()
	local box_css = {
		['color'] = '#424362',
		['margin'] = '20px 3px 20px 0',
		['border'] = '2px solid #00cdba',
		['border-radius'] = '10px',
		['box-shadow'] = '2px 3px #00cdba',
		['padding']  = '20px'
	}
	
	local image = ''
	
	local top = root:tag('div')
		:css(box_css)
		:css({
			['display'] = 'flex',
			['flex-wrap'] = 'wrap',
			['gap'] = '20px',
			['justify-content'] = 'center'
		})
		:tag('div')
			:css({
				['align-self'] = 'center'
			})
			:wikitext(utils.editIfNil(
				args['image'],
				function (img)
					return string.format(
						'[[File:%s|280px|center]]',
						img
					)
				end
			))
			:done()
		:tag('div')
			:css({
				['flex-grow'] = 1,
				['text-align'] = 'center',
			})
			:tag('div')
				:css({
					['border-bottom'] = '1px solid #00cdba',
					['border-top-right-radius'] = '6px',
					['color'] = '#424362',
					['padding-bottom'] = '10px'
				})
				:wikitext(string.format(
					"'''%s:'''<br />'''%s'''<br />'''%s'''",
					utils.editIfNil(args['chapter']),
					utils.editIfNil(args['english']),
					utils.editIfNil(args['japanese'])
				))
				:done()
			:tag('div')
				:css({
					['color'] = '#424362',
					['line-height'] = '2',
					['padding-top'] = '10px'
				})
				:wikitext("'''Characters that appear:'''<br/> {{{Charas}}}")
				:done()
			:done()
		:done()
			
	local bottom = root:tag('div')
		:css(box_css)
		:css({
			['display'] = 'grid',
			['grid-template-columns'] = 'repeat(2, 1fr)',
			['gap'] = '10px'
		})
		:tag('div'):css('text-align', 'right'):wikitext("'''Translator(s):'''"):done()
		:tag('div'):wikitext(args['translator']):done()
		:tag('div'):css('text-align', 'right'):wikitext("'''Source(s):'''"):done()
		:tag('div'):wikitext(args['source']):done()
		:done()

	return tostring(root)
end

return p
Cookies help us deliver our services. By using our services, you agree to our use of cookies.