1
0
mirror of https://github.com/pdemian/human2regex.git synced 2025-05-16 04:20:35 -07:00

Reorganized source directory

This commit is contained in:
Patrick Demian 2020-10-29 04:13:55 -04:00
parent 31e9872c4f
commit df11fc82a3
23 changed files with 9320 additions and 361 deletions

View File

@ -1 +0,0 @@
<!DOCTYPE html><html lang="en" dir="ltr"><head><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="description" content="Bad Request"><meta name="keywords" content="Human2Regex, Human, Regex, Natural, Language, Natural Language"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Error 400 - Bad Request</title><link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet" type="text/css"><link href="bundle.min.css" rel="stylesheet" type="text/css"><meta name="theme-color" content="#212529"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="default"><link rel="icon" type="image/x-icon" href="favicon.ico"></head><body><a class="skip skip-top" href="#maincontent">Skip to main content</a><div class="wrapper"><nav class="navbar navbar-expand-lg navbar-light fixed-top" id="mainNav"><div class="container"><a class="navbar-brand" href="index.html"><img src="favicon.png" width="30" height="30" class="d-inline-block align-top" alt="logo">&nbsp;Human2Regex</a></div></nav><header class="masthead"><div class="overlay"></div><div class="container"><div class="row"><div class="col-lg-12 col-md-12 mx-auto"><div class="site-heading"><h1>400</h1><span class="subheading">Bad Request</span></div></div></div></div></header><div class="container" id="maincontent" role="main"><br><br><br><div class="row"><div class="col-12 mx-auto"><h3 class="align_header">The server cannot process the request.</h3></div></div></div><footer><div class="container"><div class="row"><div class="col-lg-8 col-md-10 mx-auto"><p class="copyright">Copyright &copy; 2020 Patrick Demian. This page's source code is available at <a rel="noopener noreferrer" href="https://github.com/pdemian/">github.com/pdemian/</a></p></div></div></div></footer></div><script defer="defer" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script><script defer="defer" src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/js/bootstrap.bundle.min.js"></script><script defer="defer" src="bundle.min.js"></script></body></html>

View File

@ -1 +0,0 @@
<!DOCTYPE html><html lang="en" dir="ltr"><head><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="description" content="Unauthorized"><meta name="keywords" content="Human2Regex, Human, Regex, Natural, Language, Natural Language"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Error 401 - Unauthorized</title><link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet" type="text/css"><link href="bundle.min.css" rel="stylesheet" type="text/css"><meta name="theme-color" content="#212529"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="default"><link rel="icon" type="image/x-icon" href="favicon.ico"></head><body><a class="skip skip-top" href="#maincontent">Skip to main content</a><div class="wrapper"><nav class="navbar navbar-expand-lg navbar-light fixed-top" id="mainNav"><div class="container"><a class="navbar-brand" href="index.html"><img src="favicon.png" width="30" height="30" class="d-inline-block align-top" alt="logo">&nbsp;Human2Regex</a></div></nav><header class="masthead"><div class="overlay"></div><div class="container"><div class="row"><div class="col-lg-12 col-md-12 mx-auto"><div class="site-heading"><h1>401</h1><span class="subheading">Unauthorized</span></div></div></div></div></header><div class="container" id="maincontent" role="main"><br><br><br><div class="row"><div class="col-12 mx-auto"><h3 class="align_header">Authentication required.</h3></div></div></div><footer><div class="container"><div class="row"><div class="col-lg-8 col-md-10 mx-auto"><p class="copyright">Copyright &copy; 2020 Patrick Demian. This page's source code is available at <a rel="noopener noreferrer" href="https://github.com/pdemian/">github.com/pdemian/</a></p></div></div></div></footer></div><script defer="defer" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script><script defer="defer" src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/js/bootstrap.bundle.min.js"></script><script defer="defer" src="bundle.min.js"></script></body></html>

View File

