UNPKG

react-easy-seo

Version:

A Creative Solution For Your React Seo Problems.

51 lines (42 loc) 2.17 kB
const fs=require('fs-extra'); const path=require('path') current_dir = process.cwd() const siteData = require(current_dir+'/src/sitemetadata.json') function startScript(){ const routes = [] for (const data in siteData) { routes.push(data) } var metadata = '' var htmlTemplate = fs.readFileSync(path.resolve(current_dir+'/build/', 'index.html'), 'utf8') fs.emptyDirSync(current_dir+'/output') fs.copySync(current_dir + '/build', current_dir +'/output') for (const route in routes) { if(routes[route] === "/404/"){continue} const dir =current_dir+ "/output" + routes[route] fs.mkdirSync(dir, { recursive: true }); var pageMetadata = '<!doctype html><html lang="en"><head>' for (const meta in siteData[routes[route]]) { if(meta==='article'){continue} pageMetadata = pageMetadata.concat( `<meta name="${meta}" content="${siteData[routes[route]][meta]}"></meta>`) } pageMetadata = pageMetadata.concat(`<title>${siteData[routes[route]]['title']}</title>`) if (siteData[routes[route]]['article']){ htmlTemplate = htmlTemplate.replace('<div id="root"></div>', `<div id="root"><p>${siteData[routes[route]]['article']}</p></div>`) } htmlTemplate = htmlTemplate.replace('<!doctype html><html lang="en"><head>', pageMetadata) fs.writeFileSync(dir + 'index.html', htmlTemplate) } function make404Page(){ var htmlTemplate = fs.readFileSync(path.resolve(current_dir + '/build/', 'index.html'), 'utf8') var pageMetadata = '<!doctype html><html lang="en"><head>' const title=siteData['/404/']['title'] const description = siteData['/404/']['description'] pageMetadata = pageMetadata.concat(`<meta name="title" content="${title}"></meta>`) pageMetadata = pageMetadata.concat(`<meta name="description" content="${description}"></meta>`) htmlTemplate = htmlTemplate.replace('<!doctype html><html lang="en"><head>', pageMetadata) fs.writeFileSync(current_dir + '/404.html', htmlTemplate) } make404Page() } exports.startScript = startScript