这篇文章于2018年的1月份发布于本人的网站,当时偷懒,有部分内容没有写完整。直到最近重新安装可视化编辑器才发现:安装过程并不是太过复杂,基本上只要你的Parsoid安装成功并且能够运行,那么离成功也就不远了,而所缺的就是几个检测结果和图片。另外被restbase给迷惑了,其实并不是必须的。


MediaWiki的可视化编辑器从2011年5月立项开始,发展到至今快6个年头,而真正走入大众视野却是在2017年的年中。目前维基百科的默认编辑器就是VisualEditor,它的所见即所得的特性提高了用户的体验,降低了入门门槛并提升了编辑维基的乐趣。
VisualEditor的原理,简单来说就是通过后台Parsoid 的程序来承担把wiki标记转化成html的任务,同时VisualEditor以插件的形式在MediaWiki中运行,用户可以在原来的编辑界面直接使用,编辑者角度上几乎无学习成本。
而它的安装难度要大于其他扩展程序,主要也就在于需要Parsoid服务(它是一个基于Nodejs的解析器服务。 它被许多MediaWiki扩展使用,包括VisualEditor,Flow,内容翻译和其他应用程序)的支持。而官方文档上除了有Ubuntu和Debian的安装方法外(基本上属于自动安装),没有给出CentOS的安装方法。
本文以指导如何在CentOS7下安装VisualEditor。

提示:

  • 在安装VisualEditor前请先确保你的MediaWiki已正确安装,并能编辑页面。
  • 文中的MeidaWiki版本为1.30(部分后补图片为1.34版的),皮肤为Vector(VisualEditor目前已知兼容的皮肤为:Vector、MonoBook、Apex和Minerva)

一、安装Parsoid

这是为在没有安装Parsoid的情况下,系统提示的错误信息。你虽然能够看到一个可视化编辑器的样式却无法使用。

1、安装依赖关系

要安装Parsoid服务并配置VisualEditor,我们需要在系统上安装一些CentOS软件包。 具体来说,我们将安装Nodejs,npm,vim和git。
使用下面的yum命令安装所有需要的软件包。

yum -y install nodejs npm vim-enhanced git

一定要确保所有的软件包和依赖项已经安装(如果你使用宝塔面板,那么在软件商店中安装PM2管理器,并且选择你的Node版本)。

2、安装并配置Parsoid

Parsoid可以安装在单独的MediaWiki服务器上。 但是对于本教程,我们默认是将MediaWiki和Parsoid安装在同一个CentOS 7服务器。
现在,由于我们使用的是CentOS 7服务器,因此我们需要手动安装Parsoid服务,因为官方软件包仅适用于基于Ubuntu / Debian的操作系统。
因此,首先创建一个新的/ opt / parsoid目录,并使用git命令克隆最新的parsoid,如下所示。

mkdir -p /opt/parsoid
git clone https://gerrit.wikimedia.org/r/mediawiki/services/parsoid /opt/parsoid

本截图采用的git地址比较老,在上面的代码中已更新为官方新的地址

现在进入“/ opt / parsoid”目录,使用下面的npm命令安装Parsoid服务。

cd /opt/parsoid
npm install

安装完成后,您将得到如下结果。

接下来,通过编辑相应的配置文件来配置Parsoid服务。
将示例配置“localsettings.example.js”复制到“localsettings.js”,然后使用vim编辑该文件。

cp localsettings.example.js localsettings.js
vim localsettings.js

取消注释“parsoidConfig.setMwApi”行,并使用MediaWiki API URL更改“uri”值,如下所示。

