Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2138)

Unified Diff: Source/devtools/front_end/documentation/JSArticle.js

Issue 539353004: DevTools: [Documentation] Update parser for WikiText (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: comments addressed Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/devtools/front_end/documentation/JSArticle.js
diff --git a/Source/devtools/front_end/documentation/JSArticle.js b/Source/devtools/front_end/documentation/JSArticle.js
index beb88dfad5833e84c2722a05166a07f5ca5ee412..62c7c83fa44343897f8b4d929526376faee7c6ee 100644
--- a/Source/devtools/front_end/documentation/JSArticle.js
+++ b/Source/devtools/front_end/documentation/JSArticle.js
@@ -25,43 +25,72 @@ WebInspector.JSArticle = function()
/**
* @constructor
- * @param {string} name
- * @param {string} dataType
- * @param {string} optional
+ * @param {?WebInspector.WikiParser.Block} name
+ * @param {?WebInspector.WikiParser.Block} dataType
+ * @param {?WebInspector.WikiParser.Block} optional
* @param {?WebInspector.WikiParser.Block} description
*/
WebInspector.JSArticle.Parameter = function(name, dataType, optional, description)
{
- this.name = name;
- this.dataType = dataType;
- this.optional = optional.toUpperCase() === "YES";
+ /** @type {string} */
+ this.name;
+ if (name && Array.isArray(name.children()) && name.children().length > 0
+ && Array.isArray(name.children()[0].children()) && name.children()[0].children().length > 0)
+ this.name = name.children()[0].children()[0].text();
lushnikov 2014/09/09 12:40:46 I would introduce a helper function "textContent",
iliia 2014/09/09 14:29:17 Done.
+ /** @type {string} */
+ this.dataType;
+ if (dataType && Array.isArray(dataType.children()) && dataType.children().length > 0
+ && Array.isArray(dataType.children()[0].children()) && dataType.children()[0].children().length > 0)
+ this.dataType = dataType.children()[0].children()[0].text();
lushnikov 2014/09/09 12:40:46 and here
iliia 2014/09/09 14:29:17 Done.
+ this.optional = false;
+ if (optional && Array.isArray(optional.children()) && optional.children().length > 0
+ && Array.isArray(optional.children()[0].children()) && optional.children()[0].children().length > 0)
+ this.optional = optional.children()[0].children()[0].text().toUpperCase() === "YES";
lushnikov 2014/09/09 12:40:46 and here
iliia 2014/09/09 14:29:17 Done.
this.description = description;
}
/**
* @constructor
- * @param {string} language
+ * @param {?WebInspector.WikiParser.Block} language
* @param {string} code
- * @param {string} liveUrl
+ * @param {?WebInspector.WikiParser.Block} liveUrl
* @param {?WebInspector.WikiParser.Block} description
*/
WebInspector.JSArticle.Example = function(language, code, liveUrl, description)
{
- this.language = language;
+ /** @type {string} */
+ this.language;
+ if (language && Array.isArray(language.children()) && language.children().length > 0
+ && Array.isArray(language.children()[0].children()) && language.children()[0].children().length > 0)
+ this.language = language.children()[0].children()[0].text();
this.code = code;
- this.liveUrl = liveUrl;
+ /** @type {string} */
+ this.liveUrl;
+ if (liveUrl && Array.isArray(liveUrl.children()) && liveUrl.children().length > 0
+ && Array.isArray(liveUrl.children()[0].children()) && liveUrl.children()[0].children().length > 0)
+ this.liveUrl = liveUrl.children()[0].children()[0].text();
this.description = description;
}
/**
* @constructor
- * @param {string} returnValueName
- * @param {string} returnValueDescription
+ * @param {?WebInspector.WikiParser.Block} returnValueName
+ * @param {?WebInspector.WikiParser.Block} returnValueDescription
*/
WebInspector.JSArticle.Method = function(returnValueName, returnValueDescription)
{
- this.returnValueName = returnValueName;
- this.returnValueDescription = returnValueDescription;
+ /** @type {string} */
+ this.returnValueName;
+ if (returnValueName && Array.isArray(returnValueName.children()) && returnValueName.children().length > 0
+ && Array.isArray(returnValueName.children()[0].children()) && returnValueName.children()[0].children().length > 0)
+ this.returnValueName = returnValueName.children()[0].children()[0].text();
+ /** @type {string} */
+ this.returnValueDescription;
+ if (returnValueDescription && Array.isArray(returnValueDescription.children())
+ && returnValueDescription.children().length > 0
+ && Array.isArray(returnValueDescription.children()[0].children())
+ && returnValueDescription.children()[0].children().length > 0)
+ this.returnValueDescription = returnValueDescription ? returnValueDescription.children()[0].children()[0].text() : null;
}
/**
@@ -70,22 +99,8 @@ WebInspector.JSArticle.Method = function(returnValueName, returnValueDescription
*/
WebInspector.JSArticle.parse = function(wikiMarkupText)
{
- /**
- * @param {string} string
- * @param {string} debugInfo
- * @return {?WebInspector.WikiParser.Block}
- */
- function parseString(string, debugInfo)
- {
- var result = wikiParser.parseString(string);
- if (!result)
- console.error("Can't parse " + debugInfo);
- return result;
- }
-
var wikiParser = new WebInspector.WikiParser(wikiMarkupText);
var wikiDocument = wikiParser.document();
-
var article = new WebInspector.JSArticle();
article.pageTitle = wikiDocument["Page_Title"];
if (typeof article.pageTitle !== "string")
@@ -101,13 +116,8 @@ WebInspector.JSArticle.parse = function(wikiMarkupText)
article.methods = new WebInspector.JSArticle.Method(returnValueName, returnValue);
}
- var remarks = wikiDocument["Remarks_Section"] ? wikiDocument["Remarks_Section"]["Remarks"] : null;
- if (remarks)
- article.remarks = parseString(remarks, "remarks");
-
- var summary = wikiDocument["Summary_Section"];
- if (summary)
- article.summary = parseString(summary, "summary");
+ article.remarks = wikiDocument["Remarks_Section"] ? wikiDocument["Remarks_Section"]["Remarks"] : null;
+ article.summary = wikiDocument["Summary_Section"];
var examples = wikiDocument["Examples_Section"] ? wikiDocument["Examples_Section"]["Examples"] : [];
if (!Array.isArray(examples) && typeof examples !== "undefined")
@@ -117,7 +127,7 @@ WebInspector.JSArticle.parse = function(wikiMarkupText)
var language = examples[i]["Single Example"]["Language"];
var code = examples[i]["Single Example"]["Code"];
var liveUrl = examples[i]["Single Example"]["LiveURL"];
- var description = parseString(examples[i]["Single Example"]["Description"], "example description");
+ var description = examples[i]["Single Example"]["Description"];
article.examples.push(new WebInspector.JSArticle.Example(language, code, liveUrl, description));
}
@@ -129,7 +139,7 @@ WebInspector.JSArticle.parse = function(wikiMarkupText)
var name = parameters[i]["Method Parameter"]["Name"];
var dataType = parameters[i]["Method Parameter"]["Data type"];
var optional = parameters[i]["Method Parameter"]["Optional"];
- var description = parseString(parameters[i]["Method Parameter"]["Description"], "method description");
+ var description = parameters[i]["Method Parameter"]["Description"];
article.parameters.push(new WebInspector.JSArticle.Parameter(name, dataType, optional, description));
}

Powered by Google App Engine
This is Rietveld 408576698