Talk:Parsoid/Archive

Parsoid working but getting JSON error
Hi, Using windows 8- X64, ran through the the Parsoid/Setup instructions for windows. installed git, nodejs 0.10 x86, visual studio 10 express... etc'.

localsettings.js has this: parsoidConfig.setInterwiki( 'mywiki.server.com', 'http://mywikiserver.com/wiki/api.php' ); parsoidConfig.defaultAPIProxyURI = 'http://mycompany.proxy:8080';

Results: I can connect to the wiki like so: http://localhost or http://mywiki.server.com

I can connect to http://localhost:8000 and get the parsoid server. I can even run the /_rt/Parsoid test which pulls the Parsoid webpage and runs it through the parsoid server.

However, none of the following works: http://localhost:8000/localhost/wiki/index.php/Main_Page http://localhost:8000/localhost/Main_Page http://localhost:8000/mywiki.server.com/Main_Page

I get a "failed to parse the JSON response" error..

Please Help!

Thanks, M.g. Nogmor (talk) 16:00, 25 February 2014

-- I used to have it working on Ubuntu 12.04 and 13.10. But currently a new install gives the same JSON error: ParserError: Failed to parse the JSON response for Page Fetch null But basically everything seems to be ok: - Parsoid can be reached on localhost:8000 and renders the page as expected - The wiki api can be reached on the expected adress, which I did put in localsettings.js

Regards, Henk, 19:00, 3 March 2014

Set up in web server?
My wiki is on the webserver running Linux 2.6. I've installed node by following ./configure --prefix=${HOME}/local/ make make install Now, I've downloaded Parsoid and copied into the wiki's extension directory: ${HOME}/public_html/testwiki/testwiki/extension/ And, I did cd Parsoid/js npm install Edit the localsettings.js as parsoidConfig.setInterwiki( 'testwiki', 'http://test.mydomain.com/testwiki/' ); and, run the Parsoid server like this: cd Parsoid/js node api/server.js And when I checked the webpage of http://test.mydomain.com:8000/testwiki, but the browser failed to open the page.

Is there anything I missed? Would someone guide me how to set up properly in a webserver, please? (I don't have root access since it is on the webserver.)

Multiple wikis
Can several Mediawiki installation use the same Parsoid server? --Amir E. Aharoni (talk) 18:35, 13 October 2012 (UTC)


 * Yes. The Parsoid takes a prefix when the requests come in to determine which wiki you're talking about. Jdforrester (WMF) (talk) 22:34, 15 October 2012 (UTC)


 * Hello Jdforrester, could you please elaborate. In my setup, one Ubuntu server and two wikis (ohne http and one https) this is not working or lets say I do not know how to set it up correctly. --SmartK (talk) 08:34, 6 September 2013 (UTC)


 * Any news on how-to install more than one wiki on a server with Parsoid / VisualEditor running? This would be highly appreciated! Thank you!


 * I have tried to configure two of my wikis to use the same parsoid by adding the following to "Parsoid/js/api/localsettings.js"

parsoidConfig.setInterwiki( 'localhost', 'http://www.mytestwiki.com/api.php' ); parsoidConfig.setInterwiki( 'localhost', 'http://www.anotherwiki.com/api.php' );
 * This is sadly not working. Here (https://www.mediawiki.org/wiki/Parsoid/Troubleshooting) it said: "You can set up any number of interwikis by adding more parsoidConfig.setInterwiki statements in localsettings.js."
 * Could someone point me into the right direction? --SmartK (talk) 09:24, 21 January 2014 (UTC)
 * Is there someone how could help with this? --SmartK (talk) 16:25, 24 February 2014 (UTC)
 * You have to use different names for your Wikis, e.g.:

parsoidConfig.setInterwiki( 'mytest', 'http://www.mytestwiki.com/api.php' ); parsoidConfig.setInterwiki( 'another', 'http://www.anotherwiki.com/api.php' );·
 * Then, in the LocalSettings.php configuration file of these wikis, set $wgVisualEditorParsoidPrefix accordingly, e.g.:

$wgVisualEditorParsoidPrefix = 'mytest';
 * HTH, Fany (talk) 12:23, 3 March 2014 (UTC)
 * Dear Fany, THANK YOU. I have been trying this for at least a couple of months. With your help it now took my 5 minutes to get it running. Now both wikis are on one physical server and also have parsoid running :-) --SmartK (talk) 15:19, 3 March 2014 (UTC)


 * Mark
 * When I change the names for local host to another name the wiki gives an error server: parsoidserver-http-bad-statues-400. Yet, it works with localhost as the name. Any ideas.
 * Edit: Forgot to restart Parsoid. now it works great!

VPS needed?
I'm running the VisualEditor on a shared server that doesn't allow background services like Parsoid to run. Is there any option to connect to a server running elsewhere? A group parsoid server perhaps? Or will everyone with a MediaWiki site have to upgrade to a VPN?


 * Yes what? Everyone with a MediaWiki site has to upgrade to a VPS?


 * The "yes" wasn't a reply to that comment (indeed, it was written two months previously - have now added the "unsigned" templates). To answer the question, we're looking at building out support for HTML-only wikis that will let you edit with VisualEditor without being able to run Parsoid. Stay tuned! Jdforrester (WMF) (talk) 00:43, 17 July 2013 (UTC)

Any progress on creating a shared Paroid server or an html-only wiki option with the Editor? Even an interim solution so users could avoid upgrading to a VPS? A VPS is a mighty big leap in expenses for most smaller wiki-projects (including myself). Mark Jurgens

Gateway between NodeJS/PHP to provide MediaWiki hooks to handle third-party extensions?
Will it be possible to use the hooks from the code MediaWiki like SematicMediaWiki and processing properties Parsoid through a gateway PHP-NodeJS? Vit1251 (talk) 13:24, 19 March 2013 (UTC)

You plan to upgrade nodejs 0.9 and later?
You plan to upgrade nodejs 0.9 and later? Vit1251 (talk) 13:24, 19 March 2013 (UTC)
 * We now support nodejs 0.10. Cscott (talk) 14:43, 14 August 2013 (UTC)

How about using the Travis-CI test Parsoid on GitHUB?
How about using the Travis-CI test Parsoid on GitHUB? Vit1251 (talk) 13:24, 19 March 2013 (UTC)
 * We use the wikimedia foundation's repository, which uses Jenkins to do automatic integration testing. See Continuous integration/Jenkins. Cscott (talk) 14:45, 14 August 2013 (UTC)

You do not plan to switch completely to GitHUB and hide you repository?
Your repository is hard to see the changes and ask, and the user friendly interface and GitHUB availability issue tracker. Vit1251 (talk) 13:35, 19 March 2013 (UTC)
 * We use the wikimedia foundation's repository. See Gerrit for our code review tool and  is our gitblit installation for browsing source.  There are also github mirrors at .  We use Bugzilla for bug tracking.  See also bug 35497 which discusses ways to sync github and gerrit.  I'll look into enabling yuvi's tools for the parsoid repo. Cscott (talk) 14:52, 14 August 2013 (UTC)

Running Parsoid on a "private" wiki - AccessDeniedError
I have a private wiki in which the users have to log in to read the contents. I managed to install Parsoid (for the VisualEditor extension), but when I run the API server (node api/server.js), I get the following error message.

AccessDeniedError: Your wiki requires a logged-in account to access the API. Parsoid will not work for this wiki!

If I set $wgGroupPermissions['*']['read'] = true; it runs fine, but then the wiki is no longer private. I understand that mediawiki is designed to be "open", but for what I'm using it for, I need to make it private. Any idea?

Installing on a private wiki
If you wan't to install visual editor onto a private wiki:

$local_ip = '127.0.0.1'; if ( $_SERVER['REMOTE_ADDR'] == $local_ip ) { $wgGroupPermissions['*']['read'] = true; $wgGroupPermissions['*']['edit'] = true; }else{ $wgGroupPermissions['*']['read'] = false; $wgWhitelistRead = array ("Special:Userlogin", "MediaWiki:Common.css", "MediaWiki:Common.js", "MediaWiki:Monobook.css", "MediaWiki:Monobook.js", "-"); $wgGroupPermissions['*']['edit'] = false; }
 * 1) Disable reading by anonymous users
 * 1) Disable anonymous editing

