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,您可能需要更好地过滤 title
s。同步也会有问题(链接列表将落后于它所在页面的一个版本,直到被清除)。
我将 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,您可能需要更好地过滤 title
s。同步也会有问题(链接列表将落后于它所在页面的一个版本,直到被清除)。