UNPKG

basic-html-boilerplate

Version:

A basic CLI to generate a boilerplate HTML website (no frameworks included)

61 lines (48 loc) 1.75 kB
#!/usr/bin/env node const fs = require('fs'); const path = require('path'); process.argv = process.argv.splice(2, 2); let directory = process.argv[0]; /** * File Structure: * main-folder/ * css/ * styles.css * html/ * About.html * js/ * main.js * index.html */ let projectName = ''; // Get files const stylesCss = fs.readFileSync(path.join(__dirname, 'boilerplate', 'css', 'styles.css')).toString(); const AboutHTML = fs.readFileSync(path.join(__dirname, 'boilerplate', 'html', 'About.html')).toString(); const mainJS = fs.readFileSync(path.join(__dirname, 'boilerplate', 'js', 'main.js')).toString(); let indexHTML = fs.readFileSync(path.join(__dirname, 'boilerplate', 'index.html')).toString(); if (directory !== '.') { projectName = directory; if (fs.existsSync(directory)) { fs.rmdirSync(directory, { recursive: true }); } // Make main directory fs.mkdirSync(directory, { recursive: true }); } else { projectName = process.cwd().split(/(\\|\/)/).pop(); } indexHTML = indexHTML.replace('Your Webpage!', projectName + '!'); indexHTML = indexHTML.replace('project-name', projectName + '!'); // Make CSS directory fs.mkdirSync(path.join(directory, 'css'), { recursive: true }); // Make styles.css fs.writeFileSync(path.join(directory, 'css', 'styles.css'), stylesCss); // Make HTML Directory fs.mkdirSync(path.join(directory, 'html'), { recursive: true }); // Make About.html fs.writeFileSync(path.join(directory, 'html', 'About.html'), AboutHTML); // Make JS Directory fs.mkdirSync(path.join(directory, 'js'), { recursive: true }); // Make main.js fs.writeFileSync(path.join(directory, 'js', 'main.js'), mainJS); // Make index.html fs.writeFileSync(path.join(directory, 'index.html'), indexHTML);