--This code needs to be slightly, working on it.

Didn't work for me.. had to change it into this:

Removed: $local_ip = '127.0.0.1'; if ( $_SERVER['REMOTE_ADDR'] == "127.0.0.1" OR $_SERVER['REMOTE_ADDR'] == "public ip of the server" ) { Ricmik (talk) 13:05, 1 September 2013 (UTC)

Using the wiki public IP
By rarylson in March 16, 2014

If your Parsoid is configured pointing to a public IP, you need to permit this IP too:

parsoid/api/localsettings.js: (example)

parsoidConfig.setInterwiki( 'localhost', 'http://wiki.domain.com/wiki/api.php' );

wiki/LocalLocalSettings.php:

$local_network = '127.0.0.0/8'; $local_ips = `hostname --all-ip-addresses`; $local_ips = explode(" ", $local_ips); if (Net_IPv4::ipInNetwork($_SERVER['REMOTE_ADDR'], $local_network) ||         in_array($_SERVER['REMOTE_ADDR'], $local_ips)) { $wgGroupPermissions['*']['read'] = true; $wgGroupPermissions['*']['edit'] = true; $wgGroupPermissions['*']['createpage'] = true; }
 * 1) Allow localhost (and all the loopback IPs) and the host IPs to use the api.
 * 2) See: http://www.mediawiki.org/wiki/Talk:Parsoid#Running_Parsoid_on_a_.22private.22_wiki_-_AccessDeniedError
 * 3)      http://pear.php.net/manual/en/package.networking.net-ipv4.ipinnetwork.php
 * 4)      hostname --help

Using a local IP
By rarylson in March 16, 2014

If you set your wiki subdomain in  to point to localhost (or other reserved loopback IP), you doesn't need to do the   check:

/etc/hosts:

127.0.1.1 wiki.domain.com
 * 1) parsoid needs comunicate with the wiki.domain.com via localhost

wiki/LocalLocalSettings.php:

$local_network = '127.0.0.0/8'; if (Net_IPv4::ipInNetwork($_SERVER['REMOTE_ADDR'], $local_network)) { $wgGroupPermissions['*']['read'] = true; $wgGroupPermissions['*']['edit'] = true; $wgGroupPermissions['*']['createpage'] = true; }
 * 1) Allow localhost (and all the loopback IPs) to use the api.
 * 2) See: http://www.mediawiki.org/wiki/Talk:Parsoid#Running_Parsoid_on_a_.22private.22_wiki_-_AccessDeniedError
 * 3)      http://pear.php.net/manual/en/package.networking.net-ipv4.ipinnetwork.php

More private wiki trouble
I may be making a silly mistake, but I've spent many many hours on it without success.

