mediawiki - mediawiki 页面上的转发链接列表
问题描述
我将 Mediawiki 站点用作个人Zettelkasten。zettelkasten 基本上是一组应该相互链接的笔记,使 wiki 成为存储笔记的好地方。音符之间的链接是 zettelkasten 的关键特征。因此,对于每个“注释”(即我的 wiki 上的页面),我需要一个列表:1)如何到达该页面,以及 2)您可以从该页面去哪里。第一部分很简单,因为我可以使用内置的{{Special:Whatlinkshere/{{PAGENAME}}}}
. 但是,我不知道如何从每个页面创建类似的前向链接列表。有没有办法在 mediawiki 中执行此操作,或者可以执行此操作的扩展程序?在给定的 wiki 页面上收集所有(内部)链接列表的最佳方法是什么?
解决方案
如果你安装DynamicPageList3,你可以使用{{#dpl: linksfrom = {{FULLPAGENAME}} }}
.
使用Scribunto,您可以Module:Links
使用inner
函数定义:
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 MediaWikititle
,您需要更好地过滤 s 。同步也会出现问题(链接列表将是它所在页面的一个版本,直到被清除)。
推荐阅读
- java - 过滤出 Java 8 流过滤器表达式中的空值,因此不会引发异常
- django - 有没有一种方法可以在 Django 中创建记录时自动创建页面(和 slug)
- python - 在 Pillow 中使用 ImageTk 打开图像会导致 AttributeError 和 RuntimeError?
- python - Keras Tokenizer 序列到文本更改词序
- c# - MongoDB C# Linq 动态查询可空日期
- java - 如何模糊渐变背景?
- django - 使用 JSONFields 与纯 SQL 方法 Django Postgres 的效率
- python - 用 API 数据制作字典
- ios - macOS Simulator 部署目标设置为 13.5,但此平台支持的部署目标版本范围为 13.1 到 13.4.999
- javascript - 后退按钮菜单中多个相同浏览器历史事件的防止方法