Module:ComicInfoboxWikitext:修订间差异

来自有兽档案馆
(// Edit via Wikiplus)
标签已被回退
(// Edit via Wikiplus)
标签已被回退
第11行: 第11行:
return comicList[episode]
return comicList[episode]
end
end
local function margeData(data_from_json,data_from_args)
local function margeData(data_from_json, data_from_args)
-- 用模板数据替换自动获取的数据
-- 用模板数据替换自动获取的数据
local data = {}
local data = {}
第26行: 第26行:
return data
return data
end
end
local function fillInfobox(data,episode)
local function fillInfobox(data, episode)
if data['next'] == nil then
if data['next'] == nil then
data['next'] = '[[第' .. episode+1 .. '话]]'
data['next'] = '[[第' .. episode + 1 .. '话]]'
end
end
if data['last'] == nil then
if data['last'] == nil then
data['last'] = '[[第' .. episode-1 .. '话]]'
data['last'] = '[[第' .. episode - 1 .. '话]]'
end
end
if data['image'] == nil then
if data['image'] == nil then
data['image'] = '[[第' .. episode-1 .. '话标题卡.jpg]]'
data['image'] = '[[第' .. episode - 1 .. '话标题卡.jpg]]'
end
end
if data['imagestyle'] == nil then
if data['imagestyle'] == nil then
第47行: 第47行:
data['headerstyle'] = 'background:ced;'
data['headerstyle'] = 'background:ced;'
else
else
data['labelstyle'] = 'background:'..data['color']
data['labelstyle'] = 'background:' .. data['color']
data['headerstyle'] = 'background:ced;'..data['color']
data['headerstyle'] = 'background:ced;' .. data['color']
end
end

-- 用漫画数据生成信息框
-- 用漫画数据生成信息框
local args = {
local args = {
name='漫画信息框',
name = '漫画信息框',
bodystyle='border-radius: 10px',
bodystyle = 'border-radius: 10px',
title='本话信息',
title = '本话信息',
header1 = '基本信息',
header1 = '基本信息',
label2 = '话数',
label2 = '话数',
data2 = '[[ComicInfo:number::'..episode..']]',
data2 = '[[ComicInfo:number::' .. episode .. ']]',
label3 = '微博标题',
label3 = '微博标题',
data3 = '[[ComicInfo:titleWeibo::'..data['title_weibo']..']]',
data3 = '[[ComicInfo:titleWeibo::' .. data['title_weibo'] .. ']]',
label4 = 'B漫标题',
label4 = 'B漫标题',
data4 = '[[ComicInfo:titleBili::'..data['title_bili']..']]',
data4 = '[[ComicInfo:titleBili::' .. data['title_bili'] .. ']]',
label5 = '所属篇目',
label5 = '所属篇目',
data5 = '[[ComicInfo:episode::'..data['episode']..']]',
data5 = '[[ComicInfo:episode::' .. data['episode'] .. ']]',
label6 = '微博发布日期',
label6 = '微博发布日期',
data6 = '[[ComicInfo:dateWeibo::'..data['date_weibo']..']]',
data6 = '[[ComicInfo:dateWeibo::' .. data['date_weibo'] .. ']]',
label7 = 'B漫发布日期',
label7 = 'B漫发布日期',
data7 = '[[ComicInfo:dateBili::'..data['date_bili']..']]',
data7 = '[[ComicInfo:dateBili::' .. data['date_bili'] .. ']]',
header8 = '阅读向导',
header8 = '阅读向导',
label9 = '上一话',
label9 = '上一话',
data9 = data['last'],
data9 = data['last'],
label10 = '下一话',
label10 = '下一话',
data10 = data['next']
data10 = data['next'],
imagestyle = data['imagestyle'],
captionstyle = data['captionstyle'],
labelstyle = data['labelstyle'],
headerstyle = data['headerstyle']
}
}
return mw.getCurrentFrame():expandTemplate { title = 'Infobox', args = args }
return mw.getCurrentFrame():expandTemplate { title = 'Infobox', args = args }
第89行: 第93行:
end
end
local episodeData_autoFill = getComicData(episode)
local episodeData_autoFill = getComicData(episode)
local episodeData = margeData(episodeData_autoFill,args)
local episodeData = margeData(episodeData_autoFill, args)

return fillInfobox(episodeData,episode)


return fillInfobox(episodeData, episode)
end
end



2023年8月23日 (三) 20:35的版本

文档图示 模块文档[创建] [跳转到代码]

本模块还没有文档页面。

您可以创建文档以让编者更好地理解本模块的用途。
编者可以在本模块的沙盒创建 | 镜像和测试样例创建页面进行实验。
请将模块自身所属的分类添加在文档中。本模块的子页面
local p = {}
local getArgs = require('Module:Arguments').getArgs

function p.main(frame)
    local args = getArgs(frame)

    local function getComicData(episode)
        -- 去ComicData.json获取漫画数据
        local comicList = mw.text.jsonDecode(mw.getCurrentFrame():expandTemplate { title = 'User:Baigei/ComicData.json' })

        return comicList[episode]
    end
    local function margeData(data_from_json, data_from_args)
        -- 用模板数据替换自动获取的数据
        local data = {}
        for k, v in pairs(data_from_json) do
            data[k] = v
        end
        for k, v in pairs(data_from_args) do
            if v ~= '' then
                -- 当模板数据为空值时 使用自动获取的数据
                data[k] = v
            end
        end

        return data
    end
    local function fillInfobox(data, episode)
        if data['next'] == nil then
            data['next'] = '[[第' .. episode + 1 .. '话]]'
        end
        if data['last'] == nil then
            data['last'] = '[[第' .. episode - 1 .. '话]]'
        end
        if data['image'] == nil then
            data['image'] = '[[第' .. episode - 1 .. '话标题卡.jpg]]'
        end
        if data['imagestyle'] == nil then
            data['imagestyle'] = ''
        end
        if data['captionstyle'] == nil then
            data['captionstyle'] = ''
        end

        if data['color'] == nil then
            data['labelstyle'] = 'background:ced;'
            data['headerstyle'] = 'background:ced;'
        else
            data['labelstyle'] = 'background:' .. data['color']
            data['headerstyle'] = 'background:ced;' .. data['color']
        end

        -- 用漫画数据生成信息框
        local args = {
            name = '漫画信息框',
            bodystyle = 'border-radius: 10px',
            title = '本话信息',
            header1 = '基本信息',
            label2 = '话数',
            data2 = '[[ComicInfo:number::' .. episode .. ']]',
            label3 = '微博标题',
            data3 = '[[ComicInfo:titleWeibo::' .. data['title_weibo'] .. ']]',
            label4 = 'B漫标题',
            data4 = '[[ComicInfo:titleBili::' .. data['title_bili'] .. ']]',
            label5 = '所属篇目',
            data5 = '[[ComicInfo:episode::' .. data['episode'] .. ']]',
            label6 = '微博发布日期',
            data6 = '[[ComicInfo:dateWeibo::' .. data['date_weibo'] .. ']]',
            label7 = 'B漫发布日期',
            data7 = '[[ComicInfo:dateBili::' .. data['date_bili'] .. ']]',
            header8 = '阅读向导',
            label9 = '上一话',
            data9 = data['last'],
            label10 = '下一话',
            data10 = data['next'],
            imagestyle = data['imagestyle'],
            captionstyle = data['captionstyle'],
            labelstyle = data['labelstyle'],
            headerstyle = data['headerstyle']
        }
        return mw.getCurrentFrame():expandTemplate { title = 'Infobox', args = args }
    end

    -- 默认输出第一话的信息框
    local episode = 1
    -- 获取话数
    if args[1] ~= nil then
        episode = tonumber(args[1])
    end

    if args['number'] ~= nil then
        episode = tonumber(args['number'])
    end
    local episodeData_autoFill = getComicData(episode)
    local episodeData = margeData(episodeData_autoFill, args)

    return fillInfobox(episodeData, episode)
end

return p