I just installed Parsoid and Visual Editor on my private mediawiki. (I use the wiki for my students to collaborate, and they sure don't like dealing with wikitext!)

I installed all the pieces, and followed the directions (I think) for the configuration. But when I click Edit, the page dims and I get an immediate "Error loading data from server: parsoidserver-http-curl-error: couldn't connect to host. Would you like to retry?" When I search for this specific error message, I get only a single hit (in Russian) which seems to be a case of another wiki admin with the same problem and no posted solution.

Here's the VisualEditor portion of my LocalSettings.php:

require_once("$IP/extensions/VisualEditor/VisualEditor.php"); $wgVisualEditorNamespaces[] = NS_PROJECT; $wgDefaultUserOptions['visualeditor-enable'] = 1; $wgHiddenPrefs[] = 'visualeditor-enable'; $wgVisualEditorParsoidURL = 'http://localhost:8000'; $wgVisualEditorParsoidPrefix = 'localhost'; $wgVisualEditorParsoidForwardCookies = true; require_once( "$IP/extensions/UniversalLanguageSelector/UniversalLanguageSelector.php" );

And here's parsoid/api/localsettings.js:

exports.setup = function( parsoidConfig ) { parsoidConfig.setInterwiki( 'localhost', 'http://www.geometricfunctions.com/methodswiki/api.php'); parsoidConfig.debug = true; };

I don't know if I actually needed to install the UniversalLanguageSelector, but early on I had a message that the ULS hooks couldn't be found, and finding no definitive documentation as to whether ULS is required, I installed it.

Though I set parsoidConfig.debug to true, I wasn't sure where to find the debug output. There didn't seem to be anything from Parsoid in debug_log.txt at the top level of the wiki, nor do I see anything relevant in the error_log.

I have these versions:

mediawiki: 1.22.0 node: 0.10.25 Parsoid: 0.0.1 VisualEditor: 0.1.0 (though the package.json says 0.0.0)

If anyone is able to point me in the right direction, I'd be most grateful, as will my students; they won't miss wikitext one bit if I can get this going for them!--Scottsteketee (talk) 12:08, 9 March 2014 (UTC)


 * Update: I got this working, with some help, after updating to mediawiki 1.22.2 (which may or may not have been relevant) and after adding the code shown below to LocalSettings.php. (I actually used my server's IP address rather than 127.0.0.1.) The success of this approach suggests to me that setting $wgVisualEditorParsoidForwardCookies = true; was not enough to allow communications between parsoid and the mySQL database (and in fact, that setting seems to be irrelevant, in that the code below is sufficient even when $wgVisualEditorParsoidForwardCookies is set to false). Might there be something else that I've not understood?--Scottsteketee (talk) 00:11, 19 March 2014 (UTC)

if ( $_SERVER['REMOTE_ADDR'] == '127.0.0.1' ) { $wgGroupPermissions['*']['read'] = true; $wgGroupPermissions['*']['edit'] = true; }
 * Another update: I updated my wiki to 1.22.4 and tested various settings in LocalSettings.php. I had the same results as before: $wgVisualEditorParsoidForwardCookies is irrelevant, and I have to set the permissions as if this is a public wiki for the VisualEditor to work. --Scottsteketee (talk) 00:47, 19 March 2014 (UTC)
 * Thanks for sharing this, your bit of code helped me set up Parsoid for my private wiki. --JimeoWan (talk) 16:14, 8 April 2014 (UTC)

Windows Server 2008 R2
Anyone knows how to get this running in Windows Server 2008 R2?

How can I config to allow Parsoid support multiple wiki?
One of our programmer stubbornly believe that one Parsoid could only support one wiki. I know he is wrong since Wikipedia and Wikia use this in many many wikis. I just don't know how to config. Does anyone know how to config?
 * See js/lib/mediawiki.ParsoidConfig.js in the source code, and js/api/localsettings.js.example. Basically you need to set up 'interwiki' prefixes for all your wikis. Cscott (talk) 15:27, 14 August 2013 (UTC)
 * Could someone maybe show us a sample of the config for this interwiki setup? Would be great!--SmartK (talk) 08:38, 6 September 2013 (UTC)
 * SOLVED, see posting above (somewhere) --SmartK (talk) 16:04, 3 March 2014 (UTC)

Error to install Parsoid on WAMP for Win-7x64...
Hello ! I'm French, sorry for my poor English... I Try to install Parsoid for MediaWiki on WAMP in Windows 7 x64 from this link: http://www.mediawiki.org/wiki/Parsoid#Getting_started

I launch the instal with: "npm install" into : D:\WEB\WAMP\WWW\Website\MyWiki\Extensions\Parsoid\js\

Then I get this final error at the line 281 of npm-debug.log=> ... 277 http 200 https://registry.npmjs.org/domino/1.0.8 278 silly registry.get cb [ 200, 278 silly registry.get  { vary: 'Accept', 278 silly registry.get    server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)', 278 silly registry.get    etag: '"79B59T2JHOSGNNRDXW55UM8PK"', 278 silly registry.get    date: 'Fri, 14 Jun 2013 06:51:45 GMT', 278 silly registry.get    'content-type': 'application/json', 278 silly registry.get    'content-length': '3147' } ] 279 http 200 https://registry.npmjs.org/pegjs 280 silly registry.get cb [ 200, 280 silly registry.get  { vary: 'Accept', 280 silly registry.get    server: 'CouchDB/1.3.0 (Erlang OTP/R15B03)', 280 silly registry.get    etag: '"B1AA422IDG6T49O2B4HUMSAD2"', 280 silly registry.get    date: 'Fri, 14 Jun 2013 06:51:45 GMT', 280 silly registry.get    'content-type': 'application/json', 280 silly registry.get    'content-length': '19774' } ] 281 http GET https://registry.npmjs.org/events/-/events-0.5.0.tgz 282 error Error: No compatible version found: jshashes@'>=0.0.0- <1.0.0-' 282 error Valid install targets: 282 error ["1.0.2","1.0.3"] 282 error    at installTargetsError (C:\Program Files (x86)\nodejs\node_modules\npm\lib\cache.js:682:10) 282 error    at next (C:\Program Files (x86)\nodejs\node_modules\npm\lib\cache.js:661:17) 282 error    at C:\Program Files (x86)\nodejs\node_modules\npm\lib\cache.js:641:5 282 error    at saved (C:\Program Files (x86)\nodejs\node_modules\npm\node_modules\npm-registry-client\lib\get.js:138:7) 282 error    at Object.oncomplete (fs.js:297:15) 283 error If you need help, you may report this log at: 283 error     283 error or email it to: 283 error     284 error System Windows_NT 6.1.7601 285 error command "C:\\Program Files (x86)\\nodejs\\\\node.exe" "C:\\Program Files (x86)\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" 286 error cwd D:\WEB\WAMP\WWW\Website\MyWiki\Extensions\Parsoid\js 287 error node -v v0.8.22 288 error npm -v 1.2.14 289 verbose exit [ 1, true ] [EOF]

Maybe that's because "Win7" instead of "Unix" ?? Thanks for any reply, or advise to install this Parsoid...

Godvicien (talk) 07:36, 14 June 2013 (UTC)
 * This should be fixed, we no longer depend on jshashes. Cscott (talk) 15:27, 14 August 2013 (UTC)

Grrrr Debian assumptions
It's bad enough that only Debian based Linux distros have "apt" command, and the installation instructions are flawed for all other Linux users, but it also totally ignores Windows/Apache Windows/IIS users.

So can we even use VisualEditor and Parsoid??? If not, then this REALLY needs to be made clear upfront. As I just wasted hours updating a server to use this, only to fall at this hurdle.


 * We've had reports of users installing it on Windows machines, but not sure if they were using local POSIX emulation/compatibility. Sorry for the confusion. Jdforrester (WMF) (talk) 15:55, 5 July 2013 (UTC)


 * We could use help from the community to support Windows installation. It *should* work.  If someone could write up good instructions, it would be very useful. No one on the dev team runs windows themselves. (Similarly for non-Debian/Ubuntu installs.) Cscott (talk) 14:42, 14 August 2013 (UTC)


 * I've installed parsoid on a Virtual ubuntu machine inside windows server. Bouncingmolar (talk) 16:11, 19 September 2013 (UTC)


 * I have Parsoid up, running, and working in Windows 7. See theWindows setup instructions. Basically, you need to install nodejs, which has a couple dependencies. Then you use npm (part of nodejs) to install Parsoid's dependencies. Or something like that. I'm actually struggling more to get Parsoid + VisualEditor working in an Ubuntu VM than in Windows. Oh, I almost forgot. I have Git Bash installed, but I've found CMD is much more reliable to use for running the Parsoid server. I think this is because Git Bash is not aware of environment variables. Cthughafish (talk) 16:41, 19 March 2014 (UTC)

Error downloading node
I'm having difficulty downloading the correct node version as per the instructions. When I try to get the legacy version, I get:

apt-get install nodejs nodejs-legacy npm E: Unable to locate package nodejs-legacy

And so I install the Chris Lea repository version, but then on install:

npm ERR! Not compatible with your version of node/npm: request@2.22.0 npm ERR! Required: ["node >= 0.8.0"] npm ERR! Actual:  {"npm":"1.1.4","node":"0.6.12"}

apt-get install nodejs npm nodejs is already the newest version. npm is already the newest version. 0 upgraded, 0 newly installed, 0 to remove and 6 not upgraded.

Any help would be much appreciated!--Stuartbman (talk) 15:01, 21 July 2013 (UTC)
 * what system are you on? nodejs-legacy isn't strictly required, it just lets you type 'node' instead of 'nodejs' on the commandline. Cscott (talk) 15:27, 14 August 2013 (UTC)

TypeError: Cannot read property 'oldid' of undefined
Hello all :)

the newest Parsoid run on my server and parse all wiki text correctly. But if i want to save a page, the parsoid console output is this: /var/www/services/Parsoid/js/api/ParserService.js:635 var doc, oldid = req.body.oldid || null; ^ TypeError: Cannot read property 'oldid' of undefined at app.post.cb (/var/www/services/Parsoid/js/api/ParserService.js:635:28) at getParserServiceEnv (/var/www/services/Parsoid/js/api/ParserService.js:376:4) at MWParserEnvironment.getParserEnv (/var/www/services/Parsoid/js/lib/mediawiki.parser.environment.js:279:3) at setupWikiConfig (/var/www/services/Parsoid/js/lib/mediawiki.parser.environment.js:299:3) at ApiRequest._processListeners.processSome (/var/www/services/Parsoid/js/lib/mediawiki.ApiRequest.js:102:17) at process.startup.processNextTick.process._tickCallback (node.js:245:9) worker 2942 died (1), restarting. - worker(2947) loading... - worker(2947) ready The POST request from Wiki looks ok, Content type is "application/x-www-form-urlencoded; charset=UTF-8", the content of the request: summary:Testedit minor:1 format:json action:visualeditoredit page:Testpage oldid:6833 basetimestamp:20130730144824 starttimestamp:20130803151237 html:htmlcontent token:a6e377be0566413a23b9e2d52b18f115+\ Has anyone an idea what the error is? Thanks!


 * Had the same problem after resolving mine above, help would be really appreciated. --Stuartbman (talk) 13:22, 8 August 2013 (UTC)
 * Also have had the very same problem (identical trace). Solved it with switching to epress 3.x, as indicated in the article under "Install dependencies": "I had to manually change package.json for the express item from 2.5.x to 3.x in order to parsoid to work". After changing Parsoid/js/packacke.json in this way, do an "npm install" again. (When the server runs, you will get a lot of deprecation warnings, but it seems that these can be ignored.) --95.33.104.9 20:13, 11 August 2013 (UTC)


 * See bug 52840. It appears that this might be a 'connect' incompatibility.  We don't actually recommend using express 3.x yet, since it's not compatible with express 2.x and we don't use it in production or development. Cscott (talk) 15:27, 14 August 2013 (UTC)

Error contacting the Parsoid server
Hi, I've been trying all night to get the VisualEditor to work, but no luck.

I'm running MediaWiki 1.22alpha on Ubuntu Precise. The parsoid is working ok at http://wikineering.org:8000/, the wiki too at http://wikineering.org/mediawiki/, the api too at http://wikineering.org/mediawiki/api.php

The relevant configuration variables in  set as such: $wgVisualEditorParsoidURL = 'http://localhost:8000'; $wgVisualEditorParsoidPrefix = 'localhost'; And in, I have: parsoidConfig.setInterwiki( 'localhost', 'http://localhost/mediawiki/api.php' );

When I click on the "Edit" button, the VisualEditor loads. But when I hit "Save", I get a little "Error contacting the Parsoid server" error message right below the textarea for the edit summary. I've also tried with "wikineering" and "wikineering.org" instead of "localhost", and every combination I could come up with, but no luck. I downloaded the Lynx browser and checked that http://localhost:8000 and http://localhost/mediawiki/api.php are working. They are.

Any ideas? Thanks in advance!


 * See above? Does that help? Cscott (talk) 14:40, 14 August 2013 (UTC)


 * Indeed, I saw it only a while ago, my bad. The issue has been reported as 52840.

Translating mathematics markup
Hello. In a discussion about the way Flow might handle mathematics markup here, I was told I don't think that anyone has said that HTML5+RDF storage precludes storage for mathematics work; that's something that the Parsoid team is working on. Is this something which is likely to be possible under Flow? It would be interesting to know how it is proposed to handle the translation and storage of $$...$$. There might be some interest, and even help, at en:WT:WPM. Spectral sequence (talk) 21:17, 18 August 2013 (UTC)
 * We are handling math just as any other tag extension. Attributes and extension content (latex in case of math) are exposed for editing. AFAIK the VisualEditor team is working both on a specialized math widget and generic tag extension editing that uses this.
 * Our current rendering uses the PHP default rendering (PNG images). We'd like to explore rendering to MathML with MathJax in the future (see bug 51698), but this won't affect the Latex-based editing interface at all. MathML-based editing would require a bidirectional conversion between MathML to Latex. -- Gabriel Wicke (GWicke) (talk) 19:19, 19 August 2013 (UTC)

vagrant
I tried to setup parsoid via vagrant. All I did is enabled the role. However if I try to click on that javascript edit box I get an error.

Error loading data from server:parsoidserver-http-request-error: MWHttpRequest error. Would you like to retry?

If I click yes the error occurs again and again. Do I need to configure something anything special?

I am getting the same error. Can't find the solution anywhere. Using MW 1.22.0rc2. If you create a new page and click 'Edit'. points to right section and shows up the edit bar correctly. But 'Edit' click with the existing page doesn't work and shows an alert box with that error. Also 'Edit Source' is showing a default editor in stead of visual editor.

Any solution/suggestion?

I had the same problem (though on Windows 7 using XAMPP). I solved it by prepending "http://" to the relevant URLs. In my setup:

From mediawiki/LocalSettings.php:

From mediawiki/extensions/visualeditor/VisualEditor.php:

From parsoid/api/localsettings.js:

Is this the correct way to do it? I don't know. But it worked for me.

Which Versions which Errors
It would be very nice to get detailed informations which 3rd party package-versions are used (node.js, D-BUS etc.). This would make it possible to follow with an optimized, dedicated system. For now I get the following output. Do I really have to install git too or is there a hint available? Actually I only want to install the extension, instead of a complete repository management system or dev- environment like Vagrant.

Debian 6:

npm WARN package.json mediawiki-parsoid@0.0.1 No repository field. [...] npm ERR! not found: git npm ERR! npm ERR! Failed using git. npm ERR! This is most likely not a problem with npm itself. npm ERR! Please check if you have git installed and in your PATH. [...] --Steviex2 (talk) 04:40, 14 September 2013 (UTC)
 * 1) npm install
 * Yes, I believe you need to install git at the moment. Better packaging is on our roadmap.  You might also look into the https://gerrit.wikimedia.org/r/p/mediawiki/extensions/Parsoid/js/contrib.git repository, which should contain working versions of all the third-party npm modules used by Parsoid. Cscott (talk) 16:53, 17 September 2013 (UTC)

