Skip to content
Permalink
Browse files
Moved some more of the build files around.
  • Loading branch information
jeresig committed Aug 13, 2006
1 parent 991390e commit 7d4bf9725472b7684533a35e5fbd143c28a5758c
Showing 4 changed files with 242 additions and 0 deletions.
@@ -0,0 +1,98 @@
load("build/js/json.js");
load("build/js/xml.js");
load("build/js/writeFile.js");

var types = {
jQuery: "A jQuery object.",
Object: "A simple Javascript object. For example, it could be a String or a Number.",
String: "A string of characters.",
Number: "A numeric valid.",
Element: "The Javascript object representation of a DOM Element.",
Hash: "A Javascript object that contains key/value pairs in the form of properties and values.",
"Array<Element>": "An Array of DOM Elements.",
"Array<String>": "An Array of strings.",
Function: "A reference to a Javascript function."
};

var f = readFile("../jquery-svn.js");

var c = [], bm, m;
var blockMatch = /\/\*\*\s*((.|\n)*?)\s*\*\//g;
var paramMatch = /\@(\S+) *((.|\n)*?)(?=\n\@|!!!)/m;

while ( bm = blockMatch.exec(f) ) {
block = bm[1].replace(/^\s*\* ?/mg,"") + "!!!";
var ret = { params: [], examples: [] };

while ( m = paramMatch.exec( block ) ) {
block = block.replace( paramMatch, "" );

var n = m[1];
var v = m[2]
.replace(/\s*$/g,"")
.replace(/^\s*/g,"")
.replace(/&/g, "&")
.replace(/</g, "&lt;")
.replace(/>/g, "&gt;")
.replace(/\n/g, "<br/>")
/*.replace(/(\s\s+)/g, function(a){
var ret = "";
for ( var i = 0; i < a.length; i++ )
ret += "&nbsp;";
return ret;
})*/ || 1;

if ( n == 'param' || n == 'any' ) {
var args = v.split(/\s+/);
v = args.slice( 2, args.length );
v = { type: args[0], name: args[1], desc: v.join(' ') };
if ( n == 'any' ) v.any = 1;
n = "params";
} else if ( n == 'example' ) {
v = { code: v };
n = "examples";
}

if ( n == 'desc' || n == 'before' || n == 'after' || n == 'result' ) {
ret.examples[ ret.examples.length - 1 ][ n ] = v;
} else {
if ( ret[ n ] ) {
if ( ret[ n ].constructor == Array ) {
ret[ n ].push( v );
} else {
ret[ n ] = [ ret[ n ], v ];
}
} else {
ret[ n ] = v;
}
}
}

ret.desc = block.replace(/\s*!!!$/,"")
.replace(/</g, "&lt;")
.replace(/>/g, "&gt;");
//.replace(/\n\n/g, "<br/><br/>")
//.replace(/\n/g, " ");

var m = /^((.|\n)*?(\.|$))/.exec( ret.desc );
if ( m ) ret['short'] = m[1];

if ( ret.name ) c.push( ret );
}

var json = Object.toJSON( c );

writeFile( "data/jquery-docs-json.js", json );
writeFile( "data/jquery-docs-jsonp.js", "docsLoaded(" + json + ")" );

Object.toXML.force = { desc: 1, code: 1, before: 1, result: 1 };

var xml = Object.toXML( { method: c }, "docs" );

writeFile( "data/jquery-docs-xml.xml",
"<?xml version='1.0' encoding='ISO-8859-1'?>\n" + xml );

writeFile( "index.xml",
"<?xml version='1.0' encoding='ISO-8859-1'?>\n" +
"<?xml-stylesheet type='text/xsl' href='style/docs.xsl'?>\n" + xml
);
@@ -0,0 +1,117 @@
/*
json.js
2006-04-28
This file adds these methods to JavaScript:
object.toJSONString()
This method produces a JSON text from an object. The
object must not contain any cyclical references.
array.toJSONString()
This method produces a JSON text from an array. The
array must not contain any cyclical references.
string.parseJSON()
This method parses a JSON text to produce an object or
array. It will return false if there is an error.
*/
(function () {
var m = {
'\b': '\\b',
'\t': '\\t',
'\n': '\\n',
'\f': '\\f',
'\r': '\\r',
'"' : '\\"',
'\\': '\\\\'
},
s = {
array: function (x) {
var a = ['['], b, f, i, l = x.length, v;
for (i = 0; i < l; i += 1) {
v = x[i];
f = s[typeof v];
if (f) {
v = f(v);
if (typeof v == 'string') {
if (b) {
a[a.length] = ',';
}
a[a.length] = v;
b = true;
}
}
}
a[a.length] = ']';
return a.join('');
},
'boolean': function (x) {
return String(x);
},
'null': function (x) {
return "null";
},
number: function (x) {
return isFinite(x) ? String(x) : 'null';
},
object: function (x) {
if (x) {
if (x instanceof Array) {
return s.array(x);
}
var a = ['{'], b, f, i, v;
for (i in x) {
v = x[i];
f = s[typeof v];
if (f) {
v = f(v);
if (typeof v == 'string') {
if (b) {
a[a.length] = ',';
}
a.push(s.string(i), ':', v);
b = true;
}
}
}
a[a.length] = '}';
return a.join('');
}
return 'null';
},
string: function (x) {
if (/["\\\x00-\x1f]/.test(x)) {
x = x.replace(/([\x00-\x1f\\"])/g, function(a, b) {
var c = m[b];
if (c) {
return c;
}
c = b.charCodeAt();
return '\\u00' +
Math.floor(c / 16).toString(16) +
(c % 16).toString(16);
});
}
return '"' + x + '"';
}
};

Object.toJSON = function(obj) {
return s.object(obj);
};
})();

String.prototype.parseJSON = function () {
try {
return !(/[^,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]/.test(
this.replace(/"(\\.|[^"\\])*"/g, ''))) &&
eval('(' + this + ')');
} catch (e) {
return false;
}
};

@@ -0,0 +1,27 @@
Object.toXML = function( obj, tag ) {
if ( obj.constructor == Array ) {
var ret = "";
for ( var i = 0; i < obj.length; i++ )
ret += Object.toXML( obj[i], tag );
return ret;
} else if ( obj.constructor == Object ) {
var tag = tag || "tmp";
var p = "", child = "";

for ( var i in obj )
if ( obj[i].constructor == Array || /</.test(obj[i] + "") || Object.toXML.force[i] )
child += Object.toXML( obj[i], i );
else
p += " " + i + "='" + (obj[i] + "").replace(/'/g, "&apos;") + "'";

return "<" + tag + p + ( child ? ">\n" + child + "</" + tag + ">\n" : "/>\n" );
} else if ( obj.constructor == String ) {
//obj = obj.replace(/&lt;/g,"<").replace(/&gt;/g,">");
//return "<" + tag + "><![CDATA[" + obj + "]]></" + tag + ">";
return "<" + tag + ">" + obj + "</" + tag + ">\n";
}

return "";
};

Object.toXML.force = {};
BIN -692 KB docs/build/js.jar
Binary file not shown.

0 comments on commit 7d4bf97

Please sign in to comment.