chore(doc-gen): relax link matching

This commit is contained in:
Peter Bacon Darwin 2015-05-15 13:57:38 +01:00
parent 9a72f19b97
commit c6dc78183d
3 changed files with 13 additions and 5 deletions

View File

@ -81,6 +81,12 @@ module.exports = new Package('angular', [jsdocPackage, nunjucksPackage, linksPac
})
// Configure links
.config(function(getLinkInfo) {
getLinkInfo.useFirstAmbiguousLink = true;
})
// Configure file writing
.config(function(writeFilesProcessor) {
writeFilesProcessor.outputFolder = 'dist/docs';

View File

@ -11,7 +11,7 @@ var INLINE_LINK = /(\S+)(?:\s+([\s\S]+))?/;
*
* @property {boolean} relativeLinks Whether we expect the links to be relative to the originating doc
*/
module.exports = function linkInlineTagDef(getLinkInfo, createDocMessage) {
module.exports = function linkInlineTagDef(getLinkInfo, createDocMessage, log) {
return {
name: 'link',
description: 'Process inline link tags (of the form {@link some/uri Some Title}), replacing them with HTML anchors',
@ -23,7 +23,7 @@ module.exports = function linkInlineTagDef(getLinkInfo, createDocMessage) {
var linkInfo = getLinkInfo(uri, title, doc);
if ( !linkInfo.valid ) {
throw new Error(createDocMessage(linkInfo.error, doc));
log.warn(createDocMessage(linkInfo.error, doc));
}
return "<a href='" + linkInfo.url + "'>" + linkInfo.title + "</a>";

View File

@ -28,13 +28,14 @@ module.exports = function getLinkInfo(getDocFromAlias, encodeCodeBlock, log) {
var docs = getDocFromAlias(url, currentDoc);
if ( docs.length > 1 ) {
if ( !getLinkInfoImpl.useFirstAmbiguousLink && docs.length > 1 ) {
linkInfo.valid = false;
linkInfo.errorType = 'ambiguous';
linkInfo.error = 'Ambiguous link: "' + url + '".\n' +
docs.reduce(function(msg, doc) { return msg + '\n "' + doc.id + '" ('+ doc.docType + ') : (' + doc.area + ')'; }, 'Matching docs: ');
docs.reduce(function(msg, doc) { return msg + '\n "' + doc.id + '" ('+ doc.docType + ') : (' + doc.path + ' / ' + doc.fileInfo.relativePath + ')'; }, 'Matching docs: ');
} else if ( docs.length === 1 ) {
} else if ( docs.length >= 1 ) {
linkInfo.url = docs[0].path;
linkInfo.title = title || encodeCodeBlock(docs[0].name, true);
@ -57,6 +58,7 @@ module.exports = function getLinkInfo(getDocFromAlias, encodeCodeBlock, log) {
} else if ( url.indexOf('/') === -1 && url.indexOf('#') !== 0 ) {
linkInfo.valid = false;
linkInfo.errorType = 'missing';
linkInfo.error = 'Invalid link (does not match any doc): "' + url + '"';
} else {