标题很长,可能也没有完全表达清楚真正的意思,直接说需求吧。
我呢,建立了一个关于出版物的命名空间(主要还是针对书籍),每一本书籍除了词条的主要内容外,还有内容简介、作者简介、目录和书摘四个部分,其中作者的信息是通过他的词条内容来提供。
就比如张三写了一本叫做《张三自传》的书,我为这本书创建了一个词条,然后又为张三创建了一个词条。在《张三自传》中的作者简介直接用张三词条中的主要内容即可。
通过搜索和实践,终于让我找到了解决的方法。
一、安装Interwiki插件
正常情况下,我们几乎不太会用到该插件,因为跨Wiki的大多数网站都被墙挡住了,即便没有被墙可能也会影响到浏览的速度。当然多语言的站点以及维基农场的话,可能还是会用到该功能。
之所以会需要安装该插件是因为后面的插件会用到,这里先暂时不提。
打开配置文件LocalSettings.php
文件,在其中插入:
# 启用Interwiki扩展
wfLoadExtension( 'Interwiki' );
# 允许超级管理员可以编辑interwiki数据
$wgGroupPermissions['sysop']['interwiki'] = true;
一定要开启超级管理员编辑interwiki数据的功能,后面会用到。
二、安装InterwikiExtracts插件
这个是实现本功能的主要插件,它能将跨wiki站点中的内容提取出来并插入到词条内容中。
打开配置文件LocalSettings.php
文件,在其中插入:
# 启用InterwikiExtracts扩展
wfLoadExtension( 'InterwikiExtracts' );
三、修改interwiki数据表
在浏览器中输入https://你的网站/特殊:跨wiki
,然后点击添加一个跨wiki或语言前缀
链接
输入跨wiki的前缀,在上例中我用了mswiki的前缀,然后输入网站的地址——记得后面要加$1
参数。
四、更新数据库内容
如果只是完成上面的内容是没有用的,按照InterwikiExtracts中的操作指示,我们需要打开数据库,然后运行更新代码:
UPDATE interwiki SET iw_api = "https://wiki.mindseed.cn/api.php" WHERE iw_prefix = "mswiki";
注意:第三步和第四步缺一不可,而且必须先修改跨wiki数据表之后再更新数据库,否则无效。
五、插入截取内容
打开想要插入内容的条目,然后在其中输入{{#InterwikiExtract:条目名称}},效果如下:
其中作者简介的内容就来源于该作者的条目内容。
注:具体如何使用InterwikiExtract请参考官方文档。
最后
如果各位有更好的方法还请指教,多谢。
1 条评论
大佬你好 请教MediaWiki 能加你qq吗