Module:ComicInfoboxWikitext:修订间差异

来自有兽档案馆
(// Edit via Wikiplus)
(撤销Baigei讨论)的版本34783)
标签撤销
 
(未显示同一用户的26个中间版本)
第27行: 第27行:
end
end
local function fillInfobox(data, episode)
local function fillInfobox(data, episode)

-- 用漫画数据生成信息框
-- 用漫画数据生成信息框

local args = {
local args = {
number = data['number'],
number = data and data['number'] or ' ',
color = data['color'],
color = data and data['color'] or ' ',
title_weibo = data['title_weibo'],
title_weibo = data and data['title_weibo'] or ' ',
title_bili = data['title_bili'],
title_bili = data and data['title_bili'] or ' ',
episode = data['episode'],
episode = data and data['episode'] or ' ',
date_weibo = data['date_weibo'],
date_weibo = data and data['date_weibo'] or ' ',
date_bili = data['date_bili'],
date_bili = data and data['date_bili'] or ' ',
number = episode
number = data and episode or ' '
}
}


local r = {}
local res = {}
r[#r+1] = '{{漫画信息框'
local text = ''
local frame = mw.getCurrentFrame()

res[#res + 1] = frame:expandTemplate { title = 'nowiki', args = { '{{漫画信息框' } }
for key, value in pairs(args) do
for key, value in pairs(args) do
r[#r+1] = '\n|'..key..'='..value
res[#res + 1] = '<br>'
text = '\n|' .. key .. '=' .. value
res[#res + 1] = frame:expandTemplate { title = 'nowiki', args = { text } }
end
end
r[#r+1] = '}}'
res[#res + 1] = frame:expandTemplate { title = 'nowiki', args = { '}}' } }
return mw.getCurrentFrame():expandTemplate { title = 'nowiki', args = {table.concat(r)} }
return table.concat(res)
--return mw.getCurrentFrame():expandTemplate { title = 'Infobox', args = args }
--return mw.getCurrentFrame():expandTemplate { title = 'Infobox', args = args }
end
end

2023年9月2日 (六) 21:12的最新版本

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

本模块还没有文档页面。

您可以创建文档以让编者更好地理解本模块的用途。
编者可以在本模块的沙盒创建 | 镜像和测试样例创建页面进行实验。
请将模块自身所属的分类添加在文档中。本模块的子页面
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 = '漫画信息框/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)
        -- 用漫画数据生成信息框

        local args = {
            number = data and data['number'] or ' ',
            color = data and data['color'] or ' ',
            title_weibo = data and data['title_weibo'] or ' ',
            title_bili = data and  data['title_bili'] or ' ',
            episode = data and data['episode'] or ' ',
            date_weibo = data and  data['date_weibo'] or ' ',
            date_bili = data and  data['date_bili'] or ' ',
            number = data and episode or ' '
        }

        local res = {}
        local text = ''
        local frame = mw.getCurrentFrame()

        res[#res + 1] = frame:expandTemplate { title = 'nowiki', args = { '{{漫画信息框' } }
        for key, value in pairs(args) do
            res[#res + 1] = '<br>'
            text = '\n|' .. key .. '=' .. value
            res[#res + 1] = frame:expandTemplate { title = 'nowiki', args = { text } }
        end
        res[#res + 1] = frame:expandTemplate { title = 'nowiki', args = { '}}' } }
        return table.concat(res)
        --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