The mentioned directory "https://gerrit.wikimedia.org/r/p/mediawiki/extensions/Parsoid/js/contrib.git" is obviously empty, or the link is incorrect. Is there a trick to retrieve this info? Even after a git clone I can't see it.

--Steviex2 (talk) 07:58, 19 September 2013 (UTC)--

Run parsoid over https?
I'm installing the Visual Editor and Parsoid on a dev wiki for the company I work for to test out the visual editor before it gets released with the stable mediawiki 1.22 later this year.

The production wiki is externally faceable, and we're running over https rather than http. Is this a problem with running the webservice, which runs over http and port 8000?

Is it as simple as reconfiguring iptables, a configuration change, or something that requires fundamentally alter the Parsoid code?

Thanks, Silversonic (talk) 17:30, 14 September 2013 (UTC)
 * Parsoid can run over localhost on port 8000 and http. That is, VisualEditor will talk to the parsoid server, but the communication need not leave the host machine. Cscott (talk) 16:51, 17 September 2013 (UTC)

Unless I am very much mistaken, this could NOT affect http to https redirections or? --Steviex2 (talk) 05:37, 21 September 2013 (UTC)
 * you're correct, I was misinterpretting an error. It was due to private wikis not being supported --Silversonic (talk) 14:38, 15 November 2013 (UTC)

