Difference between revisions of "WikiServer - Getting VisualEditor working properly"

From The TinkerNet Wiki
Jump to navigation Jump to search
Line 141: Line 141:
 
#*(details coming...)
 
#*(details coming...)
 
#*Download the extension (do this ON the server...):
 
#*Download the extension (do this ON the server...):
#**<code>wget <nowiki>https://extdist.wmflabs.org/dist/extensions/NetworkAuth-REL1_35-9f2e881.tar.gz</nowiki></code>
+
#**<code>wget <nowiki>https://extdist.wmflabs.org/dist/extensions/NetworkAuth-REL1_35-9f2e881.tar.gz</nowiki> for version 1.35</code>
 +
#**
 
#**(You may need to find the latest or possibly correct version at some point...)
 
#**(You may need to find the latest or possibly correct version at some point...)
 
#***On MediaWiki 1.34:
 
#***On MediaWiki 1.34:

Revision as of 01:31, 2 August 2020

Note:  Apparently, This is being rolled into WikiMedia 1.35 by default. w00t!!!

Installing VisualEditor (MediaWiki 1.34 or earlier...)

Note:  This is still a work in progress...  Multi-Wiki is a bit of a fail.

Extension:VisualEditor

VisualEditor does not currently work with private wikis. Supposedly, there are workarounds, but more research is needed.

Requirements

  • Parsoid 0.11.0
  • Node.js 12

Parsoid Install

https://www.mediawiki.org/wiki/Parsoid/Setup

  • sudo apt install dirmngr
  • sudo apt-key advanced --keyserver keys.gnupg.net --recv-keys AF380A3036A03444
  • echo "deb https://releases.wikimedia.org/debian jessie-mediawiki main" | sudo tee /etc/apt/sources.list.d/parsoid.list
  • sudo apt install apt-transport-https
  • sudo apt update && sudo apt install parsoid
  • sudo vim /etc/mediawiki/parsoid/config.yaml

This will require further fuckery for the multi-wiki setup with private wiki!

VisualEditor Install

Find the current version via: Download MediaWiki extension

  • wget https://extdist.wmflabs.org/dist/extensions/VisualEditor-REL1_34-74116a7.tar.gz
    • This URL will change!
  • tar -xzf VisualEditor-REL1_34-74116a7.tar.gz
  • sudo rsync -av VisualEditor /var/www/html/wiki/extensions
  • sudo vim /var/www/html/wiki/LocalSettings.php
wfLoadExtension( 'VisualEditor' );
// Enable by default for everybody
$wgDefaultUserOptions['visualeditor-enable'] = 1;
// Optional: Set VisualEditor as the default for anonymous users
// otherwise they will have to switch to VE
// $wgDefaultUserOptions['visualeditor-editor'] = "visualeditor";
// Don't allow users to disable it
$wgHiddenPrefs[] = 'visualeditor-enable';
// OPTIONAL: Enable VisualEditor's experimental code features
#$wgDefaultUserOptions['visualeditor-enable-experimental'] = 1;
$wgVirtualRestConfig['modules']['parsoid'] = array(
       // URL to the Parsoid instance
       // Use port 8142 if you use the Debian package
       'url' => 'http://localhost:8142',
       // Parsoid "domain", see below (optional)
       'domain' => 'localhost',
       // Parsoid "prefix", see below (optional)
       'prefix' => 'localhost'
);

Multiple Wiki Configuration

Repeat the parts above where stuff is done in the /wiki/ folder

(but use the folder for your second wiki... duh...)

  • sudo vim /etc/mediawiki/parsoid/config.yaml
mwApis:
    - # This is the only required parameter,
      # the URL of you MediaWiki API endpoint.
      uri: 'http://wiki.tinkernow.net/api.php'
      domain: 'wiki'
      prefix: 'wiki'
    - # and another MediaWiki
      uri: 'http://labnotes.tinkernow.net/api.php'
      domain: 'notes'
      prefix: 'notes'
  • sudo service parsoid restart
  • sudo vim /var/www/html/wiki/LocalSettings.php
wfLoadExtension( 'VisualEditor' );

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

// Optional: Set VisualEditor as the default for anonymous users
// otherwise they will have to switch to VE
// $wgDefaultUserOptions['visualeditor-editor'] = "visualeditor";

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

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


$wgVirtualRestConfig['modules']['parsoid'] = array(
#       'url' => 'http://wiki.tinkernow.net:8142',
       'url' => 'http://localhost:8142',
       'domain' => 'wiki',
       'prefix' => 'wiki'
);
  • sudo vim /var/www/html/notes/LocalSettings.php
wfLoadExtension( 'VisualEditor' );

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

// Optional: Set VisualEditor as the default for anonymous users
// otherwise they will have to switch to VE
// $wgDefaultUserOptions['visualeditor-editor'] = "visualeditor";

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

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

#$wgVirtualRestConfig['modules']['parsoid']['forwardCookies'] = true;

$wgVirtualRestConfig['modules']['parsoid'] = array(
       'url' => 'http://localhost:8142',
       'domain' => 'notes',
       'prefix' => 'notes',
       'forwardCookies' => true
);

VisualEditor on MediaWiki 1.35 or newer

Why yes... It IS rolled in.

Either enable it during setup or add

WfLoadExtension( 'VisualEditor' );

to the list in LocalSettings.php.

Enabling VisualEditor on a Private Wiki

  1. Install the NetworkAuth extension
    • (details coming...)
    • Download the extension (do this ON the server...):
      • wget https://extdist.wmflabs.org/dist/extensions/NetworkAuth-REL1_35-9f2e881.tar.gz for version 1.35
      • (You may need to find the latest or possibly correct version at some point...)
        • On MediaWiki 1.34:
        • wget https://extdist.wmflabs.org/dist/extensions/NetworkAuth-REL1_34-68393b9.tar.gz
    • Copy it into your Private Wiki:
      • tar -xzf NetworkAuth-*.tar.gz -C /var/www/privatewiki/extensions
      • (do adjust for the ACTUAL root of your wiki...)
  2. Create a user named "parsoid" on your wiki.
  3. Add the following to LocalSettings.php on your Private Wiki:
    • replace 127.0.0.1 with the actual IP address of your Wiki Server
require_once "$IP/extensions/NetworkAuth/NetworkAuth.php";
 $wgNetworkAuthUsers[] = [
        'iprange' => [ '127.0.0.1' ],
        'user'    => 'parsoid'
 ];
  1. enjoy