Модуль:About
Зовнішній вигляд
| Цей модуль позначений як К:реліз, готовий до загального вжитку (288). Він досягнув стадії готовності й вважається, що вільний від помилок і може використовуватись всюди, де знадобиться. Його можна згадувати на довідкових сторінках та інших сторінках Вікіпедії як можливість для навчання новачків. Аби зменшити навантаження на сервери та некоректний показ сторінок, його потрібно вдосконалювати через тестування у пісочниці[en], а не через застосування спроб і помилок. |
| Цей модуль залежить від наступних модулів: |
Цей модуль може впроваджувати шаблон верхньої примітки {{about}}.
Використання
[ред. код]- Функція
aboutвпроваджує напряму шаблон {{about}}, використовуючи frame та не застосовуючи жодних опцій. Це можливо повинно лише використовуватися в {{about}}.
- Функція
_aboutможе бути використана у Lua, щоб передати власний список аргументів (її перший аргумент) та/або таблицю опцій (її другий аргумент). Опції включають:aboutFormРядок, який може бути підставлений замість початкового повідомлення шаблону about. Він повинен включати дві точки підстановки: перший — для типу сторінки (наприклад, «стаття»), а другий — для опису про що ця сторінка. Він також повинне включати пробіл у кінці для спрощення конкатенація або опущення. Стандартним значенням є'Ця %s про %s. '.sectionStringЗадає рядок типу сторінки, коли зазначено іменований аргументsectionаборозділ. Стандартним значенням є'розділ'.
Документація вище включена з Модуль:About/документація. (ред. | історія)
Дописувачі можуть експериментувати на підсторінках пісочниця (створити | дзеркало) та тести (створити) цього модуля.
Будь ласка, додавайте категорії до підсторінки /документація. Підсторінки цієї сторінки.
Дописувачі можуть експериментувати на підсторінках пісочниця (створити | дзеркало) та тести (створити) цього модуля.
Будь ласка, додавайте категорії до підсторінки /документація. Підсторінки цієї сторінки.
local mArguments --initialize lazily
local mHatnote = require('Модуль:Hatnote')
local mHatList = require('Модуль:Hatnote list')
local libraryUtil = require('libraryUtil')
local checkType = libraryUtil.checkType
local p = {}
function p.about (frame)
-- A passthrough that gets args from the frame and all
mArguments = require('Модуль:Arguments')
args = mArguments.getArgs(frame)
return p._about(args)
end
function p._about (args, options)
-- Produces "about" hatnote.
-- Type checks and defaults
checkType('_about', 1, args, 'table', true)
args = args or {}
checkType('_about', 2, options, 'table', true)
options = options or {}
local defaultOptions = {
aboutForm = '%s %s про %s. ',
PageType = require('Модуль:Pagetype').main(),
PageTypeGender = require('Модуль:Pagetype').main({gender='true'}),
otherText = nil, --included for complete list
sectionString = 'розділ',
sectionStringGender = 'ч'
}
for k, v in pairs(defaultOptions) do
if options[k] == nil then options[k] = v end
end
-- Set initial "about" string
local pageType = ((args.section or args['розділ']) and options.sectionString) or options.PageType
local PageTypeGender = ((args.section or args['розділ']) and options.sectionStringGender) or options.PageTypeGender
local PageTypePronoun
if 'ч' == PageTypeGender then
PageTypePronoun = 'Цей'
elseif 'ж' == PageTypeGender then
PageTypePronoun = 'Ця'
elseif 'с' == PageTypeGender then
PageTypePronoun = 'Це'
elseif 'м' == PageTypeGender then
PageTypePronoun = 'Ці'
else
PageTypePronoun = 'Ця'
end
local about = ''
if args[1] then
about = string.format(options.aboutForm, PageTypePronoun, pageType, args[1])
end
--Allow passing through certain options
local fsOptions = {
otherText = options.otherText,
extratext = args.text
}
local hnOptions = {
selfref = args.selfref,
show_icon = true
}
-- Set for-see list
local forSee = (args[2] or args[3]) and mHatList._forSee(args, 2, fsOptions) or ''
-- Concatenate and return
return mHatnote._hatnote(about .. forSee, hnOptions)
end
return p