Error after updating Parsoid - cant start
Hi, im getting this error Im On Parsoid: commit d4350e6fa4c2a53bc51fdc2257a6b41a80909e9b Merge: 2f9f306 e2f1a2d Author: jenkins-bot  Date:  Wed Sep 18 00:54:36 2013 +0000

Merge "Add a test for DSR update bug."

Is it possible to run Parsoid on "localhost" only

 * Parsoid and VisualEditor are now working great on my private Ubuntu 12.04 Server. But now I noticed that node is listening on port 8000 also on the external IP. I would prefer for node to only listen on port 8000 internally, so to speak on localhost:8000. Can someone help? --SmartK (talk) 15:29, 19 September 2013 (UTC)
 * Can someone look into this? It would be highly appreciated. --SmartK (talk) 09:22, 21 January 2014 (UTC)
 * "export INTERFACE=127.0.0.1" before node server.js will bind to 127.0.0.1 --floewe (talk) 18:46, 14 February 2014 (UTC)
 * Or if you are using the parsoid.conf for upstart, add this along with the other env variables: env INTERFACE="127.0.0.1" --Jlemley (talk) 22:02, 20 February 2014 (UTC)
 * Thank you both for replying! I tried the following as I use node server.js
 * Sadly Parsoid is still running on the external port :-( --SmartK (talk) 16:22, 24 February 2014 (UTC)

crontab -e (and I added the following) @reboot export INTERFACE=127.0.0.1 @reboot node /root/mw-parsoid/Parsoid/js/api/server.js 2>&1
 * I now also tried a script with:

env INTERFACE="127.0.0.1" node /root/mw-parsoid/Parsoid/js/api/server.js 2>&1
 * 1) !/bin/bash
 * and also

export INTERFACE=127.0.0.1 node /root/mw-parsoid/Parsoid/js/api/server.js 2>&1
 * 1) !/bin/bash
 * But parsoid still responds on the external IP address!

Is there currently a run-level script available for Debian 6?
...edit...

Debian 6 Solution
Finally got it...could have been a little bit cleaner...I'm tired now :-)...


 * 1) ! /bin/sh
 * 2) /etc/init.d/pslparsoid
 * 3) BEGIN INIT INFO
 * 4) Provides:		pslparsoid
 * 5) Required-Start:	$remote_fs $syslog
 * 6) Required-Stop:	$remote_fs $syslog
 * 7) Should-Start:		$local_fs
 * 8) Should-Stop:		$local_fs
 * 9) Default-Start:	2 3 4 5
 * 10) Default-Stop:		0 1 6
 * 11) Short-Description:	Start Parsoid daemon
 * 12) Description:		Start up Parsoid, Debian run-level script by PSL GbR (draft)
 * 13) END INIT INFO

env VCAP_APP_PORT="8000" env NODE_PATH="/var/www/vhosts/xxx.vserver.de/httpdocs/extensions/Parsoid/js/node_modules"
 * 1) Some things that run always

