Jump to content

User:Salix alba/TDSkell.js

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Salix alba (talk | contribs) at 10:44, 28 July 2013 (v13). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
function TDSkel($) {

 function start() {
  alert("TDSkel 0.13");

  var pagename = "Template:Quote";
  var URL = "http://en.wikipedia.org/w/index.php";
  $.ajax({
   url: URL,
   data: { title: pagename, action: "raw" },
   dataType: "text"
  }).done(doneAjax);
 }


 function doneAjax(data) {
  var params = findParams(data);
  var code = generateSkel(params);
  alert(code);
 }

 function findParams(data) {
  console.log("findVars");
  var pat = /\{\{\{([^\{\|\}]+)/g;  
  var matches;
  var obj = new Object();
  while((matches=pat.exec(data)) != null) {
     obj[matches[1]]=1;
  }
  var params = new Array();
  var i=0;
  for(var x in obj) {
   params[i++] = x;
   if( console && console.log ) {
     console.log("Match:", x);
   }
  }
  console.log("findVars done");
  returns params;
 }

 function generateSkel(params) {
  var res="";

  res += '<' +'templatedata>\n';
  res += '{\n';
  res += '  "description": "insert description here",\n';
  res += '  "params": {\n';
  for(var i = 0; i < params.length; ++i)
  {
   res += '    "' + params[i] + '": {\n';
   res += '      "label": "' + params[i] + '",\n';
   res += '      "description": "",\n';
   res += '      "type": "string",\n';
   res += '      "required": false\n';
   res += '    }';
   if(i < params.length+1 ) res += ',';
   res += '\n';
  }
  res += '  }\n';
  res += '}\n';
  res += '<'+'/templatedata>\n';
  return res;
 } 

 ////////// START //////////
 start(); 
}

if( $.inArray( mw.config.get('wgNamespaceNumber'), [ 2, 10 ] ) !== -1 && $.inArray( mw.config.get('wgAction'), [ 'edit', 'submit' ] ) !== -1 ) {
	$(document).ready(TDSkel);
}