Compare commits
3 commits
1543603447
...
0b91e83df4
Author | SHA1 | Date | |
---|---|---|---|
0b91e83df4 | |||
7d99223936 | |||
5bb5999cde |
7 changed files with 124 additions and 63 deletions
|
@ -343,6 +343,13 @@ export async function Theme()
|
||||||
{
|
{
|
||||||
importer: require("node-sass-tilde-importer"),
|
importer: require("node-sass-tilde-importer"),
|
||||||
outputStyle: settings.Debug ? "expanded" : "compressed"
|
outputStyle: settings.Debug ? "expanded" : "compressed"
|
||||||
|
}
|
||||||
|
).on("error",
|
||||||
|
(error) =>
|
||||||
|
{
|
||||||
|
log.error(
|
||||||
|
`${error.relativePath}:${error.line}:${error.column}\n` +
|
||||||
|
`${error.messageFormatted}`);
|
||||||
})
|
})
|
||||||
).pipe(
|
).pipe(
|
||||||
rename(
|
rename(
|
||||||
|
|
54
package-lock.json
generated
54
package-lock.json
generated
|
@ -89,9 +89,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@types/fs-extra": {
|
"@types/fs-extra": {
|
||||||
"version": "8.0.0",
|
"version": "8.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.0.1.tgz",
|
||||||
"integrity": "sha512-bCtL5v9zdbQW86yexOlXWTEGvLNqWxMFyi7gQA7Gcthbezr2cPSOb8SkESVKA937QD5cIwOFLDFt0MQoXOEr9Q==",
|
"integrity": "sha512-J00cVDALmi/hJOYsunyT52Hva5TnJeKP5yd1r+mH/ZU0mbYZflR0Z5kw5kITtKTRYMhm1JMClOFYdHnQszEvqw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@types/node": "*"
|
"@types/node": "*"
|
||||||
|
@ -223,9 +223,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@types/node": {
|
"@types/node": {
|
||||||
"version": "12.7.11",
|
"version": "12.12.11",
|
||||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.11.tgz",
|
"resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.11.tgz",
|
||||||
"integrity": "sha512-Otxmr2rrZLKRYIybtdG/sgeO+tHY20GxeDjcGmUnmmlCWyEnv2a2x1ZXBo3BTec4OiTXMQCiazB8NMBf0iRlFw==",
|
"integrity": "sha512-O+x6uIpa6oMNTkPuHDa9MhMMehlxLAd5QcOvKRjAFsBVpeFWTOPnXbDvILvFgFFZfQ1xh1EZi1FbXxUix+zpsQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@types/node-sass": {
|
"@types/node-sass": {
|
||||||
|
@ -4784,9 +4784,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node-sass": {
|
"node-sass": {
|
||||||
"version": "4.12.0",
|
"version": "4.13.0",
|
||||||
"resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.12.0.tgz",
|
"resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.13.0.tgz",
|
||||||
"integrity": "sha512-A1Iv4oN+Iel6EPv77/HddXErL2a+gZ4uBeZUy+a8O35CFYTXhgA8MgLCWBtwpGZdCvTvQ9d+bQxX/QC36GDPpQ==",
|
"integrity": "sha512-W1XBrvoJ1dy7VsvTAS5q1V45lREbTlZQqFbiHb3R3OTTCma0XBtuG6xZ6Z4506nR4lmHPTqVRwxT6KgtWC97CA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"async-foreach": "^0.1.3",
|
"async-foreach": "^0.1.3",
|
||||||
|
@ -4796,7 +4796,7 @@
|
||||||
"get-stdin": "^4.0.1",
|
"get-stdin": "^4.0.1",
|
||||||
"glob": "^7.0.3",
|
"glob": "^7.0.3",
|
||||||
"in-publish": "^2.0.0",
|
"in-publish": "^2.0.0",
|
||||||
"lodash": "^4.17.11",
|
"lodash": "^4.17.15",
|
||||||
"meow": "^3.7.0",
|
"meow": "^3.7.0",
|
||||||
"mkdirp": "^0.5.1",
|
"mkdirp": "^0.5.1",
|
||||||
"nan": "^2.13.2",
|
"nan": "^2.13.2",
|
||||||
|
@ -5320,9 +5320,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"popper.js": {
|
"popper.js": {
|
||||||
"version": "1.15.0",
|
"version": "1.16.0",
|
||||||
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.15.0.tgz",
|
"resolved": "https://registry.npmjs.org/popper.js/-/popper.js-1.16.0.tgz",
|
||||||
"integrity": "sha512-w010cY1oCUmI+9KwwlWki+r5jxKfTFDVoadl7MSrIujHU5MJ5OR6HTDj6Xo8aoR/QsA56x8jKjA59qGH4ELtrA==",
|
"integrity": "sha512-+G+EkOPoE5S/zChTpmBSSDYmhXJ5PsW8eMhH8cP/CQHMFPBG/kC9Y5IIw6qNYgdJ+/COf0ddY2li28iHaZRSjw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"portscanner": {
|
"portscanner": {
|
||||||
|
@ -6905,9 +6905,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ts-node": {
|
"ts-node": {
|
||||||
"version": "8.4.1",
|
"version": "8.5.2",
|
||||||
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.5.2.tgz",
|
||||||
"integrity": "sha512-5LpRN+mTiCs7lI5EtbXmF/HfMeCjzt7DH9CZwtkr6SywStrNQC723wG+aOWFiLNn7zT3kD/RnFqi3ZUfr4l5Qw==",
|
"integrity": "sha512-W1DK/a6BGoV/D4x/SXXm6TSQx6q3blECUzd5TN+j56YEMX3yPVMpHsICLedUw3DvGF3aTQ8hfdR9AKMaHjIi+A==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"arg": "^4.1.0",
|
"arg": "^4.1.0",
|
||||||
|
@ -6950,9 +6950,9 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"tslint": {
|
"tslint": {
|
||||||
"version": "5.20.0",
|
"version": "5.20.1",
|
||||||
"resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.0.tgz",
|
"resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz",
|
||||||
"integrity": "sha512-2vqIvkMHbnx8acMogAERQ/IuINOq6DFqgF8/VDvhEkBqQh/x6SP0Y+OHnKth9/ZcHQSroOZwUQSN18v8KKF0/g==",
|
"integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@babel/code-frame": "^7.0.0",
|
"@babel/code-frame": "^7.0.0",
|
||||||
|
@ -7013,20 +7013,20 @@
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"typescript": {
|
"typescript": {
|
||||||
"version": "3.6.3",
|
"version": "3.7.2",
|
||||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.6.3.tgz",
|
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.2.tgz",
|
||||||
"integrity": "sha512-N7bceJL1CtRQ2RiG0AQME13ksR7DiuQh/QehubYcghzv20tnh+MQnQIuJddTmsbqYj+dztchykemz0zFzlvdQw==",
|
"integrity": "sha512-ml7V7JfiN2Xwvcer+XAf2csGO1bPBdRbFCkYBczNZggrBZ9c7G3riSUeJmqEU5uOtXNPMhE3n+R4FA/3YOAWOQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"typescript-tslint-plugin": {
|
"typescript-tslint-plugin": {
|
||||||
"version": "0.5.4",
|
"version": "0.5.5",
|
||||||
"resolved": "https://registry.npmjs.org/typescript-tslint-plugin/-/typescript-tslint-plugin-0.5.4.tgz",
|
"resolved": "https://registry.npmjs.org/typescript-tslint-plugin/-/typescript-tslint-plugin-0.5.5.tgz",
|
||||||
"integrity": "sha512-CQEfGC+p0SoBARI4N2LrGsWJsp4/OE+uKZ68xsWYKHWqMFq4DFQHqOVlK0deEricSN01NmDTqjap63Pw/DHieg==",
|
"integrity": "sha512-tR5igNQP+6FhxaPJYRlUBVsEl0n5cSuXRbg7L1y80mL4B1jUHb8uiIcbQBJ9zWyypJEdFYFUccpXxvMwZR8+AA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"minimatch": "^3.0.4",
|
"minimatch": "^3.0.4",
|
||||||
"mock-require": "^3.0.2",
|
"mock-require": "^3.0.3",
|
||||||
"vscode-languageserver": "^5.1.0"
|
"vscode-languageserver": "^5.2.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"ua-parser-js": {
|
"ua-parser-js": {
|
||||||
|
|
14
package.json
14
package.json
|
@ -23,7 +23,7 @@
|
||||||
"@types/browser-sync": "^2.26.1",
|
"@types/browser-sync": "^2.26.1",
|
||||||
"@types/browserify": "^12.0.36",
|
"@types/browserify": "^12.0.36",
|
||||||
"@types/fancy-log": "^1.3.1",
|
"@types/fancy-log": "^1.3.1",
|
||||||
"@types/fs-extra": "^8.0.0",
|
"@types/fs-extra": "^8.0.1",
|
||||||
"@types/gulp": "^4.0.6",
|
"@types/gulp": "^4.0.6",
|
||||||
"@types/gulp-if": "0.0.33",
|
"@types/gulp-if": "0.0.33",
|
||||||
"@types/gulp-rename": "0.0.33",
|
"@types/gulp-rename": "0.0.33",
|
||||||
|
@ -32,7 +32,7 @@
|
||||||
"@types/jquery": "^3.3.31",
|
"@types/jquery": "^3.3.31",
|
||||||
"@types/merge-stream": "^1.1.2",
|
"@types/merge-stream": "^1.1.2",
|
||||||
"@types/minimist": "^1.2.0",
|
"@types/minimist": "^1.2.0",
|
||||||
"@types/node": "^12.7.11",
|
"@types/node": "^12.12.11",
|
||||||
"@types/promise-queue": "^2.2.0",
|
"@types/promise-queue": "^2.2.0",
|
||||||
"@types/vinyl-buffer": "^1.0.0",
|
"@types/vinyl-buffer": "^1.0.0",
|
||||||
"@types/vinyl-source-stream": "0.0.30",
|
"@types/vinyl-source-stream": "0.0.30",
|
||||||
|
@ -52,14 +52,14 @@
|
||||||
"merge-stream": "^2.0.0",
|
"merge-stream": "^2.0.0",
|
||||||
"minimist": "^1.2.0",
|
"minimist": "^1.2.0",
|
||||||
"node-sass-tilde-importer": "^1.0.2",
|
"node-sass-tilde-importer": "^1.0.2",
|
||||||
"popper.js": "^1.15.0",
|
"popper.js": "^1.16.0",
|
||||||
"promise-queue": "^2.2.5",
|
"promise-queue": "^2.2.5",
|
||||||
"string-argv": "^0.3.1",
|
"string-argv": "^0.3.1",
|
||||||
"ts-node": "^8.4.1",
|
"ts-node": "^8.5.2",
|
||||||
"tsify": "^4.0.1",
|
"tsify": "^4.0.1",
|
||||||
"tslint": "^5.20.0",
|
"tslint": "^5.20.1",
|
||||||
"typescript": "^3.6.3",
|
"typescript": "^3.7.2",
|
||||||
"typescript-tslint-plugin": "^0.5.4",
|
"typescript-tslint-plugin": "^0.5.5",
|
||||||
"upath": "^1.2.0",
|
"upath": "^1.2.0",
|
||||||
"vinyl-buffer": "^1.0.1",
|
"vinyl-buffer": "^1.0.1",
|
||||||
"vinyl-source-stream": "^2.0.0",
|
"vinyl-source-stream": "^2.0.0",
|
||||||
|
|
|
@ -5,42 +5,56 @@
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||||
<% base_tag %>
|
<% base_tag %>
|
||||||
$MetaTags()
|
$MetaTags(false)
|
||||||
|
<title><% if $Title %>$Title ● <% end_if %>$SiteConfig.Title</title>
|
||||||
<% require themedCSS("mantra") %>
|
<% require themedCSS("mantra") %>
|
||||||
<% require themedJavascript("main") %>
|
<% require themedJavascript("main") %>
|
||||||
</head>
|
</head>
|
||||||
<body class="d-flex flex-column h-100">
|
<body class="d-flex flex-column h-100">
|
||||||
<% if $Menu(1) %>
|
<nav class="navbar navbar-expand-md fixed-top navbar-dark bg-dark">
|
||||||
<div class="col-1">
|
<a class="navbar-brand" href="$AbsoluteBaseURL">
|
||||||
<nav>
|
<div class="navbar-title">$SiteConfig.Title</div>
|
||||||
<div class="active">
|
<div class="navbar-tagline">$SiteConfig.Tagline</div>
|
||||||
<a>
|
</a>
|
||||||
$Title
|
<% if $Menu(1) %>
|
||||||
</a>
|
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#mainNav" aria-controls="mainNav" aria-expanded="false" aria-label="Toggle navigation">
|
||||||
<ul class="nav bd-sidenav">
|
<span class="navbar-toggler-icon"></span>
|
||||||
<% loop $Menu(1) %>
|
</button>
|
||||||
<li class="$LinkingMode">
|
<div class="collapse navbar-collapse" id="mainNav">
|
||||||
<a href="$Link">
|
<ul class="navbar-nav">
|
||||||
|
<% loop $Menu(1) %>
|
||||||
|
<% if $Children %>
|
||||||
|
<li class="nav-item dropdown">
|
||||||
|
<a class="nav-link dropdown-toggle<% if $isCurrent || $isSection %> active <% end_if %>" href="#" id="mainNav_$URLSegment" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
|
||||||
$MenuTitle
|
$MenuTitle
|
||||||
</a>
|
</a>
|
||||||
|
<div class="dropdown-menu" aria-labelledby="mainNav_$URLSegment">
|
||||||
|
<a class="dropdown-item<% if $isCurrent %> active <% end_if %>" href="$Link">
|
||||||
|
$MenuTitle<% if $isCurrent %><span class="sr-only"> (current)</span><% end_if %>
|
||||||
|
</a>
|
||||||
|
<div class="dropdown-divider"></div>
|
||||||
|
<% loop $Children %>
|
||||||
|
<a class="dropdown-item<% if $isCurrent %> active <% end_if %>" href="$Link">
|
||||||
|
$MenuTitle
|
||||||
|
</a>
|
||||||
|
<% end_loop %>
|
||||||
|
</div>
|
||||||
</li>
|
</li>
|
||||||
<% end_loop %>
|
<% else %>
|
||||||
</ul>
|
<li class="nav-item<% if $isCurrent %> active<% end_if %>">
|
||||||
</div>
|
<a class="nav-link" href="$Link">
|
||||||
</nav>
|
$MenuTitle<% if $isCurrent %><span class="sr-only"> (current)</span><% end_if %>
|
||||||
</div>
|
</a>
|
||||||
<% end_if %>
|
</li>
|
||||||
<main role="main" class="col-11 flex-shrink-0">
|
<% end_if %>
|
||||||
<div class="container">
|
<% end_loop %>
|
||||||
<% loop $Menu(1) %>
|
</ul>
|
||||||
<li><a class="$LinkingMode" href="$Link" title="Go to the $Title page">$MenuTitle</a></li>
|
</div>
|
||||||
<% end_loop %>
|
<% end_if %>
|
||||||
<h1 class="display-4">
|
</nav>
|
||||||
$MenuTitle
|
<main role="main" class="col-11 flex-shrink-0" style="padding-top: 4.5rem">
|
||||||
</h1>
|
$Content
|
||||||
$Content
|
$Form
|
||||||
$Form
|
|
||||||
</div>
|
|
||||||
</main>
|
</main>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
37
src/Theme/_nav.scss
Normal file
37
src/Theme/_nav.scss
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
.navbar {
|
||||||
|
.navbar-nav {
|
||||||
|
.nav-link {
|
||||||
|
position: relative;
|
||||||
|
|
||||||
|
&::before {
|
||||||
|
content: ' ';
|
||||||
|
position: absolute;
|
||||||
|
top: 0;
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
right: 0;
|
||||||
|
margin-top: -($navbar-padding-x / 2);
|
||||||
|
margin-bottom: -($navbar-padding-x / 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.active > .nav-link, .nav-link.active {
|
||||||
|
&::before {
|
||||||
|
background: rgba(255, 255, 255, 0.1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-brand {
|
||||||
|
.navbar-title {
|
||||||
|
@extend .d-inline-block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.navbar-tagline {
|
||||||
|
@extend .text-muted;
|
||||||
|
@extend .d-none;
|
||||||
|
@extend .d-lg-inline-block;
|
||||||
|
font-size: 0.5em;
|
||||||
|
}
|
||||||
|
}
|
1
src/Theme/_variables.scss
Normal file
1
src/Theme/_variables.scss
Normal file
|
@ -0,0 +1 @@
|
||||||
|
$tagline-font-size: $small-font-size / 2;
|
|
@ -1 +1,3 @@
|
||||||
@import "~bootstrap/scss/bootstrap";
|
@import "~bootstrap/scss/bootstrap";
|
||||||
|
@import "variables";
|
||||||
|
@import "nav";
|
||||||
|
|
Loading…
Reference in a new issue