exports.setup = function(parsoidConfig) {// Do something dynamic with `parsoidConfig` like,parsoidConfig.setMwApi({uri: 'http://wiki.mindseed.cn/api.php',});};

保存并退出。

注:此步骤非必须,而且默认配置文件关闭了调用localsettings.js文件的功能的,除非你的Parsoid和MediaWiki不在同一个服务器上。

现在将'config.example.yaml'配置复制到'config.yaml'并用vim编辑器进行编辑。

cp config.example.yaml config.yaml
vim config.yaml

在“mwApis”行(第34行)上,使用MediaWiki API URL和“域”值更改“uri”值,并使用你自己的域名。

mwApis:- # This is the only required parameter,# the URL of you MediaWiki API endpoint.uri: 'http://wiki.mindseed.cn/api.php'# The "domain" is used for communication with Visual Editor# and RESTBase.  It defaults to the hostname portion of# the `uri` property above, but you can manually set it# to an arbitrary string. It must match the "domain" set# in $wgVirtualRestConfig.domain: 'wiki.mindseed.cn' #optional

uri中的地址请复制到浏览器检验一下,在我的网站中api.php文件是位于网站根目录下的,如果你将MediaWiki安装在网站的某个子目录下(如Wiki),那么请将uri改为http://你的网站域名/wiki/api.php。当然,Parsoid和Mediawiki安装于同一个服务器的话,也可以直接用localhost代替域名。

保存并退出。
接下来,我们将Parsoid配置为一项服务。 为此,转至“/ etc / systemd / system”目录并创建一个名为“parsoid.service”的新服务文件

cd /etc/systemd/system/
vim parsoid.service

粘贴下面的Parsoid服务配置。

[Unit]Description=Mediawiki Parsoid web service on node.jsDocumentation=http://www.mediawiki.org/wiki/ParsoidWants=local-fs.target network.targetAfter=local-fs.target network.target[Install]WantedBy=multi-user.target[Service]Type=simpleUser=rootGroup=rootWorkingDirectory=/opt/parsoidExecStart=/usr/bin/node /opt/parsoid/bin/server.jsKillMode=processRestart=on-successPrivateTmp=trueStandardOutput=syslog

注意:如果你使用的是nvm方式安装Node,那么ExecStart=/usr/bin/node这行需要修改成实际的地址(我的地址为/usr/local/n/versions/node/版本号/bin/node),否则你的parsoid是没有办法运行起来的。至于用户和用户组可以根据自己的需要新建一个专用的。

systemctl daemon-reload

现在,启动Parsoid服务,并使其在系统启动时每次执行。

systemctl start parsoid
systemctl enable parsoid

Parsoid现在应该在CentOS 7上作为一项服务运行,使用8000端口。您可以通过以下方式使用netstat命令进行检查。

netstat -plntu

你应该得到类似于以下的结果:

tcp6       0      0 :::8000             :::*             LISTEN

语法安装和配置已经完成。注意:如果你使用云服务器的话,别忘了将安全组中的8000端口放行,否则还是会报错。

好了,打开浏览器,输入`你的域名:8000`,页面如下:

注意:这里其实用的是http协议,所以浏览器会显示不安全

3、安装并配置可视化编辑器

安装插件就简单多了,打开配置文件LocalSettings.php,输入:

## 启用可视化编辑器
wfLoadExtension( 'VisualEditor' );$wgVirtualRestConfig['modules']['parsoid'] = array(// URL to the Parsoid instance// Use port 8142 if you use the Debian package'url' => 'http://wiki.mindseed.cn:8000',// Parsoid "domain", see below (optional)'domain' => 'wiki.mindseed.cn',// Parsoid "prefix", see below (optional)'prefix' => 'wiki.mindseed.cn');# 默认对所有用户启用
$wgDefaultUserOptions['visualeditor-enable'] = 1;

试着编辑一下维基页面吧。

问题

1、“编辑”标签和“编辑源代码”标签共存

安装完之后,每个页面就会重复出现“编辑”和“编辑源代码”的标签,而当你点击任何一个都会默认进入到可视化编辑器中。

MediaWiki官网的参数设置中有一个编辑模式的选项。

解决方法:在LocalSettings.php中加入如下代码

$wgVisualEditorUseSingleEditTab = true;
$wgDefaultUserOptions['visualeditor-editor'] = "visualeditor";

如果不希望在参数设置中显示“编辑模式”的选项,可以在上述代码中继续加一行

$wgHiddenPrefs[] = 'visualeditor-tabs';

2、除了条目外,是否能将可视化编辑器用在模板和其他命名空间

除了主条目外,可视化编辑器也可以用于其他命名空间,比如你自己新建的命名空间,如下面的MYTEST。

# 在条目、模板、用户中开启VisualEditor
$wgVisualEditorAvailableNamespaces = [NS_MAIN => true,NS_USER => true,NS_TEMPLATE => true,NS_MYTEST => true,
];

3、错误:apierror-visualeditor-docserver-http-error

在LocalSettings.php中$wgVirtualRestConfig['modules']['parsoid']那一段url如果你使用https则可能出现这样的错误,你可以将https改为http试一下。

如果Parsoid和MediaWiki安装在同一个服务器下,那么最根本的方法就是将网址改成localhost

$wgVirtualRestConfig['modules']['parsoid'] = array(// URL to the Parsoid instance// Use port 8142 if you use the Debian package'url' => 'localhost:8000',// Parsoid "domain", see below (optional)'domain' => 'wiki.mindseed.cn',// Parsoid "prefix", see below (optional)'prefix' => 'wiki.mindseed.cn');

参考文章:
《How to Install VisualEditor for MediaWiki on CentOS 7》
《如何在CentOS 7上安装MediaWiki的VisualEditor》
《VisualEditor安装笔记》

bin文件编辑_为MediaWiki安装可视化编辑器VisualEditor相关推荐

  1. java读二进制bin文件内容_利用Java读取二进制文件示例详细解说

    前言 此文主要给大伙介绍了关于Java读取二进制文件的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 读Hex写CSV data目录下有little-endian bin文 ...

  2. 用户收货地址h5页面_如何实现H5可视化编辑器的实时预览和真机扫码预览功能...

    前言所见即所得的设计理念在WEB IDE领域里一直是备受瞩目的功能亮点, 也能极大的提高 web coder的编程体验和编程效率. 笔者接下来就将对H5可视化编辑器的实时预览和真机扫码预览功能做一次方 ...

  3. 用户收货地址h5页面_如何实现H5可视化编辑器的实时预览和真机扫码预览功能?...

    前言 所见即所得的设计理念在WEB IDE领域里一直是备受瞩目的功能亮点, 也能极大的提高 web coder的编程体验和编程效率. 笔者接下来就将对H5可视化编辑器的实时预览和真机扫码预览功能做一次 ...

  4. h5案例欣赏及分析_如何实现H5可视化编辑器的实时预览和真机扫码预览功能

    往期精彩 基于NodeJS从零构建线上自动化打包工作流(H5-Dooring特别版) 在线IDE开发入门之从零实现一个在线代码编辑器 基于React+Koa实现一个h5页面可视化编辑器-Dooring ...

  5. bin文件对比_网罗几种中Python配置文件方式,总有一款适合你

    网罗几种中Python配置文件方式,总有一款适合你 提起Python的的配置文件,估计你去问10个人,每个人给你的答案多多少少都不一样,原因就是轮子太多了,并没有一个足够好到让大家普遍都接收的,所以在 ...

  6. img文件编辑_只会用chmod 777?Linux下的文件权限居然还有这么多骚操作

    介绍 一个文件一经创建,就具有三种访问方式 1.读,可以显示该文件的内容 2.写,可以编辑或删除它 3.执行,如果该文件是一个shell脚本或者程序 按照所正对的用户,文件的权限可以分为三类 1.文件 ...

  7. python找不到scripts文件夹_快速解决安装python没有scripts文件夹的问题

    安装Python2.7,好多次都不会产生scripts文件夹,导致无法使用pip. 折腾了一下,找到了解决办法. 让人无法接受的是,只要是我给的安装包一定不会产生scripts文件夹,所以应该是我的安 ...

  8. avue form提交变为不可编辑_教程42——富文本编辑器的原理(项目)

    完整版项目的代码链接: https://github.com/lyandzao/note/tree/master/react/react-tuts/react-admin/src​github.com ...

  9. python编辑配置_Python环境安装及编辑器配置(一)

    在2018年决定写一些关于Python的文章,其实写博客这件事在2016年就有了,但是因为个人的一些原因一直被耽搁.所以2018年的目标之一就是写多一点的博客,不管是是生活还是工作.好吧,废话不多说, ...

最新文章

  1. 预计2020年传感器需求超一万亿个
  2. group by具有去重的功能
  3. linux开机和登陆欢迎信息
  4. python代码加密解密_在python中加密 – 在Javascript中解密
  5. JDK 8中方便的新地图默认方法
  6. 【安卓开发 】Android初级开发(十二)Android向系统日历中添加事件
  7. C语言家谱管理程序,c语言的家谱——interesting~
  8. Jmeter系列之no-gui模式
  9. 3月24 matlab函数polyfit(x,y,n)分析
  10. iPhone4 降级6.12教程 无须SHSH 不装插件 不睡死[转载] by 轻鸢
  11. Ubuntu安装腾达u12驱动
  12. 中国古代哲学 (基础知识)
  13. python输出冒号_详谈python中冒号与逗号的区别_python_脚本之家
  14. 电影社交网络中Facemash女生评比算法讲解
  15. 电脑无法从U盘启动的问题解决
  16. 欧洲杯上链,区块链语境下的数字化有什么不一样?
  17. html把图片放到文章右边,怎么在文章中把图片放在文字的左边、右边、中 – 手机爱问...
  18. linux 用户禁止登陆,禁止Linux用户登录方法
  19. 汽车悬挂系统的现代控制分析(现代控制理论课程小论文)
  20. copay mysql数据库_MySQL无法添加外键约束

热门文章

  1. 经典面试题(11):关于变量提升,以下代码将输出什么?
  2. mysql键太长_数据库,主键为何不宜太长长长长长长长长?(转)
  3. ftpclient读取服务器文件能获得文件名文件大小0_Spring WEB工程整合使用FTP,ftp文本文件解析入库,文件上传下载
  4. 带你走进和声搜索算法(Harmony search )的世界!
  5. 你常吃的便利食品,正在加速你的衰老……研究发现饮食与DNA损伤有关
  6. M1芯片版mac软件安装出现异常怎么办?解决方法来了
  7. 1288:三角形最佳路径问题-2019-07-04
  8. laravel操作$request中值删除、增加、替换等方式的代码实例
  9. Linux笔记-iptables开放指定端口,开放ICMP协议,其他端口禁止访问
  10. Python笔记-房贷计算(本息和本金,每月还利息和每月还本金)及作图对比