You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
2.9 KiB
JavaScript
90 lines
2.9 KiB
JavaScript
"use strict";
|
|
|
|
const defaultEnd = `
|
|
<footer id="footer">
|
|
Copyright © 2017+ <a href="https://futagoza.github.io/">Futago-za Ryuu</a>
|
|
•
|
|
<a href="https://github.com/pegjs/pegjs">Source code</a>
|
|
•
|
|
<a href="https://twitter.com/pegjs" title="Follow PEG.js on Twitter">Twitter</a>
|
|
<br />
|
|
Copyright © 2010–2016 <a href="https://majda.cz/">David Majda</a>
|
|
</footer>
|
|
</div>
|
|
`;
|
|
|
|
function menuItem( title, url, text ) {
|
|
|
|
const className = title === text ? " class=\"current\"" : "";
|
|
|
|
return `<a ${ className } href="/${ url }">${ text }</a>`;
|
|
|
|
}
|
|
|
|
module.exports = ( {
|
|
bodyStart = "<div id='main'>",
|
|
bodyEnd = " " + defaultEnd.trimLeft(),
|
|
content = "",
|
|
ga = "UA-100728112-1",
|
|
head = "",
|
|
layout = "default",
|
|
title = null,
|
|
} = {} ) => `
|
|
|
|
<!DOCTYPE html>
|
|
<html>
|
|
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta name="author" content="Futago-za Ryuu (futagoza.ryuu@gmail.com)">
|
|
<meta name="copyright" content="Copyright © 2017 Futago-za Ryuu">
|
|
<meta name="keywords" content="parser generator, PEG, JavaScript">
|
|
<meta name="description" content="PEG.js is a parser generator for JavaScript based on the parsing expression grammar formalism.">
|
|
<title>${ title && title !== "Home" ? title + " » " : "" }PEG.js – Parser Generator for JavaScript</title>
|
|
<link rel="stylesheet" href="/css/common.css">
|
|
<link rel="stylesheet" href="/css/layout-${ layout }.css">
|
|
<link rel="stylesheet" href="/css/content.css">
|
|
<link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
|
|
<!--[if IE]>
|
|
<script>
|
|
var html5elements = ["aside", "footer", "header", "nav"];
|
|
for (var i = 0; i < html5elements.length; i++) {
|
|
document.createElement(html5elements[i]);
|
|
}
|
|
</script>
|
|
<![endif]-->
|
|
${ head }
|
|
</head>
|
|
|
|
<body>
|
|
${ bodyStart }
|
|
<header id="header">
|
|
<h1><a href="/">PEG.js</a></h1>
|
|
<h2>Parser Generator for JavaScript</h2>
|
|
</header>
|
|
|
|
<nav id="menu">
|
|
${ menuItem( title, "", "Home" ) }
|
|
${ menuItem( title, "online", "Online Version" ) }
|
|
${ menuItem( title, "documentation", "Documentation" ) }
|
|
${ menuItem( title, "development", "Development" ) }
|
|
</nav>
|
|
|
|
${ content.trim() }
|
|
|
|
${ bodyEnd }
|
|
|
|
<script type="text/javascript">
|
|
(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', '${ ga }', 'auto');
|
|
ga('send', 'pageview');
|
|
</script>
|
|
</body>
|
|
|
|
</html>
|
|
|
|
`.trim();
|