@ -1 +1 @@
<!DOCTYPE html><html lang="en" dir="ltr"><head><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="description" content="Not Found"><meta name="keywords" content="Human2Regex, Human, Regex, Natural, Language, Natural Language"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Error 404 - Not Found</title><link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet" type="text/css"><link href="bundle.min.css" rel="stylesheet" type="text/css"><meta name="theme-color" content="#212529"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="default"><link rel="icon" type="image/x-icon" href="favicon.ico"></head><body><a class="skip skip-top" href="#maincontent">Skip to main content</a><div class="wrapper"><nav class="navbar navbar-expand-lg navbar-light fixed-top" id="mainNav"><div class="container"><a class="navbar-brand" href="index.html"><img src="favicon.png" width="30" height="30" class="d-inline-block align-top" alt="logo">&nbsp;Human2Regex</a></div></nav><header class="masthead"><div class="overlay"></div><div class="container"><div class="row"><div class="col-lg-12 col-md-12 mx-auto"><div class="site-heading"><h1>404</h1><span class="subheading">Not Found</span></div></div></div></div></header><div class="container" id="maincontent" role="main"><br><br><br><div class="row"><div class="col-12 mx-auto"><h3 class="align_header">The resource could not be found.</h3></div></div></div><footer><div class="container"><div class="row"><div class="col-lg-8 col-md-10 mx-auto"><p class="copyright">Copyright &copy; 2020 Patrick Demian. This page's source code is available at <a rel="noopener noreferrer" href="https://github.com/pdemian/">github.com/pdemian/</a></p></div></div></div></footer></div><script defer="defer" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script><script defer="defer" src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/js/bootstrap.bundle.min.js"></script><script defer="defer" src="bundle.min.js"></script></body></html> <!DOCTYPE html><html lang="en" dir="ltr"><head><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="description" content="Not Found"><meta name="keywords" content="Human2Regex, Human, Regex, Natural, Language, Natural Language"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Error 404 - Not Found</title><link href="bundle.min.css" rel="stylesheet" type="text/css"><meta name="theme-color" content="#212529"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="default"><link rel="icon" type="image/x-icon" href="favicon.ico"></head><body><a class="skip skip-top" href="#maincontent">Skip to main content</a><div class="wrapper"><nav class="navbar navbar-expand-lg navbar-light fixed-top" id="mainNav"><div class="container"><a class="navbar-brand" href="index.html"><img src="favicon.png" width="30" height="30" class="d-inline-block align-top" alt="logo">&nbsp;Human2Regex</a></div></nav><header class="masthead"><div class="overlay"></div><div class="container"><div class="row"><div class="col-lg-12 col-md-12 mx-auto"><div class="site-heading"><h1>404</h1><span class="subheading">Not Found</span></div></div></div></div></header><div class="container" id="maincontent" role="main"><br><br><br><div class="row"><div class="col-12 mx-auto"><h3 class="align_header">The resource could not be found.</h3></div></div></div><footer><div class="container"><div class="row"><div class="col-lg-8 col-md-10 mx-auto"><p class="copyright">Copyright &copy; 2020 Patrick Demian. This page's source code is available at <a rel="noopener noreferrer" href="https://github.com/pdemian/">github.com/pdemian/</a></p></div></div></div></footer></div><script defer="defer" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script><script defer="defer" src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/js/bootstrap.bundle.min.js"></script><script defer="defer" src="bundle.min.js"></script></body></html>

View File

