Модуль: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']
local appearanceMinor = args['minor_work']
local isComic = false
if args['issue'] ~= nil then
appearanceMinor = args['issue']
isComic = true
end
local appearanceDate = args['date']
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)
return _getFormattedAppearance(args)
end
return p