事件:修订间差异
来自卡厄思梦境WIKI
无编辑摘要 |
无编辑摘要 |
||
| 第1行: | 第1行: | ||
local p = {} | local p = {} | ||
local eventData = | local eventData = require("Module:事件/data") | ||
function p.main(frame) | function p.main(frame) | ||
local html = mw.html.create() | |||
local | |||
for eventName, eventInfo in pairs(eventData) do | |||
html:node(p.createEventCard(eventName, eventInfo)) | |||
end | end | ||
return tostring(html) | |||
end | end | ||
function p.createEventCard(eventName, eventInfo) | |||
function p. | local card = mw.html.create('div') | ||
card:addClass('event-card') | |||
local | |||
-- | -- 容器 | ||
local | local container = mw.html.create('div') | ||
container:addClass('event-container') | |||
-- 图片 | -- 图片 | ||
local | local imageDiv = mw.html.create('div') | ||
imageDiv:addClass('event-image') | |||
imageDiv:node(string.format('[[File:cc_%s.png|link=]]', eventInfo.id)) | |||
container:node(imageDiv) | |||
-- | -- 标题背景 | ||
local titleBg = mw.html.create('div') | |||
titleBg:addClass('event-title-bg') | |||
container:node(titleBg) | |||
-- 标题 | |||
local titleDiv = mw.html.create('div') | |||
titleDiv:addClass('event-title') | |||
titleDiv:wikitext(eventName) | |||
container:node(titleDiv) | |||
-- 选项容器 | -- 选项容器 | ||
local | local optionsDiv = mw.html.create('div') | ||
optionsDiv:addClass('event-options') | |||
for i, option in ipairs(eventInfo.option) do | |||
for i | local optionDiv = mw.html.create('div') | ||
optionDiv:addClass('event-option') | |||
optionDiv:attr('data-option-index', i) | |||
optionDiv:attr('data-event-id', eventInfo.id) | |||
optionDiv:wikitext(option) | |||
optionsDiv:node(optionDiv) | |||
end | end | ||
container:node(optionsDiv) | |||
-- | -- 效果显示区域 | ||
local | local effectDiv = mw.html.create('div') | ||
effectDiv:addClass('event-effect') | |||
effectDiv:attr('id', 'effect-' .. eventInfo.id) | |||
container:node(effectDiv) | |||
-- | -- 隐藏的效果数据 | ||
local dataDiv = mw.html.create('div') | |||
dataDiv:addClass('event-data') | |||
dataDiv:attr('style', 'display:none;') | |||
for i, effect in ipairs(eventInfo.effect) do | |||
local effectData = mw.html.create('div') | |||
effectData:addClass('effect-data') | |||
effectData:attr('data-index', i) | |||
effectData:wikitext(effect) | |||
dataDiv:node(effectData) | |||
end | end | ||
container:node(dataDiv) | |||
card:node(container) | |||
return card | |||
return | |||
end | end | ||
return p | return p | ||
2025年10月18日 (六) 12:22的版本
此模块的文档可以在模块:事件/doc创建
local p = {}
local eventData = require("Module:事件/data")
function p.main(frame)
local html = mw.html.create()
for eventName, eventInfo in pairs(eventData) do
html:node(p.createEventCard(eventName, eventInfo))
end
return tostring(html)
end
function p.createEventCard(eventName, eventInfo)
local card = mw.html.create('div')
card:addClass('event-card')
-- 容器
local container = mw.html.create('div')
container:addClass('event-container')
-- 图片
local imageDiv = mw.html.create('div')
imageDiv:addClass('event-image')
imageDiv:node(string.format('[[File:cc_%s.png|link=]]', eventInfo.id))
container:node(imageDiv)
-- 标题背景
local titleBg = mw.html.create('div')
titleBg:addClass('event-title-bg')
container:node(titleBg)
-- 标题
local titleDiv = mw.html.create('div')
titleDiv:addClass('event-title')
titleDiv:wikitext(eventName)
container:node(titleDiv)
-- 选项容器
local optionsDiv = mw.html.create('div')
optionsDiv:addClass('event-options')
for i, option in ipairs(eventInfo.option) do
local optionDiv = mw.html.create('div')
optionDiv:addClass('event-option')
optionDiv:attr('data-option-index', i)
optionDiv:attr('data-event-id', eventInfo.id)
optionDiv:wikitext(option)
optionsDiv:node(optionDiv)
end
container:node(optionsDiv)
-- 效果显示区域
local effectDiv = mw.html.create('div')
effectDiv:addClass('event-effect')
effectDiv:attr('id', 'effect-' .. eventInfo.id)
container:node(effectDiv)
-- 隐藏的效果数据
local dataDiv = mw.html.create('div')
dataDiv:addClass('event-data')
dataDiv:attr('style', 'display:none;')
for i, effect in ipairs(eventInfo.effect) do
local effectData = mw.html.create('div')
effectData:addClass('effect-data')
effectData:attr('data-index', i)
effectData:wikitext(effect)
dataDiv:node(effectData)
end
container:node(dataDiv)
card:node(container)
return card
end
return p