Skip to content

Commit

Permalink
doc: linkify type[] syntax, support lowercase for primitives
Browse files Browse the repository at this point in the history
  • Loading branch information
silverwind committed Mar 2, 2017
1 parent 899a48b commit 1ce91fd
Showing 1 changed file with 18 additions and 9 deletions.
27 changes: 18 additions & 9 deletions tools/doc/type-parser.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@ const jsDocPrefix = 'https://developer.mozilla.org/en-US/docs/Web/JavaScript/';
const jsDocUrl = jsDocPrefix + 'Reference/Global_Objects/';
const jsPrimitiveUrl = jsDocPrefix + 'Data_structures';
const jsPrimitives = {
'Integer': 'Number', // this is for extending
'Number': 'Number',
'String': 'String',
'Boolean': 'Boolean',
'Null': 'Null',
'Symbol': 'Symbol'
'integer': 'Number', // this is for extending
'number': 'Number',
'string': 'String',
'boolean': 'Boolean',
'null': 'Null',
'symbol': 'Symbol'
};
const jsGlobalTypes = [
'Error', 'Object', 'Function', 'Array', 'TypedArray', 'Uint8Array',
Expand Down Expand Up @@ -67,7 +67,16 @@ module.exports = {
typeText = typeText.trim();
if (typeText) {
let typeUrl = null;
const primitive = jsPrimitives[typeText];

// To support type[], we store the full string and use
// the bracket-less version to lookup the type URL
const typeTextFull = typeText;
if (/\[]$/.test(typeText)) {
typeText = typeText.slice(0, -2);
}

const primitive = jsPrimitives[typeText.toLowerCase()];

if (primitive !== undefined) {
typeUrl = `${jsPrimitiveUrl}#${primitive}_type`;
} else if (jsGlobalTypes.indexOf(typeText) !== -1) {
Expand All @@ -78,9 +87,9 @@ module.exports = {

if (typeUrl) {
typeLinks.push('<a href="' + typeUrl + '" class="type">&lt;' +
typeText + '&gt;</a>');
typeTextFull + '&gt;</a>');
} else {
typeLinks.push('<span class="type">&lt;' + typeText + '&gt;</span>');
typeLinks.push('<span class="type">&lt;' + typeTextFull + '&gt;</span>');
}
}
});
Expand Down

0 comments on commit 1ce91fd

Please sign in to comment.