jenkins-bot has submitted this change and it was merged.

Change subject: Parse a page on noinput
......................................................................


Parse a page on noinput

When no input is given to parse.js, it fetches and parses a page. The
--pagename is changed to --page and can be used as before, in concert
with --prefix.

Change-Id: Ic0eb2626ead3f16cdfd601ce5a5a4e0be3d3eef9
---
M js/api/ParserService.js
M js/tests/parse.js
2 files changed, 29 insertions(+), 5 deletions(-)

Approvals:
  Subramanya Sastry: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/js/api/ParserService.js b/js/api/ParserService.js
index e6c7496..928aa83 100644
--- a/js/api/ParserService.js
+++ b/js/api/ParserService.js
@@ -651,13 +651,14 @@
                        if ( !req.headers.cookie ) {
                                res.setHeader( 'Cache-Control', 
's-maxage=2592000' );
                        } else {
+                               // Don't cache requests with a session
                                res.setHeader( 'Cache-Control', 
'private,no-cache,s-maxage=0' );
                        }
                        tmpCb = parse.bind( null, env, req, res, function ( 
req, res, src, doc ) {
                                sendRes( doc.documentElement );
                        });
                } else {
-                       // Don't cache requests with a session or no oldid
+                       // Don't cache requests with no oldid
                        res.setHeader( 'Cache-Control', 
'private,no-cache,s-maxage=0' );
                        tmpCb = function ( err, src_and_metadata ) {
                                if ( err ) {
diff --git a/js/tests/parse.js b/js/tests/parse.js
index b5405c7..e59b4f8 100755
--- a/js/tests/parse.js
+++ b/js/tests/parse.js
@@ -8,6 +8,7 @@
        ParsoidConfig = require( '../lib/mediawiki.ParsoidConfig.js' 
).ParsoidConfig,
        WikitextSerializer = 
require('../lib/mediawiki.WikitextSerializer.js').WikitextSerializer,
        SelectiveSerializer = require( 
'../lib/mediawiki.SelectiveSerializer.js' ).SelectiveSerializer,
+       TemplateRequest = 
require('../lib/mediawiki.ApiRequest.js').TemplateRequest,
        Util = require('../lib/mediawiki.Util.js').Util,
        DU = require('../lib/mediawiki.DOMUtils.js').DOMUtils,
        optimist = require('optimist'),
@@ -150,10 +151,10 @@
                        'boolean': true,
                        'default': true
                },
-               'pagename': {
-                       description: 'The page name, returned for 
{{PAGENAME}}.',
+               'page': {
+                       description: 'The page name, returned for {{PAGENAME}}. 
If no input is given (ie. empty/stdin closed), it downloads and parses the 
page.',
                        'boolean': false,
-                       'default': 'Main page'
+                       'default': 'Main_Page'
                },
                'oldtext': {
                        description: 'The old page text for a 
selective-serialization (see --selser)',
@@ -225,7 +226,7 @@
        }
        parsoidConfig.fetchConfig = Util.booleanOption( argv.fetchConfig );
 
-       ParserEnv.getParserEnv( parsoidConfig, null, prefix, argv.pagename || 
null, null, function ( err, env ) {
+       ParserEnv.getParserEnv( parsoidConfig, null, prefix, argv.page || null, 
null, function ( err, env ) {
                if ( err !== null ) {
                        console.error( err.toString() );
                        process.exit( 1 );
@@ -287,6 +288,28 @@
 
                // process input
         var processInput = function() {
+
+                       // parse page
+                       if ( inputChunks.length === 0 ) {
+                               var target = env.resolveTitle( 
env.normalizeTitle( env.page.name ), '' );
+                               var tpr = new TemplateRequest( env, target );
+                               tpr.once( 'src', function ( err, 
src_and_metadata ) {
+                                       if ( err ) {
+                                               console.error( err.toString() );
+                                               process.exit( 1 );
+                                       }
+                                       env.setPageSrcInfo( src_and_metadata );
+                                       Util.parse( env, function ( src, err, 
doc ) {
+                                               if ( err ) {
+                                                       console.error( 
err.toString() );
+                                                       process.exit( 1 );
+                                               }
+                                               stdout.write( DU.serializeNode( 
doc.documentElement ) );
+                                       }, null, env.page.src );
+                               });
+                               return;
+                       }
+
             var input = inputChunks.join('');
             if (argv.html2wt || argv.html2html) {
                 var doc = DU.parseHTML(input.replace(/\r/g, '')),

-- 
To view, visit https://gerrit.wikimedia.org/r/92769
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Ic0eb2626ead3f16cdfd601ce5a5a4e0be3d3eef9
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Parsoid
Gerrit-Branch: master
Gerrit-Owner: Arlolra <[email protected]>
Gerrit-Reviewer: GWicke <[email protected]>
Gerrit-Reviewer: Subramanya Sastry <[email protected]>
Gerrit-Reviewer: jenkins-bot

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to