モジュール:See/core

2022年2月21日 (月) 04:14時点におけるSadora (トーク | 投稿記録)による版 (1版 をインポートしました)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)

このモジュールについての説明文ページを モジュール:See/core/doc に作成できます

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|%s]]',
            string.gsub(link, '|(.*)$', ''), --display overwrites manual piping
            display
        )
    else
        return string.format('[[:%s]]', link)
    end
end

return p