Модуль:Formatted appearance/пісочниця
Ця сторінка — пісочниця для модуля Модуль:Formatted appearance (різн.). |
Документація модуля[створити]
Зараз цей модуль не має відповідної документації. Якщо вам відомі призначення та засади використання цього модуля, будь ласка, напишіть хоча б коротеньку документацію. |
Документація вище включена з Модуль: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