@ -1 +0,0 @@
<!DOCTYPE html><html lang="en" dir="ltr"><head><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="description" content="Not Implemented"><meta name="keywords" content="Human2Regex, Human, Regex, Natural, Language, Natural Language"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Error 501 - Not Implemented</title><link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet" type="text/css"><link href="bundle.min.css" rel="stylesheet" type="text/css"><meta name="theme-color" content="#212529"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="default"><link rel="icon" type="image/x-icon" href="favicon.ico"></head><body><a class="skip skip-top" href="#maincontent">Skip to main content</a><div class="wrapper"><nav class="navbar navbar-expand-lg navbar-light fixed-top" id="mainNav"><div class="container"><a class="navbar-brand" href="index.html"><img src="favicon.png" width="30" height="30" class="d-inline-block align-top" alt="logo">&nbsp;Human2Regex</a></div></nav><header class="masthead"><div class="overlay"></div><div class="container"><div class="row"><div class="col-lg-12 col-md-12 mx-auto"><div class="site-heading"><h1>501</h1><span class="subheading">Not Implemented</span></div></div></div></div></header><div class="container" id="maincontent" role="main"><br><br><br><div class="row"><div class="col-12 mx-auto"><h3 class="align_header">Unrecognized request method.</h3></div></div></div><footer><div class="container"><div class="row"><div class="col-lg-8 col-md-10 mx-auto"><p class="copyright">Copyright &copy; 2020 Patrick Demian. This page's source code is available at <a rel="noopener noreferrer" href="https://github.com/pdemian/">github.com/pdemian/</a></p></div></div></div></footer></div><script defer="defer" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script><script defer="defer" src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/js/bootstrap.bundle.min.js"></script><script defer="defer" src="bundle.min.js"></script></body></html>

7
docs/bundle.min.css vendored

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
<!DOCTYPE html><html lang="en" dir="ltr"><head><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="description" content="Create regular expressions with natural, human language"><meta name="keywords" content="Human2Regex, Human, Regex, Natural, Language, Natural Language"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Human2Regex</title><link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet" type="text/css"><link href="bundle.min.css" rel="stylesheet" type="text/css"><meta name="theme-color" content="#212529"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="default"><link rel="icon" type="image/x-icon" href="favicon.ico"></head><body><a class="skip skip-top" href="#maincontent">Skip to main content</a><div class="wrapper"><nav class="navbar navbar-expand-lg navbar-light fixed-top" id="mainNav"><div class="container"><a class="navbar-brand" href="index.html"><img src="favicon.png" width="30" height="30" class="d-inline-block align-top" alt="logo">&nbsp;Human2Regex</a></div></nav><div class="container" id="maincontent" role="main"><br><br><br><div class="row"><div class="col-12 mx-auto"><h3 class="align_header">Stuff here</h3></div></div></div><footer><div class="container"><div class="row"><div class="col-lg-8 col-md-10 mx-auto"><p class="copyright">Copyright &copy; 2020 Patrick Demian. This page's source code is available at <a rel="noopener noreferrer" href="https://github.com/pdemian/">github.com/pdemian/</a></p></div></div></div></footer></div><script defer="defer" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script><script defer="defer" src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/js/bootstrap.bundle.min.js"></script><script defer="defer" src="bundle.min.js"></script></body></html> <!DOCTYPE html><html lang="en" dir="ltr"><head><meta name="viewport" content="width=device-width,initial-scale=1,shrink-to-fit=no"><meta name="description" content="Create regular expressions with natural, human language"><meta name="keywords" content="Human2Regex, Human, Regex, Natural, Language, Natural Language"><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title>Human2Regex</title><link href="bundle.min.css" rel="stylesheet" type="text/css"><meta name="theme-color" content="#212529"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="default"><link rel="icon" type="image/x-icon" href="favicon.ico"></head><body><a class="skip skip-top" href="#maincontent">Skip to main content</a><div class="wrapper"><nav class="navbar navbar-expand-lg navbar-light fixed-top" id="mainNav"><div class="container"><a class="navbar-brand" href="index.html"><img src="favicon.png" width="30" height="30" class="d-inline-block align-top" alt="logo">&nbsp;Human2Regex</a></div></nav><div class="container" id="maincontent" role="main"><br><br><br><div class="row"><div class="col-12 mx-auto"><h3 class="align_header">Stuff here</h3></div></div></div><footer><div class="container"><div class="row"><div class="col-lg-8 col-md-10 mx-auto"><p class="copyright">Copyright &copy; 2020 Patrick Demian. This page's source code is available at <a rel="noopener noreferrer" href="https://github.com/pdemian/">github.com/pdemian/</a></p></div></div></div></footer></div><script defer="defer" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script><script defer="defer" src="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/js/bootstrap.bundle.min.js"></script><script defer="defer" src="bundle.min.js"></script></body></html>

