Project:扩展维护

来自Kanade
Yuki讨论 | 贡献2023年1月8日 (日) 14:19的版本 (添加VisualEditor相关内容、其他细节添加)

Parsoid

  • 要使得Parsoid在LNMP 1.7环境安装包下顺利使用可视化编辑功能需要进行如下修改:
  1. 注释掉/usr/local/nginx/conf/enable-php.conf中的#try_files $uri =404;
  2. 注释掉/usr/local/php/etc/php.ini中的; cgi.fix_pathinfo=0
  3. 与数据库无关,重启nginx和php-fpm即可。

Extension:CheckUser

注释掉/home/wwwroot/default/mw/extensions/CheckUser/src/TimelineRowFormatter.php中的第99行//'userAgent' => $this->getUserAgent( $row->cuc_agent ),(该行报错)后Special:Investigate中可以使用Timeline功能,但缺少useragent信息项。

    1. 猜想1:因为不是一开始就安装了Checkuser,所有有一部分信息出现了缺失(空值),而代码未对空置进行过滤而导致问题。
    2. 猜想2:若随MediaWiki一同安装可能不会出现此问题。
    3. 猜想3:应该只影响CheckUser安装前的用户。
    • 结论: 对数据库中受影响的空值进行填充,可以得知: 历史记录是50项/页的,所以只要满足操作次数则可避免报错。

Extension:Display Title

DisplayTitle被用于显示与页面名称不一样的标题。根据扩展说明页面,在1.5.3版本之后,所有与重定向相关的页面都会受到影响,例如:特殊:重定向页列表特殊:链入页面、重定向的页面。

原有的页面名称将显示为重定向目标页面的名称,与用户的直觉不符。解决方案是安装低版本扩展。

Extension:PdfHandler

PDFHandler是一个MediaWiki安装时捆绑的一个扩展,理解的用途是在文章中展示PDF页面。但是现代浏览器chrome类和firefox列都能够打开网页上的PDF文件,似乎也不是怎么的重要了。一般来说,这个扩展未经配置是无法展现PDF页面的,取而代之的是一个Logo。

要让该扩展正常使用首先需要apt安装which gs convert pdfinfo pdftotext。 在LocalSettings.php中的配置如下:

 1$wgFileExtensions[] = 'pdf';
 2$wgUseImageMagick = true;
 3wfLoadExtension( 'PdfHandler' );
 4# Ubuntu
 5$wgPdfProcessor = 'gs';
 6// if defined via ImageMagick
 7$wgPdfPostProcessor = $wgImageMagickConvertCommand; 
 8// if not defined via ImageMagick
 9// $wgPdfPostProcessor = 'convert'; 
10$wgPdfInfo = 'pdfinfo';
11$wgPdftoText = 'pdftotext';
12# Debian
13$wgPdfProcessor = '/usr/bin/gs'; 
14// if defined via ImageMagick
15$wgPdfPostProcessor = $wgImageMagickConvertCommand; 
16// if not defined via ImageMagick
17// $wgPdfPostProcessor = '/usr/bin/convert';  
18$wgPdfInfo = '/usr/bin/pdfinfo'; 
19$wgPdftoText = '/usr/bin/pdftotext';
  • 在迁移时发现pdfinfo pdftotext不安装亦可正常使用。

Extension:Semantic MediaWiki

在使用新版本Composer更新SMW时,Composer会提示报错 Package::setProvides must be called with a map of lowercased package name.。目前找到的解决方法是使用旧版Composer(如版本2.1.14)进行更新。[1]如果遇到莫名其妙的包 冲突/丢失 的问题,可以尝试更换composer的源。

Extension:VisualEditor

此章节仅针对旧版VisualEditor,新版MediaWiki(1.35版本起)已内置相关组件无需额外安装。
//弃用的配置
if ( $_SERVER['REMOTE_ADDR'] == 'SERVER-IP' ) {
 $wgGroupPermissions['*']['read'] = true;
 $wgGroupPermissions['*']['edit'] = true;
}
//启用的配置
require_once "$IP/extensions/NetworkAuth/NetworkAuth.php";
$wgNetworkAuthUsers[] = [
	'iprange' => [ 'SERVER-IP',
                 '127.0.0.1' ],
	'user'    => 'Aria-bot',
];
  • Parsoid服务的单服务器多站点的示例配置内容(位于/etc/mediawiki/parsoid/config.yaml)建议拷贝源代码:
worker_heartbeat_timeout: 300000

logging:
    level: info

services:
  - module: ../src/lib/index.js
    entrypoint: apiServiceWorker
    conf:
        mwApis:
        - # 1st
          uri: 'http://www.kanade.win/api.php'
          domain: 'www.kanade.win'  
        - # 2nd
          uri: 'http://pool.kanade.win/api.php'
          domain: 'pool.kanade.win'  
        - # 3rd
          uri: 'http://test.kanade.win/api.php'
          domain: 'test.kanade.win'

其他

语言

修改界面语言时,用户语言 要与 维基使用语言 保持一致;否则会出现奇怪的情况。但是现在这两个选项在配置文件中设置成一样的,也隐藏了前台的修改选项。