mediawiki 页面上的前向链接列表

List of forward links on mediawiki page

我将 Mediawiki 网站用作个人 Zettelkasten。 zettelkasten 基本上是一组应该相互链接的笔记,使 wiki 成为存储笔记的好地方。音符之间的联系是 zettelkasten 的关键特征。因此,对于每个“注释”(即我的 wiki 上的页面),我需要一个列表,其中包含 1) 如何到达该页面以及 2) 您可以从该页面转到哪里。第一部分很简单,因为我可以使用内置的 {{Special:Whatlinkshere/{{PAGENAME}}}}。但是,我不知道如何从每个页面创建一个类似的前向链接列表。有没有办法在 mediawiki 中执行此操作,或者可以执行此操作的扩展?收集给定维基页面上所有(内部)链接列表的最佳方法是什么?

如果你安装DynamicPageList3,你可以使用{{#dpl: linksfrom = {{FULLPAGENAME}} }}

Scribunto,你可以用inner函数定义Module:Links

local p = {}
function p.inner (frame)
    local wikitext = frame:preprocess (mw.title.new (frame.args [1]):getContent ())
    local link_set = {}
    -- Find all occurences of [[...]]:
    for title in  mw.ustring.gmatch (wikitext, '%[%[([^%#|%]]+)%]%]') do
        -- Remove #... or |...:
        title = mw.text.trim (mw.ustring.gsub (title, '[#|][^%]]*', '', 1))
        if title ~= '' then
            link_set [title] = true
        end
    end
    local links = {}
    for link, _ in pairs (link_set) do
        links [#links + 1] = '[[' .. link .. ']]'
    end
    table.sort (links)
    return table.concat (links, ', ')
end

return p

并这样称呼它:{{#invoke:Links|inner|{{FULLPAGENAME}}}}。但这很昂贵,如果您安装了 Semantic MediaWiki,您可能需要更好地过滤 titles。同步也会有问题(链接列表将落后于它所在页面的一个版本,直到被清除)。