[ADF-2643] Added compatibility info to version index (#3218)

* [ADF-1643] Updated version index and script to support compatibility info

* [ADF-2643] Added links and compatibility info
This commit is contained in:
Andy Stark
2018-04-19 16:20:00 +01:00
committed by Eugenio Romano
parent fbe675aedb
commit e0cc0fc7c5
3 changed files with 81 additions and 34 deletions

View File

@@ -5,6 +5,9 @@ var yaml = require("js-yaml");
var remark = require("remark");
var stringify = require("remark-stringify");
var zone = require("mdast-zone");
var frontMatter = require("remark-frontmatter");
var combyne = require("combyne");
var unist = require("../unistHelpers");
var ngHelpers = require("../ngHelpers");
@@ -25,13 +28,15 @@ var histFilePath = path.resolve(docsFolderPath, "versionIndex.md");
var histSectionName = "history";
var initialVersion = "v2.0.0";
var templateFolder = path.resolve(".", "config", "DocProcessor", "templates");
function initPhase(aggData) {
aggData.versions = { "v2.0.0":[] };
}
function readPhase(tree, pathname, aggData) {
var compName = pathname; //path.basename(pathname, ".md");
var compName = pathname;
var angNameRegex = /([a-zA-Z0-9\-]+)\.((component)|(directive)|(model)|(pipe)|(service)|(widget))/;
if (!compName.match(angNameRegex))
@@ -60,7 +65,7 @@ function readPhase(tree, pathname, aggData) {
function aggPhase(aggData) {
var histFileText = fs.readFileSync(histFilePath, "utf8");
var histFileTree = remark().parse(histFileText);
var histFileTree = remark().data("settings", {paddedTable: false, gfm: false}).parse(histFileText);
var keys = Object.keys(aggData.versions);
keys.sort((a, b) => {
@@ -72,16 +77,9 @@ function aggPhase(aggData) {
return 0;
});
var sections = [unist.makeHeading(unist.makeText("Versions"), 2)];
var vListItems = [];
for (var i = 0; i < keys.length; i++) {
var keyAnchor = keys[i].replace(/\./g, "");
vListItems.push(unist.makeListItem(unist.makeLink(unist.makeText(keys[i]), `#${keyAnchor}`)));
}
sections.push(unist.makeListUnordered(vListItems));
var templateName = path.resolve(templateFolder, "versIndex.combyne");
var templateSource = fs.readFileSync(templateName, "utf8");
var template = combyne(templateSource);
for (var i = 0; i < keys.length; i++) {
var version = keys[i];
@@ -93,7 +91,7 @@ function aggPhase(aggData) {
return aa.localeCompare(bb);
});
var versListItems = [];
var versionTemplateData = {items: []};
for (var v = 0; v < versionItems.length; v++) {
var displayName = ngHelpers.ngNameToDisplayName(path.basename(versionItems[v], ".md"));
@@ -101,25 +99,27 @@ function aggPhase(aggData) {
pageLink = pageLink.replace(/\\/g, '/');
pageLink = pageLink.substr(pageLink.indexOf("docs") + 5);
versListItems.push(
unist.makeListItem(
unist.makeLink(unist.makeText(displayName), pageLink)
)
);
versionTemplateData.items.push({
title: displayName,
link: pageLink
});
}
sections.push(unist.makeHeading(unist.makeText(version), 2));
sections.push(unist.makeListUnordered(versListItems));
var mdText = template.render(versionTemplateData);
mdText = mdText.replace(/^ +-/mg, "-");
var newSection = remark().data("settings", {paddedTable: false, gfm: false}).parse(mdText.trim()).children;
var versSectionName = version.replace(/\./g, "");;
zone(histFileTree, versSectionName, (startComment, oldSection, endComment) => {
newSection.unshift(startComment);
newSection.push(endComment);
return newSection;
});
}
zone(histFileTree, histSectionName, (startComment, oldSection, endComment) => {
sections.unshift(startComment);
sections.push(endComment);
return sections;
});
//console.log(JSON.stringify(histFileTree));
fs.writeFileSync(histFilePath, remark().stringify(histFileTree));
fs.writeFileSync(histFilePath, remark().use(frontMatter, {type: 'yaml', fence: '---'}).data("settings", {paddedTable: false, gfm: false}).stringify(histFileTree));
}