From 14e46fe78f11c5b61095f779106dce142dcde17f Mon Sep 17 00:00:00 2001 From: Jonathan Puckey <me@jonathanpuckey.com> Date: Mon, 30 May 2011 20:07:45 +0200 Subject: [PATCH] jsdoc template: Move helper functions into global Utils object and replace <pre> tags with <pre class='code'> to have them highlighted by CodeMirror. --- .../jsdoc-toolkit/templates/jsdoc/publish.js | 533 +++++++++--------- .../templates/jsdoc/templates/class.tmpl | 2 +- .../jsdoc/templates/constructor.tmpl | 12 +- .../templates/jsdoc/templates/method.tmpl | 10 +- .../templates/jsdoc/templates/operators.tmpl | 4 +- .../templates/jsdoc/templates/parameters.tmpl | 2 +- .../templates/jsdoc/templates/property.tmpl | 8 +- .../templates/jsdoc/templates/returns.tmpl | 2 +- 8 files changed, 288 insertions(+), 285 deletions(-) diff --git a/build/jsdoc-toolkit/templates/jsdoc/publish.js b/build/jsdoc-toolkit/templates/jsdoc/publish.js index 834a1ac4..2e022408 100644 --- a/build/jsdoc-toolkit/templates/jsdoc/publish.js +++ b/build/jsdoc-toolkit/templates/jsdoc/publish.js @@ -1,3 +1,94 @@ +/** Called automatically by JsDoc Toolkit. */ +function publish(symbolSet) { + publish.conf = { // trailing slash expected for dirs + ext: '.html', + outDir: JSDOC.opt.d || SYS.pwd + '../out/jsdoc/', + templateDir: JSDOC.opt.t || SYS.pwd + '../templates/jsdoc/', + staticDir: (JSDOC.opt.t || SYS.pwd + '../templates/jsdoc/') + 'static/', + symbolsDir: 'packages/', + srcDir: 'symbols/src/' + }; + publish.conf.packagesDir = publish.conf.outDir + 'packages/'; + var templatesDir = publish.conf.templateDir + 'templates/'; + publish.templates = { + _class: 'class.tmpl', + method: 'method.tmpl', + property: 'property.tmpl', + parameters: 'parameters.tmpl', + operators: 'operators.tmpl', + returns: 'returns.tmpl', + seeAlsos: 'see-alsos.tmpl', + example: 'example.tmpl', + constructor: 'constructor.tmpl', + html: 'html.tmpl', + allClasses: 'allClasses.tmpl', + menu: 'packages.tmpl' + }; + + for (var i in publish.templates) { + publish.templates[i] = new JSDOC.JsPlate(templatesDir + + publish.templates[i]); + } + + // Copy over the static files + Utils.copyDirectory( + new java.io.File(publish.conf.staticDir), + new java.io.File(publish.conf.outDir) + ); + + // used to allow Link to check the details of things being linked to + Link.symbolSet = symbolSet; + + // get an array version of the symbolset, useful for filtering + var symbols = symbolSet.toArray(), + files = JSDOC.opt.srcFiles, + aliasSort = Utils.makeSortby('alias'), + classes = symbols.filter(Utils.isaClass).sort(aliasSort); + + // create a filemap in which outfiles must be to be named uniquely, ignoring case + if (JSDOC.opt.u) { + var filemapCounts = {}; + Link.filemap = {}; + for (var i = 0, l = classes.length; i < l; i++) { + var lcAlias = classes[i].alias.toLowerCase(); + + if (!filemapCounts[lcAlias]) { + filemapCounts[lcAlias] = 1; + } else { + filemapCounts[lcAlias]++; + } + + Link.filemap[classes[i].alias] = (filemapCounts[lcAlias] > 1) ? + lcAlias + '_' + filemapCounts[lcAlias] : lcAlias; + } + } + + Link.base = '../'; + + // create each of the class pages + for (var i = 0, l = classes.length; i < l; i++) { + var symbol = classes[i]; + + symbol.events = symbol.getEvents(); // 1 order matters + symbol.methods = symbol.getMethods(); // 2 + for (var j = 0; j < symbol.methods.length; j++) { + var method = symbol.methods[j]; + method.isOperator = Operator.isOperator(method); + } + + Link.currentSymbol= symbol; + var html = publish.templates.html.process({ + content: publish.templates._class.process(symbol), + title: symbol.alias + }) + var name = ((JSDOC.opt.u)? Link.filemap[symbol.alias] : symbol.alias) + + publish.conf.ext; + IO.saveFile(publish.conf.packagesDir, name, html); + } + + Utils.publishMenu(); +} + var Operator = new function() { var operators = { add: '+', subtract: '-', multiply: '*', divide: '/', equals: '==', @@ -28,7 +119,7 @@ var Operator = new function() { } } -var Helpers = { +var Utils = { getSymbolId: function(symbol) { var id = [symbol.name.toLowerCase().replace(/[\^][0-9]/g, '')]; if (symbol.params) { @@ -75,291 +166,203 @@ var Helpers = { })); } return out.join('\n'); - } -}; - -/** Called automatically by JsDoc Toolkit. */ -function publish(symbolSet) { - publish.conf = { // trailing slash expected for dirs - ext: '.html', - outDir: JSDOC.opt.d || SYS.pwd + '../out/jsdoc/', - templateDir: JSDOC.opt.t || SYS.pwd + '../templates/jsdoc/', - staticDir: (JSDOC.opt.t || SYS.pwd + '../templates/jsdoc/') + 'static/', - symbolsDir: 'packages/', - srcDir: 'symbols/src/' - }; - publish.conf.packagesDir = publish.conf.outDir + 'packages/'; - var templatesDir = publish.conf.templateDir + 'templates/'; - publish.templates = { - _class: 'class.tmpl', - method: 'method.tmpl', - property: 'property.tmpl', - parameters: 'parameters.tmpl', - operators: 'operators.tmpl', - returns: 'returns.tmpl', - seeAlsos: 'see-alsos.tmpl', - example: 'example.tmpl', - constructor: 'constructor.tmpl', - html: 'html.tmpl', - allClasses: 'allClasses.tmpl', - menu: 'packages.tmpl' - }; - - for (var i in publish.templates) { - publish.templates[i] = new JSDOC.JsPlate(templatesDir + - publish.templates[i]); - } - - // Copy over the static files - copyDirectory( - new java.io.File(publish.conf.staticDir), - new java.io.File(publish.conf.outDir) - ); - - // used to allow Link to check the details of things being linked to - Link.symbolSet = symbolSet; - - // get an array version of the symbolset, useful for filtering - var symbols = symbolSet.toArray(), - files = JSDOC.opt.srcFiles, - classes = symbols.filter(Helpers.isaClass).sort(makeSortby('alias')); + }, - // create a filemap in which outfiles must be to be named uniquely, ignoring case - if (JSDOC.opt.u) { - var filemapCounts = {}; - Link.filemap = {}; - for (var i = 0, l = classes.length; i < l; i++) { - var lcAlias = classes[i].alias.toLowerCase(); - - if (!filemapCounts[lcAlias]) { - filemapCounts[lcAlias] = 1; - } else { - filemapCounts[lcAlias]++; + stripTags: function(str, tag) { + var tag = tag || '.*?'; // Default: all tags + return str.replace(new RegExp('<' + tag + '>|</' + tag + '>', 'g'), ''); + }, + + copyDirectory: function(sourceLocation, targetLocation) { + if (sourceLocation.isDirectory()) { + if (!targetLocation.exists()) { + targetLocation.mkdir(); } - - Link.filemap[classes[i].alias] = (filemapCounts[lcAlias] > 1) ? - lcAlias + '_' + filemapCounts[lcAlias] : lcAlias; - } - } - - Link.base = '../'; - // create each of the class pages - for (var i = 0, l = classes.length; i < l; i++) { - var symbol = classes[i]; - - symbol.events = symbol.getEvents(); // 1 order matters - symbol.methods = symbol.getMethods(); // 2 - for (var j = 0; j < symbol.methods.length; j++) { - var method = symbol.methods[j]; - method.isOperator = Operator.isOperator(method); + var children = sourceLocation.list(); + for (var i = 0; i < children.length; i++) { + Utils.copyDirectory(new File(sourceLocation, children[i]), + new File(targetLocation, children[i])); + } + } else { + // Copy the file with FileChannels: + targetLocation.createNewFile(); + var src = new java.io.FileInputStream(sourceLocation).getChannel(); + var dst = new java.io.FileOutputStream(targetLocation).getChannel(); + var amount = dst.transferFrom(src, 0, src.size()); + src.close(); + dst.close(); } - - Link.currentSymbol= symbol; - var html = publish.templates.html.process({ - content: publish.templates._class.process(symbol), - title: symbol.alias - }) - var name = ((JSDOC.opt.u)? Link.filemap[symbol.alias] : symbol.alias) - + publish.conf.ext; - IO.saveFile(publish.conf.packagesDir, name, html); - } - - publishMenu(); -} + }, -function publishMenu() { - load(JSDOC.opt.t + 'classLayout.js'); - function parseClassNames(classNames) { - var out = ''; - for (var i = 0, l = classNames.length; i < l; i++) { - if (typeof classNames[i] == 'string') { - var name = classNames[i]; - out += (name == 'ruler') ? getRuler() : getLink(name); - } else { - for (var j in classNames[i]) { - out += getHeading(j); - out += parseClassNames(classNames[i][j]); + processGroupTitle: function(str, symbol) { + var groupTitle = str.match(/\{@grouptitle ([^}]+)\}/); + if (groupTitle) { + symbol.groupTitle = groupTitle[1]; + str = str.replace(/\{@grouptitle ([^}]+)\}/, ''); + } + return str; + }, + + publishMenu: function() { + load(JSDOC.opt.t + 'classLayout.js'); + function parseClassNames(classNames) { + var out = ''; + for (var i = 0, l = classNames.length; i < l; i++) { + if (typeof classNames[i] == 'string') { + var name = classNames[i]; + out += (name == 'ruler') ? getRuler() : getLink(name); + } else { + for (var j in classNames[i]) { + out += getHeading(j); + out += parseClassNames(classNames[i][j]); + } } } + return out; } - return out; - } - function getLink(name) { - return '<li><a href="' + name + '.html">' + name + '</a></li>'; - } - - function getRuler() { - return '<li><hr /></li>'; - } - - function getHeading(title) { - return '<li><h3>' + title + '</h3></li>'; - } - var first = true, - out = '<ul class="package-classes">'; - for (var i in classLayout) { - out += '<li' + (first ? ' class="first">' : '>'); - out += '<h2>' + i + '</h2>'; - out += parseClassNames(classLayout[i]); - out += '</li>'; - first = false; - } - out += '</ul'; - - var classesIndex = publish.templates.menu.process(out); - IO.saveFile(publish.conf.packagesDir, 'packages.html', classesIndex); -} - -/** Make a symbol sorter by some attribute. */ -function makeSortby(attribute) { - return function(a, b) { - if (a[attribute] != undefined && b[attribute] != undefined) { - a = a[attribute].toLowerCase(); - b = b[attribute].toLowerCase(); - if (a < b) return -1; - if (a > b) return 1; - return 0; + function getLink(name) { + return '<li><a href="' + name + '.html">' + name + '</a></li>'; } - } -} -/** Pull in the contents of an external file at the given path. */ -function include(path) { - var path = publish.conf.templateDir + path; - return IO.readFile(path); -} - -/** Build output for displaying function parameters. */ -function makeSignature(params) { - if (!params) return '()'; - var postString = ''; - var first = true; - params = params.filter( - function($) { - return $.name.indexOf('.') == -1; // don't show config params in signature + function getRuler() { + return '<li><hr /></li>'; } - ); - var signature = ''; - var postSignature = ''; - for (var i = 0, l = params.length; i < l; i++) { - var param = params[i]; - if (param.isOptional) { - signature += '['; - postSignature += ']'; + + function getHeading(title) { + return '<li><h3>' + title + '</h3></li>'; } - if (i > 0) - signature += ', '; - signature += param.name; - } - return '(' + signature + postSignature + ')'; -} - -function processGroupTitle(str, symbol) { - var groupTitle = str.match(/\{@grouptitle ([^}]+)\}/); - if (groupTitle) { - symbol.groupTitle = groupTitle[1]; - str = str.replace(/\{@grouptitle ([^}]+)\}/, ''); - } - return str; -} - -function processInlineTags(str, param) { - if (!param) - param = {}; - // <code>..</code> -> <pre>..</pre> - str = str.replace(/<(\/)*(code)>/g, '<$1pre>'); - - // {@link ...} -> html links - str = str.replace(/\{@link ([^} ]+) ?\}/gi, - function(match, symbolName) { - return new Link().toSymbol(symbolName.replace(/[\^]/g, '-')); + var first = true, + out = '<ul class="package-classes">'; + for (var i in classLayout) { + out += '<li' + (first ? ' class="first">' : '>'); + out += '<h2>' + i + '</h2>'; + out += parseClassNames(classLayout[i]); + out += '</li>'; + first = false; } - ); - // {@code ...} -> code blocks - str = str.replace(/\{@code[\s]([^}]+)\}/gi, - function(match, code) { - return '<tt>' + code + '</tt>'; + out += '</ul'; + + var classesIndex = publish.templates.menu.process(out); + IO.saveFile(publish.conf.packagesDir, 'packages.html', classesIndex); + }, + + makeSortby: function(attribute) { + return function(a, b) { + if (a[attribute] != undefined && b[attribute] != undefined) { + a = a[attribute].toLowerCase(); + b = b[attribute].toLowerCase(); + if (a < b) return -1; + if (a > b) return 1; + return 0; + } } - ); + }, - // {@true ...} -> true if.. false otherwise.. - str = str.replace(/\{@true[\s]([^}]+)\}/gi, - function(match, text) { - return '<tt>true</tt> ' + text + ', <tt>false</tt> otherwise'; - } - ); - - var lineBreak = java.lang.System.getProperty('line.separator'); - - // Convert any type of lineBreak to the one we're using now: - str = str.replace(/(\r\n|\n|\r)/g, function(match, lineBreak) { - return lineBreak; - }); + /** Pull in the contents of an external file at the given path. */ + include: function(path) { + var path = publish.conf.templateDir + path; + return IO.readFile(path); + }, - // Replace inline <code></code> with <tt></tt> - str = str.replace(/<code>[ \t]*([^\n\r]*?)[ \t]*<\/code>/g, function(match, content) { - return '<tt>' + content + '</tt>'; - }); + processInlineTags: function(str, param) { + if (!param) + param = {}; + // <code>..</code> -> <pre>..</pre> + str = str.replace(/<(\/)*(code)>/g, '<$1pre>'); - // Put code and pre tags on the same line as the content, as white-space: pre is set: - str = str.replace(/(<(?:code|pre)>)\s*([\u0000-\uffff]*?)\s*(<\/(?:code|pre)>)/g, function(match, open, content, close) { - // Filter out the first white space at the beginning of each line, since - // that stems from the space after the * in the comment and replace <code> - // with <pre>, to fix a IE problem where lighter.js does not receive - // linebreaks from code tags weven when white-space: pre is set. - return '<pre>' + content.replace(/(\r\n|\n|\r) /mg, function(match, lineBreak) { + // <pre> -> <pre class="code"> + str = str.replace(/<pre>/g, '<pre class="code">'); + + // {@link ...} -> html links + str = str.replace(/\{@link ([^} ]+) ?\}/gi, + function(match, symbolName) { + return new Link().toSymbol(symbolName.replace(/[\^]/g, '-')); + } + ); + // {@code ...} -> code blocks + str = str.replace(/\{@code[\s]([^}]+)\}/gi, + function(match, code) { + return '<tt>' + code + '</tt>'; + } + ); + + // {@true ...} -> true if.. false otherwise.. + str = str.replace(/\{@true[\s]([^}]+)\}/gi, + function(match, text) { + return '<tt>true</tt> ' + text + ', <tt>false</tt> otherwise'; + } + ); + + var lineBreak = java.lang.System.getProperty('line.separator'); + + // Convert any type of lineBreak to the one we're using now: + str = str.replace(/(\r\n|\n|\r)/g, function(match, lineBreak) { return lineBreak; - }) + '</pre>'; - }); - // Empty lines -> Paragraphs - if (!param.stripParagraphs) { - if (param.wrapInParagraphs === undefined || param.wrapInParagraphs) - str = '<p>' + str.trim() + '</p>'; - str = str.trim().replace(/(\r\n|\n|\r)\s*(\r\n|\n|\r)/g, function(match, lineBreak) { - return '</p>' + lineBreak + '<p>'; }); - // Automatically put </p><p> at the end of sentences with line breaks. - // Match following </p> and <p> tags and swallow them. This happens when - // the original content contains these. - str = str.trim().replace(/([.:?!;])\s*(\r\n|\n|\r)(\s*)(<\/p>|<p>|)/g, function(match, before, lineBreak, whiteSpace, after) { - // Include following whiteSpace as well, since for code blocks they are relevant (e.g. indentation on new line) - return before + '</p>' + lineBreak + whiteSpace + '<p>'; - }); - // Filter out <p> tags within and around <code> and <pre> blocks again - str = str.replace(/((?:<p>\s*|)<(?:code|pre)[^>]*>[\u0000-\uffff]*<\/(?:code|pre)>(?:\s*<\/p>|))/g, function(match, code) { - return stripTags(code, 'p'); - }); - // Filter out empty paragraphs - str = str.replace(/<p><\/p>/g, ''); - } - - return str; -} -function stripTags(str, tag) { - var tag = tag || '.*?'; // Default: all tags - return str.replace(new RegExp('<' + tag + '>|</' + tag + '>', 'g'), ''); -} + // Replace inline <code></code> with <tt></tt> + str = str.replace(/<code>[ \t]*([^\n\r]*?)[ \t]*<\/code>/g, function(match, content) { + return '<tt>' + content + '</tt>'; + }); -function copyDirectory(sourceLocation, targetLocation) { - if (sourceLocation.isDirectory()) { - if (!targetLocation.exists()) { - targetLocation.mkdir(); + // Put code and pre tags on the same line as the content, as white-space: pre is set: + str = str.replace(/(<(?:code|pre)>)\s*([\u0000-\uffff]*?)\s*(<\/(?:code|pre)>)/g, function(match, open, content, close) { + // Filter out the first white space at the beginning of each line, since + // that stems from the space after the * in the comment and replace <code> + // with <pre>, to fix a IE problem where lighter.js does not receive + // linebreaks from code tags weven when white-space: pre is set. + return '<pre>' + content.replace(/(\r\n|\n|\r) /mg, function(match, lineBreak) { + return lineBreak; + }) + '</pre>'; + }); + // Empty lines -> Paragraphs + if (!param.stripParagraphs) { + if (param.wrapInParagraphs === undefined || param.wrapInParagraphs) + str = '<p>' + str.trim() + '</p>'; + str = str.trim().replace(/(\r\n|\n|\r)\s*(\r\n|\n|\r)/g, function(match, lineBreak) { + return '</p>' + lineBreak + '<p>'; + }); + // Automatically put </p><p> at the end of sentences with line breaks. + // Match following </p> and <p> tags and swallow them. This happens when + // the original content contains these. + str = str.trim().replace(/([.:?!;])\s*(\r\n|\n|\r)(\s*)(<\/p>|<p>|)/g, function(match, before, lineBreak, whiteSpace, after) { + // Include following whiteSpace as well, since for code blocks they are relevant (e.g. indentation on new line) + return before + '</p>' + lineBreak + whiteSpace + '<p>'; + }); + // Filter out <p> tags within and around <code> and <pre> blocks again + str = str.replace(/((?:<p>\s*|)<(?:code|pre)[^>]*>[\u0000-\uffff]*<\/(?:code|pre)>(?:\s*<\/p>|))/g, function(match, code) { + return Utils.stripTags(code, 'p'); + }); + // Filter out empty paragraphs + str = str.replace(/<p><\/p>/g, ''); } - - var children = sourceLocation.list(); - for (var i = 0; i < children.length; i++) { - copyDirectory(new File(sourceLocation, children[i]), - new File(targetLocation, children[i])); + + return str; + }, + + /** Build output for displaying function parameters. */ + makeSignature: function(params) { + if (!params) return '()'; + var postString = ''; + var first = true; + params = params.filter( + function($) { + return $.name.indexOf('.') == -1; // don't show config params in signature + } + ); + var signature = ''; + var postSignature = ''; + for (var i = 0, l = params.length; i < l; i++) { + var param = params[i]; + if (param.isOptional) { + signature += '['; + postSignature += ']'; + } + if (i > 0) + signature += ', '; + signature += param.name; } - } else { - // Copy the file with FileChannels: - targetLocation.createNewFile(); - var src = new java.io.FileInputStream(sourceLocation).getChannel(); - var dst = new java.io.FileOutputStream(targetLocation).getChannel(); - var amount = dst.transferFrom(src, 0, src.size()); - src.close(); - dst.close(); + return '(' + signature + postSignature + ')'; } -} \ No newline at end of file +}; \ No newline at end of file diff --git a/build/jsdoc-toolkit/templates/jsdoc/templates/class.tmpl b/build/jsdoc-toolkit/templates/jsdoc/templates/class.tmpl index fb7c6d86..98cc60e7 100644 --- a/build/jsdoc-toolkit/templates/jsdoc/templates/class.tmpl +++ b/build/jsdoc-toolkit/templates/jsdoc/templates/class.tmpl @@ -47,7 +47,7 @@ <if test="inheritedClassLinks.length"> <p> Extends {+ inheritedClassLinks.join(', ') +}</p> </if> -{+processInlineTags(data.classDesc)+} +{+Utils.processInlineTags(data.classDesc)+} </div> <!-- ============================== constructors ========================= --> <if test="!/(Event|Style)/.test(data.alias) && !data.isNamespace && !data.ignore && data.desc.length"> diff --git a/build/jsdoc-toolkit/templates/jsdoc/templates/constructor.tmpl b/build/jsdoc-toolkit/templates/jsdoc/templates/constructor.tmpl index b2b92746..408e09f3 100644 --- a/build/jsdoc-toolkit/templates/jsdoc/templates/constructor.tmpl +++ b/build/jsdoc-toolkit/templates/jsdoc/templates/constructor.tmpl @@ -1,7 +1,7 @@ {! - var constructorId = Helpers.getConstructorId(data); + var constructorId = Utils.getConstructorId(data); var name = data.alias.replace(/(#|\^).+$/, ''); - data.desc = processGroupTitle(data.desc, data); + data.desc = Utils.processGroupTitle(data.desc, data); if (data.returns.length == 0) data.returns = [{type: data.memberOf ? data.memberOf : data.alias, desc: ''}]; !} @@ -10,22 +10,22 @@ </if> <div id="{+constructorId+}" class="member"> <div id="{+constructorId+}-link" class="member-link"> -<a name="{+constructorId+}" href="#" onClick="return toggleMember('{+constructorId+}', false);"><tt><b>{+ name +}</b>{+ makeSignature(data.params) +}</tt></a> +<a name="{+constructorId+}" href="#" onClick="return toggleMember('{+constructorId+}', false);"><tt><b>{+ name +}</b>{+ Utils.makeSignature(data.params) +}</tt></a> </div> <div id="{+constructorId+}-description" class="member-description hidden"> <div class="member-header"> <div class="member-title"> <div class="member-link"> -<a href="#" onClick="return toggleMember('{+constructorId+}', false);"><tt><b>{+ name +}</b>{+ makeSignature(data.params) +}</tt></a> +<a href="#" onClick="return toggleMember('{+constructorId+}', false);"><tt><b>{+ name +}</b>{+ Utils.makeSignature(data.params) +}</tt></a> </div> </div> <div class="member-close"><input type="button" value="Close" onClick="toggleMember('{+constructorId+}', false);"></div> <div class="clear"></div> </div> -<div class="member-text">{+processInlineTags(data.desc)+} +<div class="member-text">{+Utils.processInlineTags(data.desc)+} {+ publish.templates.parameters.process(data) +} {+ publish.templates.returns.process(data) +} - {+ Helpers.parseExamples(data) +} + {+ Utils.parseExamples(data) +} {+ publish.templates.seeAlsos.process(data) +} </div> diff --git a/build/jsdoc-toolkit/templates/jsdoc/templates/method.tmpl b/build/jsdoc-toolkit/templates/jsdoc/templates/method.tmpl index 083e021d..4b526d34 100644 --- a/build/jsdoc-toolkit/templates/jsdoc/templates/method.tmpl +++ b/build/jsdoc-toolkit/templates/jsdoc/templates/method.tmpl @@ -1,7 +1,7 @@ {! - data.desc = processGroupTitle(data.desc, data); - var memberId = Helpers.getSymbolId(data); - var functionTitle = '<b>' + data.name.replace(/\^\d+$/, '') + '</b>' + makeSignature(data.params); + data.desc = Utils.processGroupTitle(data.desc, data); + var memberId = Utils.getSymbolId(data); + var functionTitle = '<b>' + data.name.replace(/\^\d+$/, '') + '</b>' + Utils.makeSignature(data.params); if (data.isStatic) functionTitle = '<b>' + data.memberOf + '.</b>' + functionTitle; !} @@ -23,11 +23,11 @@ <div class="clear"></div> </div> <div class="member-text"> - {+ processInlineTags(data.desc) +} + {+ Utils.processInlineTags(data.desc) +} {+ publish.templates.parameters.process(data) +} {+ publish.templates.returns.process(data) +} {+ publish.templates.seeAlsos.process(data) +} - {+ Helpers.parseExamples(data) +} + {+ Utils.parseExamples(data) +} </div> </div> </div> \ No newline at end of file diff --git a/build/jsdoc-toolkit/templates/jsdoc/templates/operators.tmpl b/build/jsdoc-toolkit/templates/jsdoc/templates/operators.tmpl index acf914b0..43444357 100644 --- a/build/jsdoc-toolkit/templates/jsdoc/templates/operators.tmpl +++ b/build/jsdoc-toolkit/templates/jsdoc/templates/operators.tmpl @@ -35,10 +35,10 @@ </div> <if test="operator.type"> <div class="member-text"> - {+ processInlineTags(operator.desc) +} + {+ Utils.processInlineTags(operator.desc) +} {+ publish.templates.returns.process(operator) +} {+ publish.templates.seeAlsos.process(operator) +} - {+ Helpers.parseExamples(operator) +} + {+ Utils.parseExamples(operator) +} </div> </if> <if test="operatorCount == data.length - 1"> diff --git a/build/jsdoc-toolkit/templates/jsdoc/templates/parameters.tmpl b/build/jsdoc-toolkit/templates/jsdoc/templates/parameters.tmpl index c9d80667..54b488dc 100644 --- a/build/jsdoc-toolkit/templates/jsdoc/templates/parameters.tmpl +++ b/build/jsdoc-toolkit/templates/jsdoc/templates/parameters.tmpl @@ -4,7 +4,7 @@ <li> <tt>{+ parameter.name +}: </tt> {+ new Link().toSymbol(parameter.type) +} - <if test="parameter.desc">— {+processInlineTags(parameter.desc, {stripParagraphs: true})+}</if> + <if test="parameter.desc">— {+Utils.processInlineTags(parameter.desc, {stripParagraphs: true})+}</if> <if test="parameter.isOptional">— optional</if><if test="parameter.defaultValue">, default: <tt>{+parameter.defaultValue+}</tt></if> </li> </for> diff --git a/build/jsdoc-toolkit/templates/jsdoc/templates/property.tmpl b/build/jsdoc-toolkit/templates/jsdoc/templates/property.tmpl index 99086729..3e38ef29 100644 --- a/build/jsdoc-toolkit/templates/jsdoc/templates/property.tmpl +++ b/build/jsdoc-toolkit/templates/jsdoc/templates/property.tmpl @@ -1,7 +1,7 @@ {! - data.desc = processGroupTitle(data.desc, data); + data.desc = Utils.processGroupTitle(data.desc, data); - var memberId = Helpers.getSymbolId(data); + var memberId = Utils.getSymbolId(data); var title = '<b>' + data.name.replace(/\^\d+$/, '') + '</b>'; if (data.isStatic) title = '<b>' + data.memberOf + '.</b>' + title; @@ -26,7 +26,7 @@ </div> <if test="data.type"> <div class="member-text"> - {+ processInlineTags(data.desc) +} + {+ Utils.processInlineTags(data.desc) +} <if test="data.readOnly"> <p>Read only.</p> </if> @@ -43,7 +43,7 @@ </li> </ul> {+ publish.templates.seeAlsos.process(data) +} - {+ Helpers.parseExamples(data) +} + {+ Utils.parseExamples(data) +} </div> </if> </div> diff --git a/build/jsdoc-toolkit/templates/jsdoc/templates/returns.tmpl b/build/jsdoc-toolkit/templates/jsdoc/templates/returns.tmpl index 4506358a..fc9e35c0 100644 --- a/build/jsdoc-toolkit/templates/jsdoc/templates/returns.tmpl +++ b/build/jsdoc-toolkit/templates/jsdoc/templates/returns.tmpl @@ -2,7 +2,7 @@ <ul><b>Returns:</b> <for each="item" in="data.returns"> <li> - <tt><if test="defined(item.type)">{+ new Link().toSymbol(item.type) +}</tt><if test="item.desc"> — </if></if>{+processInlineTags(item.desc, { stripParagraphs: true })+} + <tt><if test="defined(item.type)">{+ new Link().toSymbol(item.type) +}</tt><if test="item.desc"> — </if></if>{+Utils.processInlineTags(item.desc, { stripParagraphs: true })+} </li> </for> </ul>