View File

@ -1,6 +1,6 @@
{ {
"name": "human2regex", "name": "human2regex",
"version": "0.0.1", "version": "0.1.0",
"description": "Humanized Regular Expressions", "description": "Humanized Regular Expressions",
"main": "bundle.min.js", "main": "bundle.min.js",
"devDependencies": { "devDependencies": {
@ -25,8 +25,7 @@
"webpack-cli": "^3.3.12" "webpack-cli": "^3.3.12"
}, },
"scripts": { "scripts": {
"build": "webpack --config webpack.full.config.js", "build": "webpack --config webpack.config.js",
"partial": "webpack --config webpack.partial.config.js",
"test": "echo \"Error: no test specified\" && exit 1" "test": "echo \"Error: no test specified\" && exit 1"
}, },
"keywords": [ "keywords": [

View File

@ -1,9 +0,0 @@
{
"page": {
"title": "Error 400 - Bad Request",
"description": "Bad Request"
},
"error-code": "400",
"error-subheading": "Bad Request",
"error-string": "The server cannot process the request."
}

View File

@ -1,9 +0,0 @@
{
"page": {
"title": "Error 401 - Unauthorized",
"description": "Unauthorized"
},
"error-code": "401",
"error-subheading": "Unauthorized",
"error-string": "Authentication required."
}

View File

@ -1,9 +0,0 @@
{
"page": {
"title": "Error 501 - Not Implemented",
"description": "Not Implemented"
},
"error-code": "501",
"error-subheading": "Not Implemented",
"error-string": "Unrecognized request method."
}

View File

@ -1,7 +1,7 @@
/*! Copyright (c) 2020 Patrick Demian; Licensed under MIT */ /*! Copyright (c) 2020 Patrick Demian; Licensed under MIT */
"use strict"; "use strict";
import "./style.css"; import "./webpage/style.css";
import { Human2RegexLexer, Human2RegexLexerOptions } from "./lexer"; import { Human2RegexLexer, Human2RegexLexerOptions } from "./lexer";
import { Human2RegexParser, Human2RegexParserOptions } from "./parser"; import { Human2RegexParser, Human2RegexParserOptions } from "./parser";

View File

@ -1,272 +0,0 @@
/*!
* Start Bootstrap - Clean Blog v5.0.8 (https://startbootstrap.com/template-overviews/clean-blog)
* Copyright 2013-2019 Start Bootstrap
* Licensed under MIT (https://github.com/BlackrockDigital/startbootstrap-clean-blog/blob/master/LICENSE)
*/
body {
font-size: 20px;
color: #212529;
}
p {
line-height: 1.5;
}
p a {
text-decoration: underline;
}
@media (max-width: 575px) {
.form-inline .form-control {
display: inline-block;
width: auto;
vertical-align: middle;
}
.form-inline label {
display: -ms-flexbox;
display: flex;
-ms-flex-align: center;
align-items: center;
-ms-flex-pack: center;
justify-content: center;
margin-bottom: 0;
}
.form-inline .form-group {
display: -ms-flexbox;
display: flex;
-ms-flex: 0 0 auto;
flex: 0 0 auto;
-ms-flex-flow: row wrap;
flex-flow: row wrap;
-ms-flex-align: center;
align-items: center;
margin-bottom: 0;
}
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-weight: 800;
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
}
::-moz-selection {
color: #fff;
background: #0085a1;
text-shadow: none;
}
::selection {
color: #fff;
background: #0085a1;
text-shadow: none;
}
#mainNav {
position: absolute;
border-bottom: 1px solid transparent;
background-color: #232323;
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
}
#mainNav .navbar-brand {
font-weight: 800;
color: #fff;
}
#mainNav .navbar-toggler {
font-size: 16px;
font-weight: 800;
padding: 13px;
text-transform: uppercase;
color: #343a40;
}
#mainNav .navbar-nav > li.nav-item > a {
font-size: 12px;
font-weight: 800;
letter-spacing: 1px;
text-transform: uppercase;
}
@media only screen and (max-width: 991px) {
#mainNav {
position: fixed;
}
}
@media only screen and (min-width: 992px) {
#mainNav .navbar-brand {
padding: 10px 20px;
color: #fff;
}
#mainNav .navbar-brand:focus, #mainNav .navbar-brand:hover {
color: rgba(255, 255, 255, 0.8);
}
#mainNav .navbar-nav > li.nav-item > a {
padding: 10px 20px;
color: #fff;
}
#mainNav .navbar-nav > li.nav-item > a:focus, #mainNav .navbar-nav > li.nav-item > a:hover {
color: rgba(255, 255, 255, 0.8);
}
}
header.masthead {
background: no-repeat center center;
background-color: #868e96;
background-attachment: scroll;
position: relative;
background-size: cover;
}
header.masthead .overlay {
position: absolute;
top: 0;
left: 0;
height: 100%;
width: 100%;
background-color: #212529;
opacity: 0.5;
}
header.masthead .site-heading {
padding: 60px 0 20px;
color: #fff;
}
@media only screen and (min-width: 768px) {
header.masthead .site-heading {
padding: 60px 0 20px;
}
}
header.masthead .site-heading {
text-align: center;
}
header.masthead .site-heading h1 {
font-size: 50px;
margin-top: 0;
}
header.masthead .site-heading .subheading {
font-size: 24px;
font-weight: 300;
line-height: 1.1;
display: block;
margin: 10px 0 0;
font-family: 'Open Sans', 'Helvetica Neue', Helvetica, Arial, sans-serif;
}
@media only screen and (min-width: 768px) {
header.masthead .site-heading h1 {
font-size: 60px;
}
}
.wrapper {
display: flex;
flex-direction: column;
height: 100vh;
}
#maincontent {
flex: 1 0 auto;
}
header {
flex-shrink: 0;
}
footer {
flex-shrink: 0;
width: 100%;
right: 0;
left: 0;
padding: 20px 0 20px;
background-color: #232323;
color: #fff;
}
.copyright {
font-size: 14px;
margin-bottom: 0;
text-align: center;
}
.btn {
font-family: "Open Sans", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.btn-primary {
background-color: #00748c;
border-color: #00748c;
}
.btn-primary:active, .btn-primary:focus, .btn-primary:hover {
color: #fff;
background-color: #004b5c !important;
border-color: #004b5c !important;
}
.btn-lg {
font-size: 16px;
padding: 25px 35px;
}
/*! Copyright (c) 2020 Patrick Demian; Licensed under MIT */
.align_header {
text-align: center;
margin-bottom: 20px;
}
/* Content skipping */
.skip-top {
top: 10px;
margin: 10px 40% !important;
}
.skip {
background: #335075 !important;
color: #fff !important;
position: absolute !important;
clip: rect(1px, 1px, 1px, 1px);
float: left;
margin-left: 20%;
}
.skip:active,
.skip:focus {
font-weight: 700;
box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
clip: auto !important;
display: block;
text-decoration: underline;
padding: 5px;
text-align: center;
top: auto;
min-width: 20%;
text-align: center;
z-index: 10000;
}
.mid-margin {
margin-left: 20px;
margin-right: 20px;
}
/* accessibility */
a:hover {
color: #208bff;
}
.navbar-light .navbar-nav .nav-link {
color: rgba(0, 0, 0, 0.54);
}

View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

View File

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

@ -10,9 +10,6 @@
<title>{{page.title}}</title> <title>{{page.title}}</title>
<!-- Bootstrap core CSS -->
<link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" rel="stylesheet" type="text/css">
<!-- Our own CSS --> <!-- Our own CSS -->
<link href="bundle.min.css" rel="stylesheet" type="text/css"> <link href="bundle.min.css" rel="stylesheet" type="text/css">

9302
src/webpage/style.css Normal file

File diff suppressed because it is too large Load Diff

View File

@ -35,35 +35,23 @@ function build_mustache() {
compress_html = (input) => config.prod ? minify(input, config.compression_config.html) : input; compress_html = (input) => config.prod ? minify(input, config.compression_config.html) : input;
// get views // get views
const main_files = glob.sync(path.join(config.src, "main", "*.json")); const files = glob.sync(path.join(config.src, "webpage", "*.json"));
const error_files = glob.sync(path.join(config.src, "error", "*.json"));
// get partials // get partials
const partials = { const partials = {
header: readFileSync(path.join(config.src, "/header.mustache"), "utf8"), header: readFileSync(path.join(config.src, "webpage", "header.mustache"), "utf8"),
footer: readFileSync(path.join(config.src, "/footer.mustache"), "utf8") footer: readFileSync(path.join(config.src, "webpage", "footer.mustache"), "utf8")
}; };
// build main mustache files // build main mustache files
for(const item of main_files) { for(const item of files) {
const filename = path.basename(item, ".json"); const filename = path.basename(item, ".json");
const view = read_json_file(item); const view = read_json_file(item);
const to = path.join(config.dst, filename + ".html"); const to = path.join(config.dst, filename + ".html");
const template = readFileSync(path.join(config.src, filename + ".mustache"), "utf8"); const template = readFileSync(path.join(config.src, "webpage", filename + ".mustache"), "utf8");
writeFileSync(to, compress_html(render(template, view, partials))); writeFileSync(to, compress_html(render(template, view, partials)));
} }
const error_template = readFileSync(path.join(config.src, "/error.mustache"), "utf8");
// build error mustache files
for(const item of error_files) {
const filename = path.basename(item, ".json");
const view = read_json_file(item);
const to = path.join(config.dst, filename + ".html");
writeFileSync(to, compress_html(render(error_template, view, partials)));
}
} }
module.exports = { module.exports = {
@ -89,7 +77,7 @@ module.exports = {
plugins: [ plugins: [
new CopyPlugin({ new CopyPlugin({
patterns: [ patterns: [
{ from: config.src + "!(*.css|*.mustache|*.ts)", to: "", flatten: true} { from: config.src + "webpage/" + "!(*.css|*.mustache|*.json)", to: "", flatten: true}
] ]
}), }),
new MiniCssExtractPlugin({ filename: "bundle.min.css" }), new MiniCssExtractPlugin({ filename: "bundle.min.css" }),

View File

@ -1,32 +0,0 @@
/* eslint-disable @typescript-eslint/no-var-requires */
/* eslint-disable no-undef */
const path = require("path");
const MiniCssExtractPlugin = require("mini-css-extract-plugin");
module.exports = {
mode: "development",
entry: path.resolve("./src/", "script.ts"),
module: {
rules: [
{
test: /\.ts$/,
use: "ts-loader",
exclude: /node_modules/
},
{
test: /\.css$/,
use: [ MiniCssExtractPlugin.loader, "css-loader" ]
}
]
},
plugins: [
new MiniCssExtractPlugin({ filename: "bundle.min.css" }),
],
resolve: {
extensions: [ ".ts", ".js" ]
},
output: {
filename: "bundle.min.js",
path: path.resolve("docs")
}
};