UNPKG

@sauskylark/potree

Version:

WebGL point cloud viewer

134 lines (97 loc) 2.38 kB
const path = require('path'); const fs = require("fs"); const fsp = fs.promises; const JSON5 = require('json5'); function toCode(files, data){ let code = ""; { let urls = data.map(e => e.url); let unhandled = []; for(let file of files){ let isHandled = false; for(let url of urls){ if(file.indexOf(url) !== -1){ isHandled = true; } } if(!isHandled){ unhandled.push(file); } } unhandled = unhandled .filter(file => file.indexOf(".html") > 0) .filter(file => file !== "page.html"); // for(let file of unhandled){ // unhandledCode += ` // <a href="${file}" class="unhandled">${file}</a> // `; // } } const rows = []; let row = []; for(let example of data){ row.push(example); if(row.length >= 6){ rows.push(row); row = []; } }; rows.push(row); for(const row of rows){ let thumbnails = ""; let labels = ""; for(let example of row){ let url = example.url.startsWith("http") ? example.url : `http://potree.org/potree/examples/${example.url}`; thumbnails += `<td> <a href="${url}" target="_blank"> <img src="examples/${example.thumb}" width="100%" /> </a> </td>`; labels += `<th>${example.label}</th>`; } code += `<tr> ${thumbnails} </tr> <tr> ${labels} </tr>`; } return code; } async function createGithubPage(){ const content = await fsp.readFile("./examples/page.json", 'utf8'); const settings = JSON5.parse(content); const files = await fsp.readdir("./examples"); let unhandledCode = ``; let exampleCode = toCode(files, settings.examples); let vrCode = toCode(files, settings.VR); let showcaseCode = toCode(files, settings.showcase); let thirdpartyCode = toCode(files, settings.thirdparty); let page = ` <h1>Examples</h1> <table> ${exampleCode} </table> <h1>VR</h1> <table> ${vrCode} </table> <h1>Showcase</h1> <table> ${showcaseCode} </table> <h1>Third Party Showcase</h1> <table> ${thirdpartyCode} </table>`; fs.writeFile(`examples/github.html`, page, (err) => { if(err){ console.log(err); }else{ console.log(`created examples/github.html`); } }); } exports.createGithubPage = createGithubPage;