Модуль:Navbox: различия между версиями

Перейти к навигации Перейти к поиску
228 байт добавлено ,  4 года назад
нет описания правки
(Керла агӀо: «-- -- Лелош ю {{Шавуьгачуьна таблица}} иза {{Шавуьгачуьна таблицан тобанаш}}. -- Шайолу ишар схьаэц...»)
 
Нет описания правки
Строка 1: Строка 1:
--
--
-- Лелош ю {{Шавуьгачуьна таблица}} иза {{Шавуьгачуьна таблицан тобанаш}}.
-- Реализует {{Навигационная таблица}} и {{Подгруппы навигационной таблицы}}.
-- Шайолу ишар схьаэцна ингалс маттахь йолучу Module:Navbox.
-- Основной объём кода заимствован из английского Module:Navbox.
--
--


Строка 27: Строка 27:
local basestyle
local basestyle
local liststyle
local liststyle
local oddstyle
local evenodd_VARIABLE
local evenstyle
local evenoddARG
local abovestyle
local abovestyle
local belowstyle
local belowstyle
Строка 52: Строка 50:
-- by parent navboxes. The result is that the category shows all pages
-- by parent navboxes. The result is that the category shows all pages
-- where a child navbox is not contained in a parent navbox.
-- where a child navbox is not contained in a parent navbox.
local orphanCat = '[[Кадерар:Шавуьгу кепаш ишар йоцуш]]'
local orphanCat = '[[Категория:Навигационные шаблоны без родителя]]'
if border == 'subgroup' and args.orphan ~= 'yes' then
if border == 'subgroup' and args.orphan ~= 'yes' then
-- No change; striping occurs in outermost navbox.
-- No change; striping occurs in outermost navbox.
Строка 58: Строка 56:
end
end
local first, second = 'odd', 'even'
local first, second = 'odd', 'even'
if args.evenodd then
if evenodd_VARIABLE then
if args.evenodd == 'swap' then
if evenodd_VARIABLE == 'swap' then
first, second = second, first
first, second = second, first
else
else
first = args.evenodd
first = evenodd_VARIABLE
second = first
second = first
end
end
Строка 98: Строка 96:
local function renderNavBar(titleCell)
local function renderNavBar(titleCell)


if navbar ~= 'off' and navbar ~= 'plain' and not (not name and mw.getCurrentFrame():getParent():getTitle():gsub('/гӀамара ор$', '') == 'Кеп:Шавуьга таблица') then
if navbar ~= 'off' and navbar ~= 'plain' and not (not name and mw.getCurrentFrame():getParent():getTitle():gsub('/песочница$', '') == 'Шаблон:Навигационная таблица') then
-- Check color contrast of the gear icon
-- Check color contrast of the gear icon
Строка 117: Строка 115:
:css('width', '5em')
:css('width', '5em')
:css('margin-right', '0.5em')
:css('margin-right', '0.5em')
:wikitext('[[File:Wikipedia interwiki section gear icon' .. gearColor .. '.svg|14px|ХӀокху кепе хьажар|link=Кеп:' .. name .. '|alt=⛭]]')
:wikitext('[[Файл:Wikipedia interwiki section gear icon' .. gearColor .. '.svg|14px|Просмотр этого шаблона|link=Шаблон:' .. name .. '|alt=⛭]]')
end
end


Строка 217: Строка 215:
local function haveSubgroups()
local function haveSubgroups()
for i = 1, 23 do
for i = 1, 23 do
if (args['group' .. i] or args['корта' .. i] or args['тоба' .. i]) and (args['list' .. i] or args['могӀам' .. i]) then
if (args['group' .. i] or args['заголовок' .. i] or args['группа' .. i]) and (args['list' .. i] or args['список' .. i]) then
return true
return true
end
end
Строка 240: Строка 238:
end
end


if (args['group' .. listnum] or args['корта' .. listnum] or args['тоба' .. listnum]) then
if (args['group' .. listnum] or args['заголовок' .. listnum] or args['группа' .. listnum]) then
local groupCell = row:tag('th')
local groupCell = row:tag('th')


Строка 252: Строка 250:
groupCell
groupCell
:cssText(groupstyle)
:cssText(groupstyle)
:cssText(args['group' .. listnum .. 'style'] or args['тобан_хатӀ' .. listnum] or args['кортан_хатӀ' .. listnum])
:cssText(args['group' .. listnum .. 'style'] or args['стиль_группы' .. listnum] or args['стиль_заголовка' .. listnum])
:wikitext(args['group' .. listnum] or args['корта' .. listnum] or args['тоба' .. listnum])
:wikitext(args['group' .. listnum] or args['заголовок' .. listnum] or args['группа' .. listnum])
end
end


local listCell = row:tag('td')
local listCell = row:tag('td')


if (args['group' .. listnum] or args['корта' .. listnum] or args['тоба' .. listnum]) then
if (args['group' .. listnum] or args['заголовок' .. listnum] or args['группа' .. listnum]) then
listCell
listCell
:css('text-align', 'left')
:css('text-align', 'left')
Строка 274: Строка 272:
end
end


