モジュール:See/core

2019年1月6日 (日) 20:47時点におけるTriple-Zeta (トーク | 投稿記録)による版 (1版 をインポートしました)

local p = {}

function p.GetLink(frame)

   local link = frame.args[1]
   local display = frame.args[2]
   -- 第一引数の値が技術的に利用可能な記事名でない場合、
   -- 第一引数の値をそのまま返す
   local IsValidPageName = require('モジュール: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',
           string.gsub(link, '|(.*)$', ), --display overwrites manual piping
           display
       )
   else
       return string.format('%s', link)
   end

end

return p