【问题标题】:List of forward links on mediawiki pagemediawiki 页面上的转发链接列表
【发布时间】:2021-02-15 14:48:01
【问题描述】:

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

【问题讨论】:

    标签: mediawiki


    【解决方案1】:

    如果安装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。同步也会出现问题(链接列表将是它所在页面后面的一个版本,直到被清除)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多