
このScribuntoモジュールの解説ページを作成することができます。 編集者は、このモジュールをサンドボックス (作成 | 複製)とテストケース (作成)で試すことができます。(解説) このモジュールのサブページ一覧。 |
local p = {} function p.GetLink(frame) local link = frame.args[1] local display = frame.args[2] -- 第一引数の値が技術的に利用可能な記事名でない場合、 -- 第一引数の値をそのまま返す local IsValidPageName = require('Module:IsValidPageName') if IsValidPageName.isValidPageName(frame) == "" then return link end if display == "" then display = nil end return p._formatLink(link, display) end function p._formatLink(link, display) -- Remove the initial colon for links where it was specified manually. link = link:match('^:?(.*)') -- Find whether a faux display value has been added with the {{!}} magic -- word. if not display then local prePipe, postPipe = link:match('^(.-)|(.*)$') link = prePipe or link display = postPipe end -- Assemble the link. if display then return string.format( '[[:%s|%s]]', string.gsub(link, '|(.*)$', ''), --display overwrites manual piping display ) else return string.format('[[:%s]]', link) end end return p