Модуль:Formatted appearance
Зовнішній вигляд
Документація модуля[перегляд] [редагувати] [історія] [очистити кеш]
Цей модуль залежить від наступних модулів: |
Модуль:Formatted appearance використовується, щоб створювати оформлені за стилем запис про першу і останню появу в Шаблон:Картка:Персонаж або для інших подібних вигаданих елементів.
Використання
[ред. код]{{#invoke:Formatted appearance|getFormattedAppearance|major_work=|minor_work=|date=}}
{{#invoke:Formatted appearance|getFormattedAppearance|major_work=|issue=|date=}}
Спостк параметрів
[ред. код]Параметр | Опис | Статус |
---|---|---|
major_work , значна_робота
|
Назва значної роботи, в якій з'явився вигаданий елемент. Значна робота включає телесеріали, фільми, книги, альбоми та ігри. Зверніть увагу: Це стосується лише назва написаних англійською мовою, для українських назв бажано всі назви зазначати в параметрі |minor_work= , бо тоді назва огортається в лапки («»).
|
необов'язковий |
minor_work , незначна_робота
|
Назва незначної роботи, в якій з'явився вигаданий елемент. Незначні роботи включають серії телепрограм, розділи, пісні та ігрові місії. Зверніть увагу: Це стосується лише назва написаних англійською мовою, для українських назв бажано всі назви зазначати в цьому параметрі, бо тоді назва огортається в лапки («»). | необов'язковий |
issue , випуск
|
Кількість видань коміксів, в яких з'явився вигаданий елемент. | необов'язковий |
date , дата
|
Дата публікації/виходу незначної роботи, де з'явився вигаданий елемент. | необов'язковий |
Документація вище включена з Модуль:Formatted appearance/документація. (ред. | історія) Дописувачі можуть експериментувати на підсторінках пісочниці (ред. | різн.) та тести (створити) цього модуля. Будь ласка, додавайте категорії до підсторінки /документація. Підсторінки цієї сторінки. |
local list = require('Module:List')
local p = {}
local function getFormattedEntry(args, counter)
if counter == 1 then
return ""
elseif counter == 2 then
return args[1]
else
return list.makeList("unbulleted", args)
end
end
local function createComicEntry(appearanceMajor, appearanceMinor, appearanceDate)
local fullString = {}
local counter = 1
if appearanceMajor then
if appearanceMinor == nil then
fullString[counter] = appearanceMajor
counter = counter + 1
else
fullString[counter] = appearanceMajor .. ' ' .. appearanceMinor
counter = counter + 1
end
end
if appearanceDate then
fullString[counter] = "(" .. appearanceDate .. ")"
counter = counter + 1
end
return getFormattedEntry(fullString, counter)
end
local function createGenericEntry(appearanceMajor, appearanceMinor, appearanceDate)
local fullString = {}
local counter = 1
if appearanceMinor then
fullString[counter] = appearanceMinor
counter = counter + 1
end
if appearanceMajor then
fullString[counter] = appearanceMajor
counter = counter + 1
end
if appearanceDate then
fullString[counter] = appearanceDate
counter = counter + 1
end
return getFormattedEntry(fullString, counter)
end
local function getFormattedComicMinorWorkTitle(issue)
if issue then
if string.find(issue, "№ ") then
return "''" .. issue .. "''"
else
local formattedString = string.gsub(issue, "%d+", "№ %1")
return formattedString
end
end
return nil
end
local function getFormattedGenericMinorWorkTitle(title)
if title then
return '«' .. title .. '»'
end
return nil
end
local function getFormattedMajorWorkTitle(title, isComic)
if title then
if isComic then
return "''" .. title .. "''"
else
return '«' .. title .. '»'
end
end
return nil
end
local function _getFormattedAppearance(args)
local appearanceMajor = args['major_work'] or args['значна_робота']
local appearanceMinor = args['minor_work'] or args['незначна_робота']
local isComic = false
if args['issue'] ~= nil then
appearanceMinor = args['issue'] or args['випуск']
isComic = true
end
local appearanceDate = args['date'] or args['дата']
local formattedAppearanceMajor = getFormattedMajorWorkTitle(appearanceMajor, isComic)
if isComic == false then
local formattedAppearanceMinor = getFormattedGenericMinorWorkTitle(appearanceMinor)
return createGenericEntry(formattedAppearanceMajor, formattedAppearanceMinor, appearanceDate)
else
local formattedAppearanceMinor = getFormattedComicMinorWorkTitle(appearanceMinor)
return createComicEntry(formattedAppearanceMajor, formattedAppearanceMinor, appearanceDate)
end
end
function p.getFormattedAppearance(frame)
local getArgs = require('Module:Arguments').getArgs
local args = getArgs(frame)
local isComic = ((args['issue'] ~= nil) or (args['випуск'] ~= nil))
return _getFormattedAppearance(args)
end
return p