local rowstyle  -- usually nil so cssText(rowstyle) usually adds nothing
local listText = args['list' .. listnum] or args['список' .. listnum]
if index % 2 == 1 then
rowstyle = oddstyle
else
rowstyle = evenstyle
end
 
local listText = args['list' .. listnum] or args['могӀам' .. listnum]
local oddEven = ODD_EVEN_MARKER
local oddEven = ODD_EVEN_MARKER
if listText:sub(1, 12) == '</div><table' then
if listText:sub(1, 12) == '</div><table' then
Строка 290: Строка 281:
:css('padding', '0px')
:css('padding', '0px')
:cssText(liststyle)
:cssText(liststyle)
:cssText(rowstyle)
:cssText(args['list' .. listnum .. 'style'] or args['стиль_списка' .. listnum])
:cssText(args['list' .. listnum .. 'style'] or args['могӀанан_хатӀ' .. listnum])
:addClass('navbox-list')
:addClass('navbox-list')
:addClass('navbox-' .. oddEven)
:addClass('navbox-' .. oddEven)
Строка 318: Строка 308:
local function needsChangetoSubgroups()
local function needsChangetoSubgroups()
for i = 1, 23 do
for i = 1, 23 do
if (args['group' .. i] or args['корта' .. i] or args['тоба' .. i]) and not (args['list' .. i] or args['могӀам' .. i]) then
if (args['group' .. i] or args['заголовок' .. i] or args['группа' .. i]) and not (args['list' .. i] or args['список' .. i]) then
return true
return true
end
end
Строка 345: Строка 335:


for key, style in pairs(args) do
for key, style in pairs(args) do
if tostring(key):match("style$") or tostring(key):match("^хатӀ") then
if tostring(key):match("style$") or tostring(key):match("^стиль") then
if styleratio{mw.text.unstripNoWiki(style)} < 4.5 then
if styleratio{mw.text.unstripNoWiki(style)} < 4.5 then
return true  
return true  
Строка 356: Строка 346:
local function getTrackingCategories()
local function getTrackingCategories()
local cats = {}
local cats = {}
if needsChangetoSubgroups() then table.insert(cats, 'Кортош гӀалаташца лелон шавуьга кепаш') end
if needsChangetoSubgroups() then table.insert(cats, 'Навигационные шаблоны с ошибочным использованием заголовков') end
if needsHorizontalLists() then table.insert(cats, 'Анасизан испискаш йоцу шавуьга кепаш') end
if needsHorizontalLists() then table.insert(cats, 'Навигационные шаблоны без горизонтальных списков') end
if isIllegible() then table.insert(cats, 'Йиеша лур йоций хууш йолу шавуьга кепаш') end
if isIllegible() then table.insert(cats, 'Потенциально нечитаемые навигационные шаблоны') end
return cats
return cats
end
end
Строка 366: Строка 356:
if title.namespace ~= 10 then return end -- not in template space
if title.namespace ~= 10 then return end -- not in template space
local subpage = title.subpageText
local subpage = title.subpageText
if subpage == 'doc' or subpage == 'гӀамара ор' or subpage == 'тесташ' then return end
if subpage == 'doc' or subpage == 'песочница' or subpage == 'тесты' then return end


for i, cat in ipairs(getTrackingCategories()) do
for i, cat in ipairs(getTrackingCategories()) do
builder:wikitext('[[Кадегар:' .. cat .. ']]')
builder:wikitext('[[Категория:' .. cat .. ']]')
end
end
end
end
Строка 415: Строка 405:


for k, v in pairs(args) do
for k, v in pairs(args) do
local listnum = ('' .. k):match('^list(%d+)$') or ('' .. k):match('^могӀам(%d+)$')
local listnum = ('' .. k):match('^list(%d+)$') or ('' .. k):match('^список(%d+)$')
if listnum then table.insert(listnums, tonumber(listnum)) end
if listnum then table.insert(listnums, tonumber(listnum)) end
end
end
Строка 426: Строка 416:
end
end
maintitle = args.title or args['корта']
maintitle = args.title or args['заголовок']
navbar = args.navbar or args['хьажарна_хьост']
navbar = args.navbar or args['ссылка_на_просмотр']
name = args.name or args['цӀе']
name = args.name or args['имя']
above = args.above or args['лакхахь']
above = args.above or args['вверху']
image = args.image or args['сурт']
image = args.image or args['изображение']
imagestyle = args.imagestyle or args['суьртан_хатӀ']
imagestyle = args.imagestyle or args['стиль_изображения']
imageleft = args.imageleft or args['сурт2'] or args['аьрру_сурт']
imageleft = args.imageleft or args['изображение2'] or args['изображение_слева']
imageleftstyle = args.imageleftstyle or args.imagestyle2 or args['аьрру_суьртан_хатӀ']
imageleftstyle = args.imageleftstyle or args.imagestyle2 or args['стиль_изображения_слева']
below = args.below or args['лахахь']
below = args.below or args['внизу']
titlestyle = args.titlestyle or args['коьртачу_цӀеран_хатӀ'] or args['кортан_хатӀ']
titlestyle = args.titlestyle or args['стиль_основного_заголовка'] or args['стиль_заголовка']
groupstyle = args.groupstyle or args['коьртанийн_хатӀ'] or args['тобанийн_хатӀ']
groupstyle = args.groupstyle or args['стиль_заголовков'] or args['стиль_групп']
bodystyle = args.bodystyle or args['дегӀан_хатӀ']
bodystyle = args.bodystyle or args['стиль_тела']
basestyle = args.basestyle or args['базан_хатӀ'] or args['хатӀ']
basestyle = args.basestyle or args['стиль_базовый'] or args['стиль']
style = args.style
style = args.style
liststyle = args.liststyle or args['могӀанийн_хатӀ']
liststyle = args.liststyle or args['стиль_списков']
oddstyle = args.oddstyle or args['шалза_хатӀ'] or args['шалза2_хатӀ']
abovestyle = args.abovestyle or args['стиль_вверху']
evenstyle = args.evenstyle or args['шала_хатӀ'] or args['шала2_хатӀ']
belowstyle = args.belowstyle or args['стиль_внизу']
abovestyle = args.abovestyle or args['лакхахь_хатӀ']
evenodd_VARIABLE = args.evenodd or args['чётные_нечётные'] or args['четные_нечетные']
belowstyle = args.belowstyle or args['лахахь_хатӀ']
evenoddARG = args.evenodd or args['шала_шалза'] or args['шала2_шалза']
groupwidth = args.groupwidth or args['тобанийн_шоралла']
groupwidth = args.groupwidth or args['ширина_групп']
listpadding = args.listpadding or args['могӀанийн_дӀахилор']
listpadding = args.listpadding or args['отступ_списков']
bodyclass = args.bodyclass or args['дегӀан_тоба']
bodyclass = args.bodyclass or args['класс_тела']
titleclass = args.titleclass or args['кортан_тоба']
titleclass = args.titleclass or args['класс_заголовка']
aboveclass = args.aboveclass or args['лакхахь_тоба']
aboveclass = args.aboveclass or args['класс_вверху']
belowclass = args.belowclass or args['лахахь_тоба']
belowclass = args.belowclass or args['класс_внизу']
groupclass = args.groupclass or args['тобанийн_тоба']
groupclass = args.groupclass or args['класс_групп']
listclass = args.listclass or args['могӀанийн_тоба']
listclass = args.listclass or args['класс_списков']
imageclass = args.imageclass or args['суьртан_тоба']
imageclass = args.imageclass or args['класс_изображения']
-- render the main body of the navbox
-- render the main body of the navbox
Строка 470: Строка 458:
nav:attr('aria-labelledby', mw.uri.anchorEncode(maintitle))
nav:attr('aria-labelledby', mw.uri.anchorEncode(maintitle))
else
else
nav:attr('aria-label', 'Шавуьга кеп')
nav:attr('aria-label', 'Навигационный шаблон')
end
if name and name ~= '-' then
nav:attr('data-name', name)
end
end
elseif border == 'subgroup' then
elseif border == 'subgroup' then
Строка 491: Строка 482:
nav:attr('aria-labelledby', mw.uri.anchorEncode(maintitle))
nav:attr('aria-labelledby', mw.uri.anchorEncode(maintitle))
else
else
nav:attr('aria-label', 'Шавуьга кеп')
nav:attr('aria-label', 'Навигационный шаблон')
end
if name and name ~= '-' then
nav:attr('data-name', name)
end
end
Строка 505: Строка 499:
getArgs = require('Module:Arguments').getArgs
getArgs = require('Module:Arguments').getArgs
end
end
args = getArgs(frame, {wrappers = {'Кеп:Шавуьга таблица', 'Кеп:Navbox subgroups'}})
args = getArgs(frame, {wrappers = {'Шаблон:Навигационная таблица', 'Шаблон:Подгруппы навигационной таблицы'}})
if frame.args.border then
if frame.args.border then
-- This allows Template:Navbox_subgroup to use {{#invoke:Navbox|navbox|border=...}}.
-- This allows Template:Navbox_subgroup to use {{#invoke:Navbox|navbox|border=...}}.
Строка 516: Строка 510:
_ = above
_ = above
for i = 1, 23 do
for i = 1, 23 do
_ = args["group" .. tostring(i)] and args["корта" .. tostring(i)] and args["тоба" .. tostring(i)]
_ = args["group" .. tostring(i)] and args["заголовок" .. tostring(i)] and args["группа" .. tostring(i)]
_ = args["list" .. tostring(i)] and args["могӀам" .. tostring(i)]
_ = args["list" .. tostring(i)] and args["список" .. tostring(i)]
end
end
_ = below
_ = below

Навигация