UNPKG

arredemo

Version:

Instantly build a static site for your package

45 lines (37 loc) 1.32 kB
import fs from 'fs' import Mustache from 'mustache' const _renderIndexHtmlAs = (source, dest, pkgJson, arreConfig, bundle) => { const title=pkgJson.name const description= pkgJson?.description || '' const keywords= pkgJson?.keywords || '' const author= pkgJson?.author || '' const url= pkgJson?.homepage || '' const logo= arreConfig.logo.dest const favicon_main= arreConfig.favicon.main?.dest const favicon_ico= arreConfig.favicon.ico?.dest const favicon_apple= arreConfig.favicon.apple?.dest const tmpl= fs.readFileSync(source, {encoding:'utf8', flag:'r'}) const data= { title, description, keywords, author, url, logo, favicon_main, favicon_ico, favicon_apple, bundle, bundle_version: `${Math.floor(+new Date() / 1000)}` } const html = Mustache.render(tmpl, data) fs.writeFileSync(dest, html, {encoding:'utf8'}) } const renderIndexHtml = (source, dest, pkgJson, arreConfig) => { _renderIndexHtmlAs(source, dest, pkgJson, arreConfig, 'arredemo_docs.js') _renderIndexHtmlAs(source, dest.replace('index.html', 'docs.html'), pkgJson, arreConfig, 'arredemo_docs.js') if (arreConfig.has_demo) { _renderIndexHtmlAs(source, dest.replace('index.html', 'demo.html'), pkgJson, arreConfig, 'arredemo_demo.js') } } export {renderIndexHtml}