모듈:Deck: 두 판 사이의 차이
외관
잔글편집 요약 없음 |
잔글편집 요약 없음 |
||
| (같은 사용자의 중간 판 17개는 보이지 않습니다) | |||
| 2번째 줄: | 2번째 줄: | ||
function p.render(f) | function p.render(f) | ||
local args = f:getParent().args | |||
if args['items'] == nil then | |||
args = f.args | |||
end | |||
local lines = (args['items'] or ''):gmatch("([^\n]+)") | local lines = (args['items'] or ''):gmatch("([^\n]+)") | ||
| 13번째 줄: | 13번째 줄: | ||
line = mw.text.trim(line) | line = mw.text.trim(line) | ||
if line | if line ~= '' then | ||
local key, value = line:match('^([%w%s]+)=(.+)$') | |||
local key, value = line: | |||
if key and value then | if key and value then | ||
key = mw.text.trim(key):lower() | key = mw.text.trim(key):lower() | ||
| 23번째 줄: | 21번째 줄: | ||
items[#items][key] = value | items[#items][key] = value | ||
end | end | ||
else | |||
table.insert(items, { | |||
url = line | |||
}) | |||
end | end | ||
end | end | ||
| 28번째 줄: | 30번째 줄: | ||
-- HTML | -- HTML | ||
local | local decks = {''} | ||
for _, item in ipairs(items) do | for _, item in ipairs(items) do | ||
local url = item.url or '#' | local url = item.url or '#' | ||
local icon = item.icon or ' | if url:match('^-+$') then | ||
decks[#decks + 1] = '' | |||
else | |||
local icon = item.icon or '' | |||
local title = mw.text.trim(item.title or '') | |||
local wikitext = '<span>' .. icon .. '</span>' .. '<span>' .. title .. '</span>' | |||
decks[#decks] = decks[#decks] .. '[' .. url .. ' ' .. wikitext .. ']' | |||
end | end | ||
end | |||
local html = '' | |||
for _, deck in ipairs(decks) do | |||
html = html .. '<div class="kawa-deck">' .. deck .. '</div>' | |||
end | end | ||
return f:preprocess(html) | |||
end | end | ||
return p | return p | ||
2026년 5월 27일 (수) 10:34 기준 최신판
이 모듈에 대한 설명문서는 모듈:Deck/설명문서에서 만들 수 있습니다
local p = {}
function p.render(f)
local args = f:getParent().args
if args['items'] == nil then
args = f.args
end
local lines = (args['items'] or ''):gmatch("([^\n]+)")
local items = {}
for line in lines do
line = mw.text.trim(line)
if line ~= '' then
local key, value = line:match('^([%w%s]+)=(.+)$')
if key and value then
key = mw.text.trim(key):lower()
value = mw.text.trim(value)
if key ~= '' then
items[#items][key] = value
end
else
table.insert(items, {
url = line
})
end
end
end
-- HTML
local decks = {''}
for _, item in ipairs(items) do
local url = item.url or '#'
if url:match('^-+$') then
decks[#decks + 1] = ''
else
local icon = item.icon or ''
local title = mw.text.trim(item.title or '')
local wikitext = '<span>' .. icon .. '</span>' .. '<span>' .. title .. '</span>'
decks[#decks] = decks[#decks] .. '[' .. url .. ' ' .. wikitext .. ']'
end
end
local html = ''
for _, deck in ipairs(decks) do
html = html .. '<div class="kawa-deck">' .. deck .. '</div>'
end
return f:preprocess(html)
end
return p