case "$1" in start)    cd "/var/www/vhosts/xxx.vserver.de/httpdocs/extensions/Parsoid/js"    /usr/local/bin/node /var/www/vhosts/xxx.vserver.de/httpdocs/extensions/Parsoid/js/api/server.js >> nohup.out 2>&1 &    ;;  restart) echo "Stopping Parsoid..." echo "killall -9 node, could do more here..." killall -9 node ;; 'reload'|'force-reload')    echo "Could fail..."    cd "/var/www/vhosts/xxx.vserver.de/httpdocs/extensions/Parsoid/js"    /usr/local/bin/node /var/www/vhosts/xxx.vserver.de/httpdocs/extensions/Parsoid/js/api/server.js >> nohup.out 2>&1 &    ;;    stop) echo "Stopping Parsoid..." killall -9 node ;; *)    echo "Usage: /etc/init.d/pslparsoid {start|stop|restart|reload|force-reload}"    exit 1    ;; esac
 * 1) Carry out specific functions when asked to by the system

exit 0

...this works with often preinstalled Sysvinit too...

...any improvements???

Thx --Steviex2 (talk) 12:07, 20 September 2013 (UTC)


 * I would have created some function to reuse some of it, and your restart function is actually not restarting it, just killing it. My code is not tested, it might not work properly. To be good I think we should get the pid of parsoid, this code is killing every nodejs application.


 * 1) ! /bin/sh
 * 2) /etc/init.d/pslparsoid
 * 3) BEGIN INIT INFO
 * 4) Provides:		pslparsoid
 * 5) Required-Start:	$remote_fs $syslog
 * 6) Required-Stop:	$remote_fs $syslog
 * 7) Should-Start:		$local_fs
 * 8) Should-Stop:		$local_fs
 * 9) Default-Start:	2 3 4 5
 * 10) Default-Stop:		0 1 6
 * 11) Short-Description:	Start Parsoid daemon
 * 12) Description:		Start up Parsoid, Debian run-level script by PSL GbR (draft)
 * 13) END INIT INFO

env VCAP_APP_PORT="8000" env NODE_PATH="/var/www/vhosts/xxx.vserver.de/httpdocs/extensions/Parsoid/js/node_modules"
 * 1) Some things that run always

function stop { echo "Stopping Parsoid..." killall -9 node } function start { echo "Starting Parsoid..." cd "/var/www/vhosts/xxx.vserver.de/httpdocs/extensions/Parsoid/js" /usr/local/bin/node /var/www/vhosts/xxx.vserver.de/httpdocs/extensions/Parsoid/js/api/server.js >> nohup.out 2>&1 & }

case "$1" in start)    start    ;;  restart) stop start ;; 'reload'|'force-reload')    echo "Could fail..."    start    ;;    stop) stop ;; *)    echo "Usage: /etc/init.d/pslparsoid {start|stop|restart|reload|force-reload}"    exit 1    ;; esac exit 0
 * 1) Carry out specific functions when asked to by the system

Anyone has it working for Gentoo?
I'm a beginner there... This is in my /etc/init.d/parsoid:

// edited to working but not nice solution, see below for the final solution.
 * 1) !/sbin/runscript
 * 2) /etc/init.d/parsoid

description="Start Parsoid extension for MediaWiki"

start {	ebegin "Starting Parsoid extension for MediaWiki" cd "/var/www/domain/wiki/extensions/Parsoid/js" nohup node api/server.js &

eend $? } But obviously it runs in the console which needs to remain logged in (edit: not anymore, but sometimes throws some messages there), not speaking of remote restart of the server...

Thanks! --89.190.50.45 09:01, 26 September 2013 (UTC)

First test the script on the console. Then make sure you define the right states for rebooting etc. That helped me a lot :-). --Steviex2 (talk) 06:24, 29 September 2013 (UTC)

It works in console, but the output is shown in the console as well -> when I put it into init on boot it "hangs" on the Parsoid output and doesn't boot up properly. I need to figure out how to make it output to some log/nowhere instead of console so other programs run after it, probably in the line "node api/server.js". Stressing out I'm a linux newbie :)

Thanks, --146.102.34.101 16:04, 2 October 2013 (UTC)

For this I use ">> nohup.out" (log into file). Or "2>&1 &" send to nowhere. --Steviex2 (talk) 20:40, 2 October 2013 (UTC)

Thanks, but didn't work for me. kind of worked, but the final and nice solution is here:

Working init script for Gentoo
/etc/init.d/parsoid-daemon:
 * 1) !/sbin/runscript
 * 2) /etc/init.d/parsoid-daemon

description="Start Parsoid extension for MediaWiki as daemon"

start {	ebegin "Starting Parsoid extension for MediaWiki as daemon"

start-stop-daemon \ --start \ --pidfile /var/run/parsoid.pid \ --make-pidfile \ --verbose \ --background \ --stdout /var/log/parsoid.log \ --stderr /var/log/parsoid-err.log \ --exec node -- /var/www/domain/wiki/extensions/Parsoid/js/api/server.js

eend $? } First edit the path to your server.js by your server's configuration. Then you may want to delete the stdout and stderr lines to disable logging - I think it's good only for debug use.

And ofc you need to make it default -.

Hope it helps others :) --89.190.50.45 21:06, 7 October 2013 (UTC)

Any working Task Manager Script for Windows Server
Does someone has it configured at run level on Windows Server?

Scripts for RHEL 6 / CentOS 6 ?
I'm a beginner on these systems. Does anybody have a working script to launch Parsoid ? _ Thanks !
 * I found this stackoverflow answer on how to daemonize node.js scripts. I haven't tried it but I will once I can actually get it working on our wiki that's running on cent. Please let me know if you tried it and if it works --Silversonic (talk) 03:18, 22 November 2013 (UTC)

#! /bin/bash # # parsoid start # # chkconfig: 345 86 14 # description: parsoid # ### BEGIN INIT INFO # Provides: $parsoid ### END INIT INFO # Source function library. . /etc/init.d/functions rc=0 # See how we were called. case "$1" in   start)          export INTERFACE=127.0.0.1          cd /wiki/extensions/Parsoid/js          nohup node api/server.js &	  echo parsoid started          ;;    stop) process=`ps -ef | grep 'node api/server.js'| grep -v grep | awk '{print $2}'` if [ "${process}" != '' ] then kill -9 $process fi         ;; status)	 proc_find=`ps -ef | grep 'node api/server.js'| grep -v grep`	  if [ "${proc_find}" = '' ]	  then           	echo          	echo    parsoid is not started 	  	echo	  else	  	echo ${proc_find}          fi	  ;;    restart|reload) cd "$CWD" $0 stop $0 start ;;   *)          echo $"Usage: $0 {start|stop|restart|reload|status}"          exit 1  esac  exit $rc

