Модуль:Якорь
Этот модуль оценён как готовый к использованию. Предполагается, что все баги устранены и он готов для широкого использования. Его можно указывать на справочных страницах и рекомендовать к использованию новым участникам. Для его изменения и тестирования, пожалуйста, используйте песочницу. |
Модуль предназначен для создания якорей. На нем работают шаблоны {{якорь}} и {{видимый якорь}}. Также его можно использовать в других модулях.
Использование
Для начала необходимо загрузить модуль:
local anchor = require('Модуль:Якорь').main
Можно использовать неограниченное количество параметров:
anchor(anchor1, anchor2, ...)
Также параметр visible
(или v
) позволяет выбрать первый якорь в качестве текста, который будет подсвечиваться при переходе, либо отдельно указать этот текст через параметр text
:
anchor{visible = true, visible_anchor, anchor2, ...}
или
anchor{visible = true, text = 'какой-то текст', anchor1, anchor2, ...}
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