Модуль:Якорь

Материал из Н.Ф. Федоров
Версия от 16:48, 10 апреля 2018; Petrov (обсуждение | вклад) (Новая страница: «local getArgs = require('Module:Arguments').getArgs local yesno = require('Module:Yesno') local p = {} local function _main(args) local anchors = {} local visi…»)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

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