Additional Configurations
Are there any additional configuration settings for parsoid available, which are currently not mentioned? I want to play with it.

--Steviex2 (talk) 09:15, 23 September 2013 (UTC)

Cookies are forwarding, page times out
So I was able to enable cookie forwarding on our private wiki, but now the page hangs and then times out. The page itself gives an "Error loading data from server: timeout. Would you like to retry?". When I re-disable cookie forwarding I get authentication errors so I'm assuming I've at least fixed that part of the setup. On the console when I run server.js all it says is



Some things about our wiki


 * we use strict ldap auth for login (although sysops can still create local accounts)
 * We run our site over https rather than http. I can run   and see the parsoid page but I cannot hit https://localhost:8000.  I assume if Parsoid can see some aspect of the wiki that it does not matter but I have been wrong in the past.

I feel like I'm really close to getting this to work, I just can't figure out how to jump this last hurdle. Any thoughts and / or suggestions would be very welcome. Thanks --Silversonic (talk) 03:13, 22 November 2013 (UTC)

I had this problem too! Eventually found the solution. I spent all day scratching my head over this - I don't want others making the same mistake.

Short answer: In your LocalSettings.php you need:

$wgSessionsInObjectCache = true;

Long Answer: MediaWiki uses PHP sessions for storing variables unique to your session on the server. What happens is that only one script instance can access the same session. When you call session_start it locks your session, and when the next script calls session_start it waits for the previous session to unlock (which is usually when the script finishes running.)

However, VisualEditor which calls Parsoid, and Parsoid makes an API call back to MediaWiki. It looks something like:

'edit' -> api.php -> Parsoid -> api.php

If you're passing cookies, VisualEditor locks the session when your cookie, and Parsoid's API call also tries to lock the same session using your cookie. Of course, the API can't lock it, because VisualEditor is holding the lock, and VisualEditor is waiting for Parsoid - so we end up in a deadlock that eventually times out.

It would hang inside of GlobalFunctions.php for about 60 seconds until the outer session timed out (and by that time, the PHP script times out so nothing is returned).

Enabling $wgSessionsInObjectCache fixes this program, because rather than using a lockable session MediaWiki uses it's own object caching.

I hope that helps. --198.160.96.7 18:32, 8 May 2014 (UTC)

How to use "parsoidConfig.allowCORS" ?
I would like any subdomain of .moegirl.org allowed to use the parsoid. How to config the parsoidConfig.allowCORS to achieve this goal?

parsoidConfig.allowCORS = '*.moegirl.org'; ?

--Zoglun (talk) 03:36, 7 December 2013 (UTC)

services/parsoid versions extension/Parsoid
Can you clarify the relation between  and  ? The setup page only refers to, but on the main page there are references to e.g.  . So is   not needed? Is it an old version that should be ignored, or a future version, or something completely different? When I tried, it seems that only  is needed, but I'm confused, and it would be good to clear this up as VisualEditor is tricky enough as it is. Stephan Matthiesen (talk) 19:34, 21 December 2013 (UTC)


 * Yes can somebody please clarify the differece between the "service" and the "extension" as it seems the extension is wholly unnecessary when the service is installed?

In Browser MediaWiki article to HTML conversion
I want to make it easy for people with poor bandwidth and limited amounts of disk space to access the most important Wikipedia articles,

I've made a PageRanked list from December's dump and have output a highly ranked selection of articles to local files (based on available USB stick space).

I'd like to use Parsoid's parser and HTML generator as it could be a good cross-platform way to render articles fairly accurately, but it seems like there are a lot of dependencies and setup to parse an article, it's referenced templates and images. I want to do something like this:

I imagine a whole bunch of templates would get looked up to render the article and some seconds later it would spit out the HTML. Can someone explain how to do this for real, or give an example that would work?

I'm not sure I'll notice any replies here so an email at luke dot stanley atsign g mail dotcom to poke me would be great!

Thank you!

Sincerely,

The Internets. —The preceding unsigned comment was added by 86.20.166.134 (talk • contribs) 18:43, 3 January 2014 (UTC)

Installing Parsoid on shared server
I'm using a shared server and don't have command line or ssh access. Is there a way to configure parsoid using node-cgi or another cgi script?

Please add support for HTTP authentication
My Wiki depends on HTTP authentication because I'm using NTLM authentication on IIS 8. Parsoid can't connect to the API. Please add this as a todo item (I realize it doesn't impact the Organization and won't be a high priority). It would help my corporate wiki's tremendously.

Thanks, Rob

--Robert.Labrie (talk) 19:54, 16 January 2014 (UTC)

TypeError in Logger.js
I have this strange error:

/www/parsoid/lib/Logger.js:105 } else if (typeof(o)==='object' && o.hasOwnProperty('msg')) { ^ TypeError: Cannot call method 'hasOwnProperty' of null at Logger.flatten (/www/parsoid/lib/Logger.js:105:39) at /www/parsoid/lib/Logger.js:88:40 at Array.map (native) at Logger.flatten (/www/parsoid/lib/Logger.js:88:9) at Logger.emitMessage (/www/parsoid/lib/Logger.js:173:17) at Logger.log (/www/parsoid/lib/Logger.js:206:9) at ApiRequest._requestCB (/www/parsoid/lib/mediawiki.ApiRequest.js:136:12) at self.callback (/www/parsoid/node_modules/request/request.js:121:22) at Request.EventEmitter.emit (events.js:95:17) at ClientRequest.self.clientErrorHandler (/www/parsoid/node_modules/request/request.js:230:10) worker 17031 died (8), restarting.

Someone can help me? Thank you :-)

Andreabont (talk) 16:39, 14 March 2014 (UTC)


 * I've got the exact same problem. I tried to modify the code to test if the object 'o' is not null. The test is passed without error, but it doesn't solve the original problem. My modification is :

