From afcc732968e29750b3d83b4f116eddbe5a5f12ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jakub=20Soko=C5=82owski?= Date: Wed, 11 Mar 2020 16:23:05 +0100 Subject: [PATCH] fix build process, disable building nim libraries MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Jakub Sokołowski --- .gitignore | 6 +- config.json | 4 +- docs/.vuepress/config.js | 21 ++-- docs/.vuepress/docgen/plugin.js | 193 ++++++++++++++++---------------- package.json | 1 - 5 files changed, 117 insertions(+), 108 deletions(-) diff --git a/.gitignore b/.gitignore index 00f5430..f8d5c72 100644 --- a/.gitignore +++ b/.gitignore @@ -1,8 +1,8 @@ node_modules yarn-error.log -docs/.vuepress/dist -docs/README.md -/lib/* +/docs/.vuepress/dist +/docs/README.md +/docs/lib/* !/lib/.gitkeep .idea diff --git a/config.json b/config.json index 5fcf673..6ad4a85 100644 --- a/config.json +++ b/config.json @@ -82,7 +82,7 @@ }, { "name": "nim-stew", - "label": "Eth", + "label": "Stew", "location": "https://github.com/status-im/nim-stew", "update": true, @@ -127,4 +127,4 @@ } }, "separators": ["## Introduction|##Intro", "## Contributing|## License", "|"] -} \ No newline at end of file +} diff --git a/docs/.vuepress/config.js b/docs/.vuepress/config.js index b41f4b4..a000980 100644 --- a/docs/.vuepress/config.js +++ b/docs/.vuepress/config.js @@ -12,13 +12,18 @@ for (let i = 0; i < repos.length; i++) { let topLevel = { text: repos[i].label } - if (repos[i].apiref !== undefined) { - topLevel['items'] = [ - {text: "Docs", link: "/lib/" + repos[i].name.replace(/\/?$/, '/')}, - {text: "API Reference", link: "/lib/" + repos[i].name.replace(/\/?$/, '/') + "api.html"} - ]; - } else { - topLevel['link'] = "/lib/" + repos[i].name.replace(/\/?$/, '/'); + // Broken as fuck + //if (repos[i].apiref !== undefined) { + // topLevel['items'] = [ + // {text: "Docs", link: "/lib/" + repos[i].name.replace(/\/?$/, '/')}, + // {text: "API Reference", link: "/lib/" + repos[i].name.replace(/\/?$/, '/') + "api.html"} + // ]; + //} else { + // topLevel['link'] = "/lib/" + repos[i].name.replace(/\/?$/, '/'); + //} + topLevel = { + text: repos[i].label, + link: "/lib/" + repos[i].name.replace(/\/?$/, '/'), } nav.push(topLevel); @@ -62,4 +67,4 @@ module.exports = { // for each file in guides, push filename // menu for API ref if apiref exists - } \ No newline at end of file + } diff --git a/docs/.vuepress/docgen/plugin.js b/docs/.vuepress/docgen/plugin.js index 88d2f4b..c6ea5f5 100644 --- a/docs/.vuepress/docgen/plugin.js +++ b/docs/.vuepress/docgen/plugin.js @@ -31,7 +31,8 @@ module.exports = { mainReadmeLibs += "::: theorem "+repos[i].label+""; for (let tagIndex = 0; tagIndex < tags.length; tagIndex++) { mainReadmeLibs += "= 2) { + readmeBody = readmeParts[1]; + } readmeBody = "# " + repos[i].label + "\n\n" + readmeBody.split(es)[0]; console.log("Fixing images"); @@ -115,108 +120,108 @@ module.exports = { readmeBody = readmeBody.replace("--subdocs--", subdocsContent); } - if (repos[i].apiref !== undefined) { - switch (repos[i].apiref.lang) { - case "nim": - try { - const apiRefTemplateNim = "#### {name} \n\n {description} \n\n```nim{code}\n```\n\n"; - console.log("Starting nimdoc generation for repo " + repos[i].label); - - execSync('git clone ' + repos[i].location + " " + repos[i].name); + //if (repos[i].apiref !== undefined) { + // switch (repos[i].apiref.lang) { + // case "nim": + // try { + // const apiRefTemplateNim = "#### {name} \n\n {description} \n\n```nim{code}\n```\n\n"; + // console.log("Starting nimdoc generation for repo " + repos[i].label); + // + // execSync('git clone ' + repos[i].location + " " + repos[i].name); - // Bootstrap if needed - if (repos[i].apiref.bootstrap !== undefined) { - process.chdir(repos[i].name); - console.log(execSync(repos[i].apiref.bootstrap).toString()); - process.chdir('..'); - } + // // Bootstrap if needed + // if (repos[i].apiref.bootstrap !== undefined) { + // process.chdir(repos[i].name); + // console.log(execSync(repos[i].apiref.bootstrap).toString()); + // process.chdir('..'); + // } - // Two passes because jsondoc is kinda broken - // Bug: https://github.com/nim-lang/Nim/issues/11953 - console.log("Generating docs"); - execSync('nim doc --project ' + repos[i].name + '/' + repos[i].apiref.mainfile); - console.log("Generating jsondocs"); - execSync('nim jsondoc --project ' + repos[i].name + '/' + repos[i].apiref.mainfile); + // // Two passes because jsondoc is kinda broken + // // Bug: https://github.com/nim-lang/Nim/issues/11953 + // console.log("Generating docs"); + // execSync('nim doc --project ' + repos[i].name + '/' + repos[i].apiref.mainfile); + // console.log("Generating jsondocs"); + // execSync('nim jsondoc --project ' + repos[i].name + '/' + repos[i].apiref.mainfile); - console.log("Consuming files"); + // console.log("Consuming files"); - let dir = repos[i].name + '/' + repos[i].apiref.subfolder; + // let dir = repos[i].name + '/' + repos[i].apiref.subfolder; - let extension = '.json'; - let jsonFiles = []; - // Consume main file - jsonFiles.push(JSON.parse(fs.readFileSync(dir + "/" + repos[i].apiref.mainfile.split(".nim")[0] + extension))); - // Consume all other files - let subdir = dir + "/" + repos[i].apiref.mainfile.split(".nim")[0]; - let files = fs.readdirSync(subdir); - files.forEach(file => { - if(file.indexOf(extension ) > -1) { - let jsonContent = fs.readFileSync(subdir + "/" + file); - jsonFiles.push( - JSON.parse(jsonContent) - ); - } - }); + // let extension = '.json'; + // let jsonFiles = []; + // // Consume main file + // jsonFiles.push(JSON.parse(fs.readFileSync(dir + "/" + repos[i].apiref.mainfile.split(".nim")[0] + extension))); + // // Consume all other files + // let subdir = dir + "/" + repos[i].apiref.mainfile.split(".nim")[0]; + // let files = fs.readdirSync(subdir); + // files.forEach(file => { + // if(file.indexOf(extension ) > -1) { + // let jsonContent = fs.readFileSync(subdir + "/" + file); + // jsonFiles.push( + // JSON.parse(jsonContent) + // ); + // } + // }); - console.log("Found " + jsonFiles.length + " doc file to MD-ify"); - let md = ""; - for (let z = 0; z < jsonFiles.length; z++) { - // Turn each into MD - console.log(jsonFiles[z].orig + " has " + jsonFiles[z].entries.length + " entries to document."); - - let entries = jsonFiles[z].entries; + // console.log("Found " + jsonFiles.length + " doc file to MD-ify"); + // let md = ""; + // for (let z = 0; z < jsonFiles.length; z++) { + // // Turn each into MD + // console.log(jsonFiles[z].orig + " has " + jsonFiles[z].entries.length + " entries to document."); + // + // let entries = jsonFiles[z].entries; - console.log("Processing " + jsonFiles[z].orig.match(/(\w+)\.nim$/gmi)[0].replace('.nim', '')); - - let prefix = (z === 0) ? "# API reference: " : "## "; - md += prefix + jsonFiles[z].orig.match(/(\w+)\.nim$/gmi)[0].replace('.nim', '') + "\n"; - - if (entries.length) { + // console.log("Processing " + jsonFiles[z].orig.match(/(\w+)\.nim$/gmi)[0].replace('.nim', '')); + // + // let prefix = (z === 0) ? "# API reference: " : "## "; + // md += prefix + jsonFiles[z].orig.match(/(\w+)\.nim$/gmi)[0].replace('.nim', '') + "\n"; + // + // if (entries.length) { - // Sort entries by type like in HTML docs - let content = { - "types": "", // skType - "procs": "", // skProc - "templates": "" // skTemplate - } + // // Sort entries by type like in HTML docs + // let content = { + // "types": "", // skType + // "procs": "", // skProc + // "templates": "" // skTemplate + // } - console.log("Working through entries of " + jsonFiles[z].orig); + // console.log("Working through entries of " + jsonFiles[z].orig); - for (let z1 = 0; z1 < entries.length; z1++) { + // for (let z1 = 0; z1 < entries.length; z1++) { - let newTpl = apiRefTemplateNim - .replace("{description}", entries[z1].description) - .replace("{name}", entries[z1].name) - .replace("{code}", "\n" + entries[z1].code.trim()); + // let newTpl = apiRefTemplateNim + // .replace("{description}", entries[z1].description) + // .replace("{name}", entries[z1].name) + // .replace("{code}", "\n" + entries[z1].code.trim()); - switch(entries[z1].type) { - case "skType": - content.types += newTpl; - break; - case "skProc": - content.procs += newTpl; - break; - case "skTemplate": - content.templates += newTpl; - break; - default: break; - } - } + // switch(entries[z1].type) { + // case "skType": + // content.types += newTpl; + // break; + // case "skProc": + // content.procs += newTpl; + // break; + // case "skTemplate": + // content.templates += newTpl; + // break; + // default: break; + // } + // } - md += "### Types\n\n" + content.types + "\n\n---\n\n### Procs\n\n---\n\n" + content.procs + "\n\n---\n\n### Templates\n\n---\n\n" + content.templates + "\n\n"; - } - } - - fs.writeFileSync("lib/" + repos[i].name + "/api.md", "---\nsidebar: auto\n---\n\n" + md); - rm.sync(repos[i].name); - break; - } catch (e) { - console.log(e); - rm.sync(repos[i].name); - } - default: break; - } - } + // md += "### Types\n\n" + content.types + "\n\n---\n\n### Procs\n\n---\n\n" + content.procs + "\n\n---\n\n### Templates\n\n---\n\n" + content.templates + "\n\n"; + // } + // } + // + // fs.writeFileSync("lib/" + repos[i].name + "/api.md", "---\nsidebar: auto\n---\n\n" + md); + // rm.sync(repos[i].name); + // break; + // } catch (e) { + // console.log(e); + // rm.sync(repos[i].name); + // } + // default: break; + // } + //} let frontMatter = ""; if (repos[i].frontMatter !== undefined) { @@ -230,7 +235,7 @@ module.exports = { let finalFile = frontMatter + readmeBody; - var dir = './lib/'+repos[i].name; + var dir = './docs/lib/'+repos[i].name; if (!fs.existsSync(dir)){ fs.mkdirSync(dir); @@ -252,7 +257,7 @@ module.exports = { console.log("Preparing to write new main README file"); mainReadme = mainReadme.replace("{{{libraries}}}", mainReadmeLibs); - fs.writeFileSync("./README.md", mainReadme, function(err) { + fs.writeFileSync("./docs/README.md", mainReadme, function(err) { if(err) { return console.log(err); } @@ -306,4 +311,4 @@ const listDir = (dir, fileList = []) => { }); return fileList; -}; \ No newline at end of file +}; diff --git a/package.json b/package.json index fe3f401..b8ec942 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,6 @@ "name": "nimbus-docs-suite", "version": "1.0.0", "description": "A Vuepress-powered documentation generator for Nimbus libraries", - "main": "index.js", "repository": "git@github.com:status-im/nimbus-docs-suite.git", "author": "Jakub Sokołowski ", "license": "MIT",