LDRize Siteinfo parse

function parse(text){
  var reg = /^ ([^:\s]+)\s*: *'?((?:'|[^'])*?)'? *,? *$/
  var reg_title1 = /^-\s*\[\[([^:]+):([^\]]+)\]\]/
  var reg_title2 = /^-\s*(.+)/
  var info = creat_info();
  var dealing = false;
  var memo = [];
  text.split(/\r\n|\r|\n/).forEach(function(line){
    if(line.indexOf('//') === 0){
      //comment
    } else if(!(line.indexOf(' ') === 0)){
      if(!dealing){
        if(reg_title1.test(line)){
          dealing = true;
          info['name'] = RegExp.$1;
          info['data']['exampleUrl'] = RegExp.$2;
        } else if(reg_title2.test(line)){
          dealing = true;
          info['name'] = RegExp.$1;
        }
      } else {
        dealing = false;
        memo.push(info);
        info = create_info();
      }
    } else if(reg.test(line)){
      if(dealing){
        var key = RegExp.$1;
        var val = RegExp.$2;
        info['data'][key] = val.toLowerCase() === 'true'  ? true   :
                            val.toLowerCase() === 'false' ? false  : val.replace(/\\\\/g, '\\');
      }
    }
  });
  memo.push(info);
  return memo;
}

var create_info = (function(){
  var url = 'http://white.s151.xrea.com/wiki/index.php?cmd=ldrize';
  var time = (function(){
    var trim = function(num, l){
      if(num<0) num = -(num);
      if(typeof(num) != 'string') num = ''+num;
      var s = l - num.length;
      while(s>0){
        num = '0'+num;
        --s;
      }
      return num;
    }
    var d = new Date;
    var YYYY   = trim(d.getFullYear(), 4);
    var MM_1   = trim(d.getMonth()+1, 2);
    var DD     = trim(d.getDate(), 2);
    var T      = 'T';
    var HH     = trim(d.getHours(), 2);
    var MM_2   = trim(d.getMinutes(), 2);
    var SS     = trim(d.getSeconds(), 2);
    var offset = d.getTimezoneOffset();
    var plus   = '-';
    if(offset<=0){
      plus     = '+';
      offset   = -(offset);
    }
    var ZZ_1   = trim(offset/60, 2);
    var ZZ_2   = trim(offset%60, 2);

    return YYYY+'-'+MM_1+'-'+DD+T+HH+':'+MM_2+':'+SS+plus+ZZ_1+':'+ZZ_2;
  })();
  return function(){
    return {
      'name' : 'none',
      'database_resource_url' : url,
      'updated_at' : time,
      'created_at' : time,
      'resource_url' : url,
      'data' : {},
    }
  }
})();