105:  } else if (typeof(o)==='object' && o!=null && o.hasOwnProperty('msg')) { And the error is now : ~/src/parsoid/tests# echo '= foo =' | node parse Failed API request for null, 5 retries remaining. warning/api in null:Main_PageFailed API request for null, 4 retries remaining. warning/api in null:Main_Page Failed API request for null, 3 retries remaining. warning/api in null:Main_Page Failed API request for null, 2 retries remaining. warning/api in null:Main_Page Failed API request for null, 1 retries remaining. warning/api in null:Main_Page Failed API request for null, 0 retries remaining. warning/api in null:Main_Page Page Fetch failure for null : Error: connect ETIMEDOUT Error at Logger.emitMessage (/home/nrm/src/parsoid/lib/Logger.js:178:15) at Logger.log (/home/nrm/src/parsoid/lib/Logger.js:206:9) at /home/nrm/src/parsoid/tests/parse.js:127:8 at /home/nrm/src/parsoid/lib/mediawiki.parser.environment.js:246:3 at setupWikiConfig (/home/nrm/src/parsoid/lib/mediawiki.parser.environment.js:300:3) at Object.processSome [as _onImmediate] (/home/nrm/src/parsoid/lib/mediawiki.ApiRequest.js:113:17) at processImmediate [as _immediateCallback] (timers.js:330:15) Nrm (talk)

Problem with FlaggedRevs Extension
I tried to install VisualEditor on private wiki - http://www.enviwiki.cz, so we installed Parsoid + VisualEditor extension and it did not work and said - Error access server data: Parsererror. In error log I found message


 * PHP Fatal error: Call to a member function getTitle on a non-object in /home/czpenviwiki/envw/w/extensions/FlaggedRevs/frontend/FlaggablePageView.php on line 1813, referer: http://www.enviwiki.cz/wiki/P%C5%AFj%C4%8Dov%C3%A1n%C3%AD_m%C4%9Bstsk%C3%BDch_kol_-_N%C4%9Bmecko?veaction=edit

When I deactivated FlaggedRevs, everything works fine (this is the current state). Any idea, where could be problem?--Jirka Dl (talk) 10:10, 15 March 2014 (UTC)

Where to locate it?
it would be nice if there is a suggested location for parsoid, does it go with extensions, should it be percived as something in /usr/local or maybe /opt .... etc.


 * I second to to this --Harnas1977 (talk) 09:15, 4 March 2014 (UTC)


 * According to this change it should be located in "/usr/lib/parsoid" --&#91;&#91;kgh&#93;&#93; (talk) 19:16, 2 May 2014 (UTC)

Error: SSL Error: CERT_UNTRUSTED
npm ERR! Error: SSL Error: CERT_UNTRUSTED npm ERR! at ClientRequest. (/usr/lib/nodejs/npm/node_modules/request/main.js:440:26) npm ERR! at ClientRequest.g (events.js:185:14) npm ERR! at ClientRequest.EventEmitter.emit (events.js:88:17) npm ERR! at HTTPParser.parserOnIncomingClient (http.js:1445:7) npm ERR! at HTTPParser.parserOnHeadersComplete [as onHeadersComplete] (http.js:111:23) npm ERR! at CleartextStream.socketOnData (http.js:1356:20) npm ERR! at CleartextStream.CryptoStream._push (tls.js:396:27) npm ERR! at SecurePair.cycle (tls.js:750:20) npm ERR! at EncryptedStream.CryptoStream.write (tls.js:131:13) npm ERR! at Socket.ondata (stream.js:38:26) npm ERR! [Error: SSL Error: CERT_UNTRUSTED] npm ERR! You may report this log at: npm ERR!  npm ERR! or email it to: npm ERR! 

npm ERR! System Linux 3.2.0-59-virtual npm ERR! command "nodejs" "/usr/bin/npm" "install" npm ERR! cwd /home/nemobis/parsoid npm ERR! node -v v0.8.2 npm ERR! npm -v 1.1.39 npm ERR! message SSL Error: CERT_UNTRUSTED npm http GET https://registry.npmjs.org/colors npm http GET https://registry.npmjs.org/diff npm http GET https://registry.npmjs.org/es6-shim npm http GET https://registry.npmjs.org/optimist npm http GET https://registry.npmjs.org/html5 npm http GET https://registry.npmjs.org/pegjs npm http GET https://registry.npmjs.org/alea npm http GET https://registry.npmjs.org/simplediff/0.1.1 npm http GET https://registry.npmjs.org/domino npm http GET https://registry.npmjs.org/express npm ERR! npm ERR! Additional logging details can be found in: npm ERR! /home/nemobis/parsoid/npm-debug.log npm ERR! not ok code 0 Sob. --Nemo 08:22, 17 March 2014 (UTC)

dumpGrepper.js
Of course it depends on dumpReader.js which says "npm install libxmljs", but that didn't work for me. --Nemo 11:02, 17 March 2014 (UTC)

Run the Server
On my debian-wheezy the start-command is not "node api/server.js" it is "nodejs api/server.js". Can anyone confirm this?
 * Not so for me my command is node, i think it depends on rather you build from source or install from backports.

Can we point parsoid to use node.js on a remote server?
We're running a wiki (ver 1.22.3) and would like to install parsoid for the visual editor. It runs on shared hosting that doesn't allow installing node.js. Can we point parsoid to use node.js on a remote server, eg with heroku.com's free service? If so--how would we need to tweak parsoid? --Tickle me (talk) 19:44, 28 April 2014 (UTC)

auto startup sysvinit?
Debian has sysvinit instead of startup or systemd does anyone know how it might be setup with that?
 * http://askubuntu.com/questions/99232/how-to-make-a-jar-file-run-on-startup-and-when-you-log-out has some good information on sysvinit.
 * Well, two people wondering about the same thing at the same time. See me post just below. Hmm ... Probably we should work an a script and post it here. --&#91;&#91;kgh&#93;&#93; (talk) 19:17, 2 May 2014 (UTC)

Starting the Parsoid service automatically with ???
The docu only caters for upstart. So one should not dare to use sysvinit? Well one cannot since no script is provided. I am pretty lost here since I rely on Debian and not Ubuntu. :( --&#91;&#91;kgh&#93;&#93; (talk) 19:11, 2 May 2014 (UTC)


 * Hmm, perhaps there is something here to help the cause... --&#91;&#91;kgh&#93;&#93; (talk) 19:35, 2 May 2014 (UTC)


 * Oh my gosh, setting up Parsoid is being discussed here. Let's call it a day. What a waste. --&#91;&#91;kgh&#93;&#93; (talk) 19:48, 2 May 2014 (UTC)

Parsoid extension
Since Extension:Parsoid redirects here, it would probably make sense to add some instructions on how to install the actual Parsoid extension.