mirror of
https://github.com/Alfresco/alfresco-ng2-components.git
synced 2025-05-19 17:14:57 +00:00
* [ADF-1643] Updated version index and script to support compatibility info * [ADF-2643] Added links and compatibility info
128 lines
3.9 KiB
JavaScript
128 lines
3.9 KiB
JavaScript
var fs = require("fs");
|
|
var path = require("path");
|
|
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");
|
|
|
|
|
|
module.exports = {
|
|
"initPhase": initPhase,
|
|
"readPhase": readPhase,
|
|
"aggPhase": aggPhase,
|
|
"updatePhase": updatePhase
|
|
}
|
|
|
|
var angFilenameRegex = /([a-zA-Z0-9\-]+)\.((component)|(directive)|(model)|(pipe)|(service)|(widget))\.ts/;
|
|
|
|
var docsFolderPath = path.resolve("..", "docs");
|
|
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;
|
|
var angNameRegex = /([a-zA-Z0-9\-]+)\.((component)|(directive)|(model)|(pipe)|(service)|(widget))/;
|
|
|
|
if (!compName.match(angNameRegex))
|
|
return;
|
|
|
|
if (compName.match(/boilerplate/))
|
|
return;
|
|
|
|
if (tree.children[0].type == "yaml") {
|
|
var metadata = yaml.load(tree.children[0].value);
|
|
var version = metadata["Added"];
|
|
|
|
if (version) {
|
|
if (aggData.versions[version]) {
|
|
aggData.versions[version].push(compName);
|
|
} else {
|
|
aggData.versions[version] = [compName];
|
|
}
|
|
} else {
|
|
aggData.versions[initialVersion].push(compName);
|
|
}
|
|
} else {
|
|
aggData.versions[initialVersion].push(compName);
|
|
}
|
|
}
|
|
|
|
function aggPhase(aggData) {
|
|
var histFileText = fs.readFileSync(histFilePath, "utf8");
|
|
var histFileTree = remark().data("settings", {paddedTable: false, gfm: false}).parse(histFileText);
|
|
|
|
var keys = Object.keys(aggData.versions);
|
|
keys.sort((a, b) => {
|
|
if (a > b)
|
|
return -1;
|
|
else if (b > a)
|
|
return 1;
|
|
else
|
|
return 0;
|
|
});
|
|
|
|
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];
|
|
var versionItems = aggData.versions[version];
|
|
versionItems.sort((a, b) => {
|
|
var aa = path.basename(a, ".md");
|
|
var bb = path.basename(b, ".md");
|
|
|
|
return aa.localeCompare(bb);
|
|
});
|
|
|
|
var versionTemplateData = {items: []};
|
|
|
|
for (var v = 0; v < versionItems.length; v++) {
|
|
var displayName = ngHelpers.ngNameToDisplayName(path.basename(versionItems[v], ".md"));
|
|
var pageLink = versionItems[v];// + ".md";
|
|
pageLink = pageLink.replace(/\\/g, '/');
|
|
pageLink = pageLink.substr(pageLink.indexOf("docs") + 5);
|
|
|
|
versionTemplateData.items.push({
|
|
title: displayName,
|
|
link: pageLink
|
|
});
|
|
}
|
|
|
|
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;
|
|
});
|
|
}
|
|
|
|
fs.writeFileSync(histFilePath, remark().use(frontMatter, {type: 'yaml', fence: '---'}).data("settings", {paddedTable: false, gfm: false}).stringify(histFileTree));
|
|
}
|
|
|
|
|
|
function updatePhase(tree, pathname, aggData) {
|
|
return false;
|
|
} |