in tools/api-builder/links-package/inline-tag-defs/linkDocs.js [28:73]
handler: function(doc, tagName, tagDescription) {
// Parse out the uri and title
var tagArgs = parseArgString(tagDescription);
var unnamedArgs = tagArgs._;
var uri = unnamedArgs[0];
var title = tagArgs.title || (unnamedArgs.length > 1 ? unnamedArgs[1] : null);
// Are there parameters and/or an anchor?
var matches, paramAnchor = '';
if (matches = uri.match(/([^\#\?]*)([\#\?].*)/)) {
uri = matches[1];
paramAnchor = matches[2];
}
// Is this a chapter-relative uri like 'guide/...'?
if (!uri.match(/^(ts|js|dart)/)) {
var lang = _self.lang;
var vers = _self.vers;
var prevUri = uri;
uri = path.join(lang, vers, uri);
var fileName = doc.fileInfo ? (' (' + doc.fileInfo.baseName + ')') : '';
log.info('Ajusted linkDocs chapter-relative uri' + fileName + ': ' + prevUri + ' -> ' + uri);
}
var isValid = false;
var jadePath = path.join('./public/docs', uri + '.jade');
var key = path.basename(jadePath, '.jade');
if ( !fs.existsSync(jadePath)) {
log.warn(createDocMessage('Invalid docs link (unable to locate jade file: "' + jadePath + '")', doc));
} else {
isValid = true;
if (!title) {
var jsonFilePath = path.join(path.dirname(jadePath), '_data.json');
if ( fs.existsSync(jsonFilePath)) {
var jsonObj = jsonFile.readFileSync(jsonFilePath);
title = jsonObj[key] && jsonObj[key].title;
}
}
}
var url = path.join('/docs', uri + '.html' + paramAnchor);
title = title || key || url;
return isValid ?
'<a href="' + url + '">' + title + '</a>' :
'<span>' + title + '</span>';
}