Модуль:Якорь — различия между версиями
Материал из Н.Ф. Федоров
м (Защитил Модуль:Якорь: критический шаблон или модуль ([Редактирование=только администраторы] (бессрочно) [Переименование=только админис…) |
Petrov (обсуждение | вклад) м (1 версия импортирована) |
(нет различий)
|
Текущая версия на 17:08, 14 апреля 2018
Для документации этого модуля может быть создана страница Модуль:Якорь/doc
local getArgs = require('Module:Arguments').getArgs local yesno = require('Module:Yesno') local p = {} local function _main(args) local anchors = {} local visible = yesno(args.visible or args.v) local i = 1 while args[i] do local text, class if i == 1 and visible then text = args.text or args['текст'] or args[1] class = 'citation' end anchors[i] = tostring( mw.html.create('span') :attr('id', args[i]) :addClass(class or '') :wikitext(text or '') ) --[[ создание старого вида якорей для совместимости, см. Обсуждение шаблона:Якорь#Новые html5 ссылки и старые ]] local url_encoded = mw.uri.encode(args[i], 'WIKI'):gsub('%%', '.') if args[i] ~= url_encoded then anchors[i] = anchors[i] .. tostring( mw.html.create('span') :attr('id', url_encoded) ) end i = i + 1 end return table.concat(anchors) end function p.main(...) local frame = ... local args if type(frame.args) == 'table' then args = getArgs(frame) elseif type(frame) == 'table' then args = frame else args = {frame} end return _main(args) end return p