Difference between revisions of "Visual editor"

From Organic Design wiki
m
(update config)
Line 34: Line 34:
 
Restart the ''parsoid'' daemon and then test that you can read a page as follows (note the wiki ID matching the setting above):
 
Restart the ''parsoid'' daemon and then test that you can read a page as follows (note the wiki ID matching the setting above):
 
<source lang="bash">
 
<source lang="bash">
/etc/init.d/parsoid restart
+
service parsoid restart
 
wget -O - http://localhost:8142/123/Main_Page
 
wget -O - http://localhost:8142/123/Main_Page
 
</source>
 
</source>
Line 41: Line 41:
 
Include the extension and its settings in the wiki's LocalSettings.php, e.g.
 
Include the extension and its settings in the wiki's LocalSettings.php, e.g.
 
<source lang="php">
 
<source lang="php">
include( "$IP/extensions/VisualEditor/VisualEditor.php" );
+
wfLoadExtension( 'VisualEditor' );
  
 
// Enable by default for everybody
 
// Enable by default for everybody
Line 53: Line 53:
  
 
// Specify which wiki from the parsoid configuration we're using
 
// Specify which wiki from the parsoid configuration we're using
$wgVisualEditorParsoidURL = 'http://localhost:8142';
+
$wgVirtualRestConfig['modules']['parsoid'] = array(
$wgVisualEditorParsoidPrefix = '123';
+
'url' => 'http://localhost:8142',
 +
'domain' => 'foo',
 +
'prefix' => 'foo',
 +
);
  
// Add organicdesign to the supported skins
+
// Add organicdesign to the supported skins (vector, monobook etc are included by default)
$wgVisualEditorSupportedSkins[] = 'monobook';
+
$wgVisualEditorSupportedSkins[] = 'organicdesign';
  
 
// Namespaces to enable VisualEditor in
 
// Namespaces to enable VisualEditor in
$wgVisualEditorNamespaces[] = NS_USER_TALK;
+
$wgVisualEditorNamespaces[] = NS_MAIN;
 
</source>
 
</source>
  

Revision as of 22:14, 28 February 2016

I'm creating a local page for this as it was quite difficult to install so I want some of my own notes for future reference. The main page for the extension is at MW:Extension:VisualEditor.

First download and unpack a snapshot for the extension corresponding to the wiki version as usual, then install nodejs with apt, but if your repo has an older version than 0.8, then remove it and install from NodeSource using the following commands (see this for details).

curl -sL https://deb.nodesource.com/setup | sudo bash -
apt-get install nodejs


Now install the paisoid package via apt (see MW:Parsoid/Setup for more detail and for possible updates to the procedure).

apt-key advanced --keyserver keys.gnupg.net --recv-keys 664C383A3566A3481B942F007A322AC6E84AFDD2
apt-add-repository "deb https://releases.wikimedia.org/debian jessie-mediawiki main"
apt-get update
apt-get install parsoid

Edit the parsoid configuration (/etc/mediawiki/parsoid/settings.js) adding a parsoidConfig.setMwApi for each wiki in the wikia that will be using the editor, e.g.

parsoidConfig.setMwApi({
	uri: 'http://foo.organicdesign.co.nz/wiki/api.php',
	domain: 'foo',
	prefix: 'foo'
});


You may also like to lock down the parsoid daemon so it can only be accessed from the local host which you can do by editing /etc/default/parsoid and changing the INTERFACE setting from 0.0.0.0 to 127.0.0.1.

INTERFACE="127.0.0.1"


Restart the parsoid daemon and then test that you can read a page as follows (note the wiki ID matching the setting above):

service parsoid restart
wget -O - http://localhost:8142/123/Main_Page

Check the parsoid log in /var/log/parsoid/parsoid.log to ensure that the request executed properly.

Include the extension and its settings in the wiki's LocalSettings.php, e.g.

wfLoadExtension( 'VisualEditor' );

// Enable by default for everybody
$wgDefaultUserOptions['visualeditor-enable'] = 1;

// Don't allow users to disable it
$wgHiddenPrefs[] = 'visualeditor-enable';

// OPTIONAL: Enable VisualEditor's experimental code features
#$wgDefaultUserOptions['visualeditor-enable-experimental'] = 1;

// Specify which wiki from the parsoid configuration we're using
$wgVirtualRestConfig['modules']['parsoid'] = array(
	'url' => 'http://localhost:8142',
	'domain' => 'foo',
	'prefix' => 'foo',
);

// Add organicdesign to the supported skins (vector, monobook etc are included by default)
$wgVisualEditorSupportedSkins[] = 'organicdesign';

// Namespaces to enable VisualEditor in
$wgVisualEditorNamespaces[] = NS_MAIN;

Locked-down wikis

If you're running a private wiki (no public editing allowed) then you'll need to also set the following, but note that this means your cookie data is being sent over HTTP, so make sure you only do this if the parsoid daemon is on the localhost.

$wgSessionsInObjectCache = true;
$wgVisualEditorParsoidForwardCookies = true;

Another way to handle private wikis is to simply make the LocalSettings.php file detect if the request is local and allow access in this case, for example:

$wgGroupPermissions['*']['read'] = $_SERVER['REMOTE_ADDR'] == '1.2.3.4';

Where 1.2.3.4 is the IP of the localhost (you'll need to check what the REMOTE_ADDR is on your server for local requests).

SSD's

If you're system is running an SSD and you've gone through the SSD Optimisation checklist then you'll need to edit the start case in the /etc/init.d/parsoid file and have it create the /var/log/parsoid directory owned by parsoid. See the Nginx and MariaDB examples on that page for details.

See also