UNPKG

@edsilv/ami.js

Version:

<p align="center"> <img src="https://user-images.githubusercontent.com/214063/46479857-4cd66e80-c7f0-11e8-9585-5748409c9490.png" width="60%"> </p>

72 lines (57 loc) 2.23 kB
const fs = require('fs'); const packageJSON = require('../package.json'); String.prototype.toProperCase = function() { return this.replace(/\w\S*/g, function(txt) { return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase(); }); }; const targetName = process.argv[2]; const _sourceFile = targetName + '/index.sample.html'; let targetDir = targetName + '/'; const sourceDir = targetDir; if (process.env.NODE_ENV === 'production') { targetDir = 'dist/' + targetDir; } const gaKey = packageJSON.config.gaKey; analytics = (name, key) => { return `<script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', '${key}', 'auto'); var page = '/ami/${targetName}/${name}'; ga('send', 'pageview', page); </script> `; }; demoAmi = mode => { let relPath = 'ami.js'; if (mode === 'cdn') { relPath = packageJSON.config.amiCDN + '/' + packageJSON.version + '/ami.min.js'; } return `<script type="text/javascript" src="${relPath}"></script>`; }; const sourceHtml = fs.readFileSync(_sourceFile, 'utf8'); fs.readdir(sourceDir, (error, files) => { files.forEach(file => { if (file === '.DS_Store' || file === 'index.sample.html' || file === 'demo.sample.html') { return; } let destFile = targetDir + file + '/' + 'index.html'; const sourceContentHtml = fs.readFileSync(sourceDir + file + '/' + file + '.html', 'utf8'); let targetHtml = sourceHtml.replace(/##template.name##/gi, file); targetHtml = targetHtml.replace('##template.target##', file); targetHtml = targetHtml.replace('##template.content##', sourceContentHtml); targetHtml = targetHtml.replace('##template.ami', ''); let gaScript = ''; if (process.env.NODE_GA) { gaScript = analytics(file, gaKey); } targetHtml = targetHtml.replace('##google.analytics##', gaScript); fs.writeFile(destFile, targetHtml, err => { if (err) throw err; console.log('Write: ' + destFile); }); }); });