From a9963a0167366c725f38d6d9443a480a81ce0d59 Mon Sep 17 00:00:00 2001 From: Michael Mathews Date: Wed, 12 Oct 2011 22:54:36 +0100 Subject: [PATCH] Fixed incorrect intrapage links for events. Closes #38. --- rhino_modules/jsdoc/name.js | 5 ++--- .../jsdoc/tag/dictionary/definitions.js | 1 + rhino_modules/jsdoc/util/templateHelper.js | 11 ++++++++++- templates/default/publish.js | 17 ++++++++++++++--- templates/default/tmpl/members.tmpl | 4 ++-- templates/default/tmpl/method.tmpl | 4 ++-- 6 files changed, 31 insertions(+), 11 deletions(-) diff --git a/rhino_modules/jsdoc/name.js b/rhino_modules/jsdoc/name.js index f0a17d6b..f4ac412d 100644 --- a/rhino_modules/jsdoc/name.js +++ b/rhino_modules/jsdoc/name.js @@ -157,12 +157,11 @@ exports.shorten = function(longname, forcedMemberof) { variation; longname = longname.replace( /\.prototype\.?/g, '#' ); -//console.log(forcedMemberof); + if (typeof forcedMemberof !== 'undefined') { -//console.log('forcedMemberof'); name = longname.substr(forcedMemberof.length); var parts = forcedMemberof.match(/^(.*?)([#.~]?)$/); -//console.log(parts); + if (parts[1]) memberof = parts[1] || forcedMemberof; if (parts[2]) scope = parts[2]; } diff --git a/rhino_modules/jsdoc/tag/dictionary/definitions.js b/rhino_modules/jsdoc/tag/dictionary/definitions.js index 80ccfd77..5fbc86c7 100644 --- a/rhino_modules/jsdoc/tag/dictionary/definitions.js +++ b/rhino_modules/jsdoc/tag/dictionary/definitions.js @@ -171,6 +171,7 @@ exports.defineTags = function(dictionary) { }); dictionary.defineTag('event', { + isNamespace: true, onTagged: function(doclet, tag) { setDocletKindToTitle(doclet, tag); setDocletNameToValue(doclet, tag); diff --git a/rhino_modules/jsdoc/util/templateHelper.js b/rhino_modules/jsdoc/util/templateHelper.js index a923e124..3ff14c87 100644 --- a/rhino_modules/jsdoc/util/templateHelper.js +++ b/rhino_modules/jsdoc/util/templateHelper.js @@ -3,6 +3,8 @@ */ var hash = require('pajhome/hash'); +var dictionary = require('jsdoc/tag/dictionary'); + exports.globalName = 'global'; exports.fileExtension = '.html'; @@ -39,7 +41,7 @@ exports.createLink = function(doclet) { var longname = doclet.longname, filename = strToFilename(doclet.memberof || exports.globalName); // TODO handle name collisions - url = filename + exports.fileExtension + '#' + doclet.name; + url = filename + exports.fileExtension + '#' + getNamespace(doclet.kind) + doclet.name; } else { var longname = doclet.longname, @@ -51,6 +53,13 @@ exports.createLink = function(doclet) { return url; } +function getNamespace(kind) { + if (dictionary.isNamespace(kind)) { + return kind+':'; + } + return ''; +} + function strToFilename(str) { if ( /[^$a-z0-9._-]/i.test(str) ) { return hash.hex_md5(str).substr(0, 10); diff --git a/templates/default/publish.js b/templates/default/publish.js index a673db23..bd103dc8 100644 --- a/templates/default/publish.js +++ b/templates/default/publish.js @@ -152,6 +152,9 @@ doclet.see[i] = hashToLink(doclet, seeItem); }); } + + + }); data.orderBy(['longname', 'version', 'since']); @@ -191,11 +194,19 @@ helper.registerLink(doclet.longname, url); }); + data.forEach(function(doclet) { + var url = helper.longnameToUrl[doclet.longname]; + + if (url.indexOf('#') > -1) { + doclet.id = helper.longnameToUrl[doclet.longname].split(/#/).pop(); + } + else { + doclet.id = doclet.name; + } + }) + // do this after the urls have all been generated data.forEach(function(doclet) { - //if (doclet.classdesc) doclet.classdesc = renderLinks(doclet.classdesc); - //if (doclet.description) doclet.description = renderLinks(doclet.description); - doclet.ancestors = generateAncestry(doclet); }); diff --git a/templates/default/tmpl/members.tmpl b/templates/default/tmpl/members.tmpl index 49c4a1eb..60442fa7 100644 --- a/templates/default/tmpl/members.tmpl +++ b/templates/default/tmpl/members.tmpl @@ -1,6 +1,6 @@ -
-

+
+

diff --git a/templates/default/tmpl/method.tmpl b/templates/default/tmpl/method.tmpl index b9a8fd5a..8ce697e0 100644 --- a/templates/default/tmpl/method.tmpl +++ b/templates/default/tmpl/method.tmpl @@ -1,5 +1,5 @@ -
-

+
+