chore(doc-gen): relax link matching
This commit is contained in:
parent
9a72f19b97
commit
c6dc78183d
@ -81,6 +81,12 @@ module.exports = new Package('angular', [jsdocPackage, nunjucksPackage, linksPac
|
|||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
// Configure links
|
||||||
|
.config(function(getLinkInfo) {
|
||||||
|
getLinkInfo.useFirstAmbiguousLink = true;
|
||||||
|
})
|
||||||
|
|
||||||
|
|
||||||
// Configure file writing
|
// Configure file writing
|
||||||
.config(function(writeFilesProcessor) {
|
.config(function(writeFilesProcessor) {
|
||||||
writeFilesProcessor.outputFolder = 'dist/docs';
|
writeFilesProcessor.outputFolder = 'dist/docs';
|
||||||
|
@ -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
|
* @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 {
|
return {
|
||||||
name: 'link',
|
name: 'link',
|
||||||
description: 'Process inline link tags (of the form {@link some/uri Some Title}), replacing them with HTML anchors',
|
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);
|
var linkInfo = getLinkInfo(uri, title, doc);
|
||||||
|
|
||||||
if ( !linkInfo.valid ) {
|
if ( !linkInfo.valid ) {
|
||||||
throw new Error(createDocMessage(linkInfo.error, doc));
|
log.warn(createDocMessage(linkInfo.error, doc));
|
||||||
}
|
}
|
||||||
|
|
||||||
return "<a href='" + linkInfo.url + "'>" + linkInfo.title + "</a>";
|
return "<a href='" + linkInfo.url + "'>" + linkInfo.title + "</a>";
|
||||||
|
@ -28,13 +28,14 @@ module.exports = function getLinkInfo(getDocFromAlias, encodeCodeBlock, log) {
|
|||||||
|
|
||||||
var docs = getDocFromAlias(url, currentDoc);
|
var docs = getDocFromAlias(url, currentDoc);
|
||||||
|
|
||||||
if ( docs.length > 1 ) {
|
if ( !getLinkInfoImpl.useFirstAmbiguousLink && docs.length > 1 ) {
|
||||||
|
|
||||||
linkInfo.valid = false;
|
linkInfo.valid = false;
|
||||||
|
linkInfo.errorType = 'ambiguous';
|
||||||
linkInfo.error = 'Ambiguous link: "' + url + '".\n' +
|
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.url = docs[0].path;
|
||||||
linkInfo.title = title || encodeCodeBlock(docs[0].name, true);
|
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 ) {
|
} else if ( url.indexOf('/') === -1 && url.indexOf('#') !== 0 ) {
|
||||||
|
|
||||||
linkInfo.valid = false;
|
linkInfo.valid = false;
|
||||||
|
linkInfo.errorType = 'missing';
|
||||||
linkInfo.error = 'Invalid link (does not match any doc): "' + url + '"';
|
linkInfo.error = 'Invalid link (does not match any doc): "' + url + '"';
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user