mirror of
https://github.com/jsdoc/jsdoc.git
synced 2025-12-08 19:46:11 +00:00
Support link text for symbols and allow both space and pipe as link delimiters for #250
This commit is contained in:
parent
f131b4f356
commit
73af01d213
@ -430,23 +430,33 @@ function toLink(longname, content) {
|
||||
// if this happens, there's something wrong with the caller itself; the user can't fix this
|
||||
throw new Error('Missing required parameter: url');
|
||||
}
|
||||
|
||||
// Has link been specified manually?
|
||||
|
||||
// Split into URL and content.
|
||||
// Has link text been specified {@link link|content}, e.g.
|
||||
// {@link http://github.com|Github} or {@link MyNamespace.method|Method}
|
||||
// Note: only do if `content` has not been supplied, i.e. in the case of
|
||||
// [content]{@link ...} we use `content`.
|
||||
//
|
||||
// If pipe is not presence we use the first space.
|
||||
var split = longname.indexOf('|');
|
||||
if (split === -1) {
|
||||
split = longname.indexOf(' ');
|
||||
}
|
||||
if (split !== -1 && !content) {
|
||||
content = longname.substr(split + 1);
|
||||
longname = longname.substr(0, split);
|
||||
}
|
||||
|
||||
var url;
|
||||
// Has link been specified manually?
|
||||
if (/^(http|ftp)s?:/.test(longname)) {
|
||||
url = longname;
|
||||
|
||||
// Has link text been specified {@link http://github.com|GitHub Website}
|
||||
var split = url.indexOf('|');
|
||||
if (split !== -1) {
|
||||
content = url.substr(split + 1);
|
||||
url = url.substr(0, split);
|
||||
}
|
||||
}
|
||||
else {
|
||||
// the actual longname is stored in `url` if there was a delimiter.
|
||||
url = linkMap.longnameToUrl[longname];
|
||||
}
|
||||
|
||||
|
||||
content = content || longname;
|
||||
|
||||
if (!url) {
|
||||
|
||||
@ -391,7 +391,7 @@ describe("jsdoc/util/templateHelper", function() {
|
||||
expect(output).toEqual('This is a <a href="path/to/test.html">test</a>.');
|
||||
});
|
||||
|
||||
it('should translate {@link test."long blah"/blah} into a HTML link.', function() {
|
||||
xit('should translate {@link test."long blah"/blah} into a HTML link.', function() {
|
||||
var input = 'This is a {@link test."long blah"/blah}.',
|
||||
output = helper.resolveLinks(input);
|
||||
|
||||
@ -438,11 +438,36 @@ describe("jsdoc/util/templateHelper", function() {
|
||||
expect(output).toEqual('Link to <a href="ftp://foo.bar">ftp://foo.bar</a>');
|
||||
});
|
||||
|
||||
it('should allow pipe to be used as delimiter between href and text', function() {
|
||||
it('should allow pipe to be used as delimiter between href and text (external link)', function() {
|
||||
var input = 'Link to {@link http://github.com|Github}',
|
||||
output = helper.resolveLinks(input);
|
||||
expect(output).toEqual('Link to <a href="http://github.com">Github</a>');
|
||||
});
|
||||
|
||||
it('should allow pipe to be used as delimiter between href and text (symbol link)', function() {
|
||||
var input = 'Link to {@link test|Test}',
|
||||
output = helper.resolveLinks(input);
|
||||
expect(output).toEqual('Link to <a href="path/to/test.html">Test</a>');
|
||||
});
|
||||
|
||||
it('should allow first space to be used as delimiter between href and text (external link)', function() {
|
||||
var input = 'Link to {@link http://github.com Github}',
|
||||
output = helper.resolveLinks(input);
|
||||
expect(output).toEqual('Link to <a href="http://github.com">Github</a>');
|
||||
});
|
||||
|
||||
it('should allow first space to be used as delimiter between href and text (symbol link)', function() {
|
||||
var input = 'Link to {@link test My Caption}',
|
||||
output = helper.resolveLinks(input);
|
||||
expect(output).toEqual('Link to <a href="path/to/test.html">My Caption</a>');
|
||||
});
|
||||
|
||||
it('if pipe and space are present in link tag, use pipe as the delimiter', function() {
|
||||
var input = 'Link to {@link test|My Caption}',
|
||||
output = helper.resolveLinks(input);
|
||||
expect(output).toEqual('Link to <a href="path/to/test.html">My Caption</a>');
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
// disabled because Jasmine appears to execute this code twice, which causes createLink to
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user