📄 docs.js
字号:
name = pkg; dojo.debug("_onDocSearch found a package"); //dojo.docs._onDocSelectPackage(input); return; } for(var i = 0, fn; fn = data[pkg][i]; i++){ if(fn.toLowerCase().indexOf(name) != -1){ dojo.debug("_onDocSearch(): Search matched " + fn); var meta = _this.getPackageMeta({package: pkg}); meta.addCallback(closure(pkg, fn)); list.push(meta); // Build a list of all packages that need to be loaded and their loaded state. continue pkgLoop; } } } list = new dojo.DeferredList(list); list.addCallback(function(results){ dojo.debug("_onDocSearch(): All packages loaded"); _this._printFunctionResults(results[0][1]); }); }); }, _onDocSearchFn: function(/*String*/ type, /*Array*/ data, /*Object*/ evt){ dojo.debug("_onDocSearchFn(" + evt.name + ")"); var name = evt.name || evt.pkg; dojo.debug("_onDocSearchFn found a function"); evt.pkgs = packages; evt.pkg = name; evt.loaded = 0; for(var i = 0, pkg; pkg = packages[i]; i++){ dojo.docs.getPkgMeta(evt, pkg, dojo.docs._onDocResults); } }, _onPkgResults: function(/*String*/ type, /*Object*/ data, /*Object*/ evt, /*Object*/ input){ dojo.debug("_onPkgResults(" + evt.type + ")"); var description = ""; var path = ""; var methods = {}; var requires = {}; if(input){ input[evt.type] = data; if(input.expects && input.expects.pkgresults){ for(var i = 0, expect; expect = input.expects.pkgresults[i]; i++){ if(!(expect in input)){ dojo.debug("_onPkgResults() waiting for more data"); return; } } } path = input.pkgdoc.path; description = input.pkgdoc.description; methods = input.pkgmeta.methods; requires = input.pkgmeta.requires; } var pkg = evt.name.replace("_", "*"); var results = { path: path, description: description, size: 0, methods: [], pkg: pkg, requires: requires } var rePrivate = /_[^.]+$/; for(var method in methods){ if(!rePrivate.test(method)){ for(var pId in methods[method]){ results.methods.push({ pkg: pkg, name: method, id: pId, summary: methods[method][pId].summary }) } } } results.size = results.methods.length; dojo.docs._printPkgResult(results); }, _onDocResults: function(/*String*/ type, /*Object*/ data, /*Object*/ evt, /*Object*/ input){ dojo.debug("_onDocResults(" + evt.name + "/" + input.pkg + ") " + type); ++input.loaded; if(input.loaded == input.pkgs.length){ var pkgs = input.pkgs; var name = input.pkg; var results = {methods: []}; var rePrivate = /_[^.]+$/; data = dojo.docs._cache; for(var i = 0, pkg; pkg = pkgs[i]; i++){ var methods = dojo.docs._getCache(pkg, "meta", "methods"); for(var fn in methods){ if(fn.toLowerCase().indexOf(name) == -1){ continue; } if(fn != "requires" && !rePrivate.test(fn)){ for(var pId in methods[fn]){ var result = { pkg: pkg, name: fn, id: "_", summary: "" } if(methods[fn][pId].summary){ result.summary = methods[fn][pId].summary; } results.methods.push(result); } } } } dojo.debug("Publishing docResults"); dojo.docs._printFnResults(results); } }, _printFunctionResults: function(results){ dojo.debug("_printFnResults(): called"); // summary: Call this function to send the /docs/function/results topic }, _printPkgResult: function(results){ dojo.debug("_printPkgResult(): called"); }, _onDocSelectFunction: function(/*Object*/ input){ // summary: Get doc, meta, and src var name = input.name; var package = input.package || ""; var id = input.id || "_"; dojo.debug("_onDocSelectFunction(" + name + ")"); if(!name || !package) return false; var pkgMeta = this.getPackageMeta({package: package}); var meta = this.getFunctionMeta({package: package, name: name, id: id}); var doc = this.getFunctionDocumentation({package: package, name: name, id: id}); var list = new dojo.DeferredList([pkgMeta, meta, doc]); list.addCallback(function(results){ dojo.debug("_onDocSelectFunction() loaded"); for(var i = 0, result; result = results[i]; i++){ dojo.debugShallow(result[1]); } }); return list; }, _onDocSelectPackage: function(/*Object*/ input){ dojo.debug("_onDocSelectPackage(" + input.name + ")") input.expects = { "pkgresults": ["pkgmeta", "pkgdoc"] }; dojo.docs.getPkgMeta(input, input.name, dojo.docs._onPkgResults); dojo.docs.getPkgDoc(input, input.name, dojo.docs._onPkgResults); }, _onDocSelectResults: function(/*String*/ type, /*Object*/ data, /*Object*/ evt, /*Object*/ input){ dojo.debug("_onDocSelectResults(" + evt.type + ", " + evt.name + ")"); if(evt.type == "meta"){ dojo.docs.getPkgMeta(input, evt.pkg, dojo.docs._onDocSelectResults); } if(input){ input[evt.type] = data; if(input.expects && input.expects.docresults){ for(var i = 0, expect; expect = input.expects.docresults[i]; i++){ if(!(expect in input)){ dojo.debug("_onDocSelectResults() waiting for more data"); return; } } } } dojo.docs._printFunctionDetail(input); }, _printFunctionDetail: function(results) { // summary: Call this function to send the /docs/function/detail topic event }, selectFunction: function(/*String*/ name, /*String?*/ id){ // summary: The combined information }, savePackage: function(/*Object*/ callbackObject, /*String*/ callback, /*Object*/ parameters){ dojo.event.kwConnect({ srcObj: dojo.docs, srcFunc: "_savedPkgRpc", targetObj: callbackObject, targetFunc: callback, once: true }); var props = {}; var cache = dojo.docs._getCache(parameters.pkg, "meta"); var i = 1; if(!cache.path){ var path = "id"; props[["pname", i].join("")] = "DocPkgForm/require"; props[["pvalue", i++].join("")] = parameters.pkg; }else{ var path = cache.path; } props.form = "//DocPkgForm"; props.path = ["/WikiHome/DojoDotDoc/", path].join(""); if(parameters.description){ props[["pname", i].join("")] = "main/text"; props[["pvalue", i++].join("")] = parameters.description; } dojo.docs._rpc.callRemote("saveForm", props).addCallbacks(dojo.docs._pkgRpc, dojo.docs._pkgRpc); }, _pkgRpc: function(data){ if(data.name){ dojo.docs._getCache(data["DocPkgForm/require"], "meta").path = data.name; dojo.docs._savedPkgRpc("load"); }else{ dojo.docs._savedPkgRpc("error"); } }, _savedPkgRpc: function(type){ }, functionPackages: function(/*String*/ name, /*Function*/ callback, /*Object*/ input){ // summary: Gets the package associated with a function and stores it in the .pkg value of input dojo.debug("functionPackages() name: " + name); if(!input){ input = {}; } if(!input.callbacks){ input.callbacks = []; } input.type = "function_names"; input.name = name; input.callbacks.unshift(callback); input.callbacks.unshift(dojo.docs._functionPackages); }, _functionPackages: function(/*String*/ type, /*Array*/ data, /*Object*/ evt){ dojo.debug("_functionPackages() name: " + evt.name); evt.pkg = ''; var results = []; var data = dojo.docs._cache['function_names']; for(var key in data){ if(dojo.lang.inArray(data[key], evt.name)){ dojo.debug("_functionPackages() package: " + key); results.push(key); } } if(evt.callbacks && evt.callbacks.length){ evt.callbacks.shift()(type, results, evt, evt.input); } }, setUserName: function(/*String*/ name){ dojo.docs._userName = name; if(name && dojo.docs._password){ dojo.docs._logIn(); } }, setPassword: function(/*String*/ password){ dojo.docs._password = password; if(password && dojo.docs._userName){ dojo.docs._logIn(); } }, _logIn: function(){ dojo.io.bind({ url: dojo.docs._rpc.serviceUrl.toString(), method: "post", mimetype: "text/json", content: { username: dojo.docs._userName, password: dojo.docs._password }, load: function(type, data){ if(data.error){ dojo.docs.logInSuccess(); }else{ dojo.docs.logInFailure(); } }, error: function(){ dojo.docs.logInFailure(); } }); }, logInSuccess: function(){}, logInFailure: function(){}, _set: function(/*Object*/ base, /*String...*/ keys, /*String*/ value){ var args = []; for(var i = 0, arg; arg = arguments[i]; i++){ args.push(arg); } if(args.length < 3) return; base = args.shift(); value = args.pop(); var key = args.pop(); for(var i = 0, arg; arg = args[i]; i++){ if(typeof base[arg] != "object"){ base[arg] = {}; } base = base[arg]; } base[key] = value; }, _getCache: function(/*String...*/ keys){ var obj = dojo.docs._cache; for(var i = 0; i < arguments.length; i++){ var arg = arguments[i]; if(!obj[arg]){ obj[arg] = {}; } obj = obj[arg]; } return obj; }});dojo.event.topic.subscribe("/docs/search", dojo.docs, "_onDocSearch");dojo.event.topic.subscribe("/docs/function/select", dojo.docs, "_onDocSelectFunction");dojo.event.topic.subscribe("/docs/package/select", dojo.docs, "_onDocSelectPackage");dojo.event.topic.registerPublisher("/docs/function/results", dojo.docs, "_printFunctionResults");dojo.event.topic.registerPublisher("/docs/function/detail", dojo.docs, "_printFunctionDetail");dojo.event.topic.registerPublisher("/docs/package/detail", dojo.docs, "_printPkgResult");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -