Module:EpisodeStory
本模块供{{EpisodeStory}}使用,主要用于动画条目中的各集剧情介绍,基于{{tabs}}的源代码实现。
理论上应当也可以用于其他类型作品的分卷/章节介绍。
参数
- 内容参数
- titlex:第x集的标题,按照title1、title2、title3……的顺序填写。
- storyx:第x集的剧情介绍,按照story1、story2、story3……的顺序填写。
- imgx:第x集的剧照,用img1、img2、img3……的顺序填写,一集多图则用半角逗号(,)分隔,选填。
- 样式参数(皆为选填)
- btstyle:上方分集按钮的额外样式。
- btclass:上方分集按钮的额外类(class),一般用于配合{{hovers}}或模板样式表使用。
- tabstyle:各集内容框的额外样式(即下方使用示例第一个例子的黑框部分)。
- tabsclass:各集内容框的额外类,一般用于配合{{hovers}}或模板样式表使用。
- titlestyle:各集标题的额外样式(即下方使用示例第一个例子黑框上的标题)。
- imgsize:各集剧照的图片宽度,默认为150px。
使用示例
不设置额外样式示例
{{EpisodeStory |title1=第一话标题 |img1=April201701.png,April201702.png,April201703.png |story1=这是第一话剧情。[[因为很重要所以说了两遍|记得多张图片要用'''半角逗号'''分隔!!记得多张图片要用'''半角逗号'''分隔!!记得多张图片要用'''半角逗号'''分隔!!]] |title2=这是第2话标题 |img2=April201704.png,April201705.png |story2=这个是第二话的剧情,默认不会设置额外的样式,如果需要请自行输入其他参数。 |title3=仅示例至第三话,更多话请自行添加 |img3=ZhMoegirl16Summer.jpg,Moegirl-wallpaper-spring-2018.png,ZhMoegirl16Summer.jpg,Moegirl-wallpaper-spring-2018.png,ZhMoegirl16Summer.jpg,Moegirl-wallpaper-spring-2018.png,ZhMoegirl16Summer.jpg,Moegirl-wallpaper-spring-2018.png |story3=可以按照需要放置多张图片,当然也可以不放。 }}
这个是第二话的剧情,默认不会设置额外的样式,如果需要请自行输入其他参数。
可以按照需要放置多张图片,当然也可以不放。
使用额外样式
《孤独摇滚!》分集剧情示例
{{hovers}} {{EpisodeStory |btstyle=border:0;background:#FFF000 |btclass=hovers-fade |tabstyle=font-size:1.2em;font-weight:500;max-width:580px |imgsize=250px |title1=翻转孤独 |img1=BTR_story_1-1.jpg,BTR_story_1-2.jpg,BTR_story_1-3.jpg,BTR_story_1-4.jpg |story1=极度怕生的阴角少女,后藤一里,因憧憬乐队活动而开始练习吉他,却没有朋友而每天独自练习着。 有一天,她被“结束乐队”的鼓手伊地知虹夏搭话,成为了仅限当日的支援吉他手…… |title2=明天见 |img2=BTR_story_2-1.jpg,BTR_story_2-2.jpg,BTR_story_2-3.jpg,BTR_story_2-4.jpg |story2=得知开Live是有定额要求的一里,为了赚钱而哭着开始了在Live House STARRY的打工…… 不擅长与人交流的一里,为了即将到来的明天,制定了某个对策。 |title3=火速增援 |img3=BTR_story_3-1.jpg,BTR_story_3-2.jpg,BTR_story_3-3.jpg,BTR_story_3-4.jpg |story3=无事可做,也不能好好和同学说话,今天也在学校里孤零零吃着午饭的一里,想起了正在寻找乐队新成员的虹夏。 本来想找会弹吉他,人气很高的阳角喜多打招呼… |title4=跳跃的女孩(们) |img4=BTR_story_4-1.jpg,BTR_story_4-2.jpg,BTR_story_4-3.jpg,BTR_story_4-4.jpg |story4=成员都齐了,要认真地作为乐队开始活动了。 其中,原创歌曲的作词被交给了一里…… }}
极度怕生的阴角少女,后藤一里,因憧憬乐队活动而开始练习吉他,却没有朋友而每天独自练习着。
有一天,她被“结束乐队”的鼓手伊地知虹夏搭话,成为了仅限当日的支援吉他手……
得知开Live是有定额要求的一里,为了赚钱而哭着开始了在Live House STARRY的打工……
不擅长与人交流的一里,为了即将到来的明天,制定了某个对策。
无事可做,也不能好好和同学说话,今天也在学校里孤零零吃着午饭的一里,想起了正在寻找乐队新成员的虹夏。
本来想找会弹吉他,人气很高的阳角喜多打招呼…
成员都齐了,要认真地作为乐队开始活动了。
其中,原创歌曲的作词被交给了一里……
《莉可丽丝》分集剧情示例
{{EpisodeStory |btstyle=border:0;background-color:#00B4AA |tabstyle=border-color:#00B4AA;font-size:1.2em |title1=慢慢来 |img1=Lycoris_story_1-1.jpg,Lycoris_story_1-2.jpg,Lycoris_story_1-3.jpg,Lycoris_story_1-4.jpg,Lycoris_story_1-5.jpg |story1=身为维护日本治安的秘密特工“Lycoris”的井之上泷奈,因为某个事件被调职到咖啡店“LycoReco”。 泷奈与超优秀的No.1Lycoris(?)千束组成搭档,干劲十足地以尽快重返DA总部为目标。 然而,LycoReco的工作却非常特别!? |title2=多多益善 |img2=Lycoris_story_2-1.jpg,Lycoris_story_2-2.jpg,Lycoris_story_2-3.jpg,Lycoris_story_2-4.jpg,Lycoris_story_2-5.jpg |story2=顶级黑客Walnut向LycoReco发出了求救! Walnut称其他黑客想要她的性命,希望能帮助她逃往国外。 LycoReco的成员齐心协力帮助Walnut逃跑,但千束等人却遭到了严密的武装集团的袭击……!? |title3=欲速则不达 |img3=Lycoris_story_3-1.jpg,Lycoris_story_3-2.jpg,Lycoris_story_3-3.jpg,Lycoris_story_3-4.jpg,Lycoris_story_3-5.jpg |story3=为了进行身体检查和体能测试,千束不情愿地前往DA总部。 听闻这件事的泷奈,为了找司令谈判回归DA,也决定要一起过去。虽然千束也帮忙交涉,可司令根本不听她们的话。 而且,自己原来的搭档风希已经有了新搭档…… |title4=无所求则无所获 |img4=Lycoris_story_4-1.jpg,Lycoris_story_4-2.jpg,Lycoris_story_4-3.jpg,Lycoris_story_4-4.jpg,Lycoris_story_4-5.jpg |story4=DA总部的那件事后,千束和泷奈在LycoReco过着顺利的生活。 某日,千束发现泷奈的内裤居然是■■■■■■…… 看到泷奈对自己的事这么不上心,大吃一惊的千束决定带她出门购物! |title5=目前为止,一切顺利 |img5=Lycoris_story_5-1.jpg,Lycoris_story_5-2.jpg,Lycoris_story_5-3.jpg,Lycoris_story_5-4.jpg,Lycoris_story_5-5.jpg |story5=这次的委托人是身体与机器相连的男人松下。知道自己时日无多的他想回故乡日本观光。 受委托护卫的千束一行人,全力支援松下的东京观光之旅! 在此期间,泷奈得知了关于千束的某个事实——!? |title6=相斥相吸 |img6=Lycoris_story_6-1.jpg,Lycoris_story_6-2.jpg,Lycoris_story_6-3.jpg,Lycoris_story_6-4.jpg,Lycoris_story_6-5.jpg |story6=接连发生Lycoris遭到袭击的事件。为避免单独行动,泷奈决定住在千束家。 但是,第一次的二人生活尽是些意料之外的事情!? 另一方面,一直在秘密探查DA拥有的情报的胡桃,迫近了Lycoris袭击事件的意外真相—— }}
身为维护日本治安的秘密特工“Lycoris”的井之上泷奈,因为某个事件被调职到咖啡店“LycoReco”。
泷奈与超优秀的No.1Lycoris(?)千束组成搭档,干劲十足地以尽快重返DA总部为目标。
然而,LycoReco的工作却非常特别!?
顶级黑客Walnut向LycoReco发出了求救!
Walnut称其他黑客想要她的性命,希望能帮助她逃往国外。
LycoReco的成员齐心协力帮助Walnut逃跑,但千束等人却遭到了严密的武装集团的袭击……!?
为了进行身体检查和体能测试,千束不情愿地前往DA总部。
听闻这件事的泷奈,为了找司令谈判回归DA,也决定要一起过去。虽然千束也帮忙交涉,可司令根本不听她们的话。
而且,自己原来的搭档风希已经有了新搭档……
DA总部的那件事后,千束和泷奈在LycoReco过着顺利的生活。
某日,千束发现泷奈的内裤居然是■■■■■■……
看到泷奈对自己的事这么不上心,大吃一惊的千束决定带她出门购物!
这次的委托人是身体与机器相连的男人松下。知道自己时日无多的他想回故乡日本观光。
受委托护卫的千束一行人,全力支援松下的东京观光之旅!
在此期间,泷奈得知了关于千束的某个事实——!?
接连发生Lycoris遭到袭击的事件。为避免单独行动,泷奈决定住在千束家。
但是,第一次的二人生活尽是些意料之外的事情!?
另一方面,一直在秘密探查DA拥有的情报的胡桃,迫近了Lycoris袭击事件的意外真相——
local getArgs = require('Module:Arguments').getArgs
local p = {}
--[=[
本模块供[[Template:EpisodeStory]]使用
]=]
function p.main(frame)
local args = getArgs(frame)
return p._main(args)
end
--[[
模块主要部分
]]
function p._main(args)
local box = mw.html.create('div') --最外层的tabs
box
:addClass('Tabs black')
:attr('data-label-side', 'top')
:attr('data-label-color-side-reverse', '')
:attr('data-divider-size', '')
:attr('data-default-tab', '1')
:attr('data-label-border-color', 'transparent')
:attr('data-label-color', 'transparent')
:attr('data-text-border-color', 'transparent')
:attr('data-text-padding', '.4em .7em')
:attr('data-auto-width', 'yes')
:attr('data-label-background-color', 'transparent')
:attr('data-text-background-color', 'transparent')
local i = 1
while args['title' .. i] do --按照输入的集数,逐集添加内容
local episode = box:tag('div'):addClass('Tab')
local num = string.format('%02d', i)
episode
:tag('div') --按钮
:addClass('TabLabelText')
:tag('div')
:addClass('tabslabelbt ' .. (args.btclass or ''))
:attr('style', 'font-weight:700;width:3em;border-radius:0.7em;text-align:center;padding:4px 6px;border:2px solid #25B449;' .. (args.btstyle or 'background-color:#F5FCF5'))
:wikitext('#' .. num)
local content = episode:tag('div'):addClass('TabContentText ' .. (args.tabclass or ''))
local title = content:tag('div') --各集标题
title
:attr('style', 'color:#000;font-weight:500;font-size:1.5em;' .. (args.titlestyle or ''))
:wikitext('#' .. num .. ' <b style="font-size:larger">' .. args['title' .. i] .. '</b>')
local intro = content:tag('div') --各集介绍(图片和文字)
intro:attr('style', 'border-radius:1em;border:2px solid #25B449;padding:0.5em 0.7em;background-color:#FFF;' .. (args.tabstyle or ''))
if args.tabclass then --如果输入了tabclass参数就加上对应的类
intro:addClass(args.tabclass)
end
if args['img' .. i] then
local imglist = intro:tag('div') --各集图片
local splitedImage = mw.text.split(args['img' .. i], ',%s*') --用半角逗号分割图片
for _, v in ipairs(splitedImage) do --逐一添加图片
imglist
:tag('div')
:css('display', 'inline-block')
:css('overflow','hidden')
:css('border-radius','8px')
:css('margin', '0 8px 8px 0')
:wikitext('[[File:' .. v .. '|' .. (args.imgsize or '150px') .. ']]')
end
end
local text = intro:tag('div') --各集文字
text:wikitext('\n' .. args['story' .. i] .. '\n')
i = i + 1
end
return box
end
return p