From 263e3ca2e449676049331cf8bdf1c4408a213dac Mon Sep 17 00:00:00 2001 From: Jeff Williams Date: Mon, 15 Apr 2013 06:50:27 -0700 Subject: [PATCH] remove variations before generating filenames (#179) --- lib/jsdoc/util/templateHelper.js | 11 +++++------ test/specs/jsdoc/util/templateHelper.js | 7 ++++++- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/lib/jsdoc/util/templateHelper.js b/lib/jsdoc/util/templateHelper.js index d208a263..871bd7a3 100644 --- a/lib/jsdoc/util/templateHelper.js +++ b/lib/jsdoc/util/templateHelper.js @@ -68,8 +68,10 @@ var nsprefix = /^(event|module|external):/; var getUniqueFilename = exports.getUniqueFilename = function(str) { // allow for namespace prefix var basename = str.replace(nsprefix, '$1-') - // and use - instead of ~ to denote 'inner' - .replace(/~/g, '-'); + // use - instead of ~ to denote 'inner' + .replace(/~/g, '-') + // remove the variation, if any + .replace(/\([\s\S]*\)$/, ''); // if the basename includes characters that we can't use in a filepath, remove everything up to // and including the last bad character @@ -623,17 +625,14 @@ function getFilename(longname) { /** Turn a doclet into a URL. */ exports.createLink = function(doclet) { var url = ''; - var longname; + var longname = doclet.longname; var filename; if ( containers.indexOf(doclet.kind) !== -1 || isModuleFunction(doclet) ) { - longname = doclet.longname; url = getFilename(longname); } else { - longname = doclet.longname; filename = getFilename(doclet.memberof || exports.globalName); - url = filename + '#' + getNamespace(doclet.kind) + doclet.name; } diff --git a/test/specs/jsdoc/util/templateHelper.js b/test/specs/jsdoc/util/templateHelper.js index b80ad7e3..611da11a 100644 --- a/test/specs/jsdoc/util/templateHelper.js +++ b/test/specs/jsdoc/util/templateHelper.js @@ -1,5 +1,5 @@ /*global afterEach: true, beforeEach: true, describe: true, expect: true, env: true, it: true, -spyOn: true, xdescribe: true */ +jasmine: true, spyOn: true, xdescribe: true */ var hasOwnProp = Object.prototype.hasOwnProperty; describe("jsdoc/util/templateHelper", function() { @@ -202,6 +202,11 @@ describe("jsdoc/util/templateHelper", function() { expect( filename1.toLowerCase() ).not.toBe( filename2.toLowerCase() ); }); + + it('should remove variations from the longname before generating the filename', function() { + var filename = helper.getUniqueFilename('MyClass(foo, bar)'); + expect(filename).toBe('MyClass.html'); + }); }); describe("longnameToUrl", function() {