UNPKG

webpage

Version:

Webpage Boilerplate Component

106 lines (95 loc) 5.21 kB
/****************************************************************************** DEPENDENCIES ******************************************************************************/ var _config = require('_config'); /****************************************************************************** PARAMETER = ARGUMENT ******************************************************************************/ // no cli tool /****************************************************************************** EXPORT ******************************************************************************/ module.exports = boilerplate; /****************************************************************************** EXECUTION ******************************************************************************/ var config = _config(); function boilerplate (parameter) { var $title = config['title']; var $description = config['description']; var $keywords = config['keywords']; var $author = config['author']; var $website = config['website']; var $style = config['style']; var $logoURL = undefined; var $googleAnalytics = undefined; if (parameter) { $title = parameter.title || $title; $description = parameter.description || $description; $keywords = parameter.keywords || $keywords; $author = parameter.author || $author; $website = parameter.website || $website; $style = parameter.style || $style; $logoURL = parameter.logoURL || $logoURL; $googleAnalytics = parameter.ga || $googleAnalytics; } var title = ['<title>'+$title+'</title>']; var meta = [ '<meta charset="utf-8">', '<meta name="format-detection" content="telephone=no" />', '<meta name="msapplication-tap-highlight" content="no" />', '<meta name="description" content="'+$description+'">', '<meta name="keywords" content="'+$keywords+'">', '<meta name="author" content="'+$author+'">', '<meta name="viewport" content="width=device-width, initial-scale = 1.0, user-scalable=no">' ]; var og = [ '<meta property="og:title" content="'+$title+'" />', '<meta property="og:site_name" content="'+$title+'" />', '<meta property="og:url" content="'+$website+'" />', '<meta property="og:description" content="'+$description+'" />', '<meta property="og:image" content="'+$logoURL+'" />', ]; var icon = [ // check item generator '<link rel="apple-touch-icon" sizes="57x57" href="logo/favicon/apple-touch-icon-57x57.png">', '<link rel="apple-touch-icon" sizes="60x60" href="logo/favicon/apple-touch-icon-60x60.png">', '<link rel="apple-touch-icon" sizes="72x72" href="logo/favicon/apple-touch-icon-72x72.png">', '<link rel="apple-touch-icon" sizes="76x76" href="logo/favicon/apple-touch-icon-76x76.png">', '<link rel="apple-touch-icon" sizes="114x114" href="logo/favicon/apple-touch-icon-114x114.png">', '<link rel="apple-touch-icon" sizes="120x120" href="logo/favicon/apple-touch-icon-120x120.png">', '<link rel="apple-touch-icon" sizes="144x144" href="logo/favicon/apple-touch-icon-144x144.png">', '<link rel="icon" type="image/png" href="logo/favicon/favicon-32x32.png" sizes="32x32">', '<link rel="icon" type="image/png" href="logo/favicon/favicon-96x96.png" sizes="96x96">', '<link rel="icon" type="image/png" href="logo/favicon/favicon-16x16.png" sizes="16x16">', '<link rel="manifest" href="logo/favicon/manifest.json">', '<meta name="msapplication-TileColor" content="#b91d47">', '<meta name="msapplication-TileImage" content="logo/favicon/mstile-144x144.png">', '<meta name="theme-color" content="#ffffff">', '<link rel="shortcut icon" type="image/x-icon" href="SOURCE/favicon.ico">', '<link rel="icon" type="image/png" href="SOURCE/reinventingengagement.png">' ]; var style = [ '<link rel="stylesheet" type="text/css" href="' + $style + '" />' ]; var google = $googleAnalytics ? [ "<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','//www.google-analytics.com/analytics.js','ga');", "ga('create', '" + $googleAnalytics + "', 'auto');", "ga('send', 'pageview');", "</script>"] :[]; var head = title.concat(meta).concat(og)/*.concat(icon)*/.concat(style); var body = google/*.concat(...)*/; var htmlTag = document.querySelector('html'); var headTag = document.querySelector('head'); var bodyTag = document.querySelector('body'); htmlTag.setAttribute('lang','en'); headTag.innerHTML = head.join(''); var tmp, temp = document.createElement('div'); temp.innerHTML = body.join(''); while (tmp = temp.childNodes[0]) { bodyTag.appendChild(tmp); } return bodyTag; };