Moved some more of the build files around.
authorJohn Resig <jeresig@gmail.com>
Sun, 13 Aug 2006 15:15:15 +0000 (15:15 +0000)
committerJohn Resig <jeresig@gmail.com>
Sun, 13 Aug 2006 15:15:15 +0000 (15:15 +0000)
build/docs.js [new file with mode: 0644]
build/js/json.js [new file with mode: 0644]
build/js/xml.js [new file with mode: 0644]
docs/build/js.jar [deleted file]

diff --git a/build/docs.js b/build/docs.js
new file mode 100644 (file)
index 0000000..4ed6cc7
--- /dev/null
@@ -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&lt;Element&gt;": "An Array of DOM Elements.",
+       "Array&lt;String&gt;": "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, "&amp;")
+                       .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
+);
diff --git a/build/js/json.js b/build/js/json.js
new file mode 100644 (file)
index 0000000..d59ca0c
--- /dev/null
@@ -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;
+    }
+};
+
diff --git a/build/js/xml.js b/build/js/xml.js
new file mode 100644 (file)
index 0000000..cc94eb7
--- /dev/null
@@ -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 = {};
diff --git a/docs/build/js.jar b/docs/build/js.jar
deleted file mode 100644 (file)
index 194e592..0000000
Binary files a/docs/build/js.jar and /dev/null differ