Navbar • •
Ez a modul az {{m-v-sz}}
(?) sablon megvalósítása Luában. Elsődleges célja, hogy sablonszöveg mellett modulokban is könnyen el lehessen helyezni a navigációs hivatkozásokat.
require('strict') local p = {} local i18n = { mini= {'m', 'v', 'sz'}, plain= {'megtekintés', 'vita', 'szerkesztés'}, normal= {'megnézi', 'vitatja', 'szerkeszti'}, -- a sablont title= {'Mutasd ezt a sablont', 'A sablon vitalapja', 'A sablon szerkesztése'} } local getArgs function p._navbar(args) local titleText = args[1] or (':' .. mw.getCurrentFrame():getParent():getTitle()) local title = mw.title.new(mw.text.trim(titleText), 'Sablon'); if not title then error(string.format('Érvénytelen név: „%s”', titleText)) end local talkpage = title.talkPageTitle and title.talkPageTitle:fullUrl() or nil; local fontstyle = args['betűstílus'] or args.fontstyle local style = args['stílus'] or args.style local text if args.mini then text = i18n.mini elseif args.plain then text = i18n.plain else text = i18n.normal end local div = mw.html.create():tag('div') div :addClass('navbar') :addClass('noprint') :addClass('hlist') :addClass('plainlinks') -- gets out if , so we have to work it around
:css('display', args.nodiv and 'inline') :cssText(fontstyle) :css('font-size', 'xx-small') :cssText(style) if args.mini then div:addClass('mini') end div:wikitext(mw.getCurrentFrame():extensionTag('templatestyles', '', {src = 'hlist/styles.css'})) -- Internal link for Special:WhatLinksHere div :tag('span') :css('display', 'none') :wikitext(string.format('[[%s]]', title.fullText)) local ul = div:tag('ul'); ul :css('display', 'inline') :tag('li') :addClass('nv-view') :wikitext('[' .. title:fullUrl() .. ' ') :tag('span') :attr('title', i18n.title[1]) :cssText(fontstyle) :wikitext(text[1]) :done() :wikitext(']') :done() :wikitext(' ') :tag('li') :addClass('nv-talk') :wikitext(talkpage and '[' .. talkpage .. ' ') :tag('span') :attr('title', i18n.title[2]) :cssText(fontstyle) :wikitext(text[2]) :done() :wikitext(talkpage and ']') :done() :wikitext(' ') :tag('li') :addClass('nv-edit') :wikitext('[' .. title:fullUrl('action=edit') .. ' ') :tag('span') :attr('title', i18n.title[3]) :cssText(fontstyle) :wikitext(text[3]) :done() :wikitext(']'); if not (args.mini or args.plain) then div :tag('span') :css('word-spacing', 0) :cssText(fontstyle) :wikitext(' a sablont'); end return tostring(div:done()) end function p.navbar(frame) if not getArgs then getArgs = require('Module:Arguments').getArgs end return p._navbar(getArgs(frame)) end return p