mirror of
https://github.com/thomasjsn/hugo-theme-hello-friend.git
synced 2024-11-25 01:05:07 +01:00
Add submenu
This commit is contained in:
parent
08f0f2fb0a
commit
2f7bdc728c
@ -65,6 +65,8 @@ paginate = 5
|
|||||||
contentTypeName = "posts"
|
contentTypeName = "posts"
|
||||||
# "light" or "dark"
|
# "light" or "dark"
|
||||||
defaultTheme = "dark"
|
defaultTheme = "dark"
|
||||||
|
# if you set this to 0, only submenu trigger will be visible
|
||||||
|
showMenuItems = 2
|
||||||
|
|
||||||
[languages]
|
[languages]
|
||||||
[languages.en]
|
[languages.en]
|
||||||
@ -72,6 +74,7 @@ paginate = 5
|
|||||||
subtitle = "A simple theme for Hugo"
|
subtitle = "A simple theme for Hugo"
|
||||||
keywords = ""
|
keywords = ""
|
||||||
copyright = ""
|
copyright = ""
|
||||||
|
menuMore = "Show more"
|
||||||
writtenBy = "Written by"
|
writtenBy = "Written by"
|
||||||
readMore = "Read more"
|
readMore = "Read more"
|
||||||
readOtherPosts = "Read other posts"
|
readOtherPosts = "Read other posts"
|
||||||
@ -97,6 +100,8 @@ paginate = 5
|
|||||||
|
|
||||||
to `config.toml` file in your Hugo root directory and change params fields. In case you need, here's [a YAML version](https://gist.github.com/panr/8f9b363e358aaa33f6d353c77feee959).
|
to `config.toml` file in your Hugo root directory and change params fields. In case you need, here's [a YAML version](https://gist.github.com/panr/8f9b363e358aaa33f6d353c77feee959).
|
||||||
|
|
||||||
|
**NOTE:** Please keep in mind that currently main menu doesn't support nesting.
|
||||||
|
|
||||||
## How to run your site
|
## How to run your site
|
||||||
|
|
||||||
From your Hugo root directory run:
|
From your Hugo root directory run:
|
||||||
|
@ -1,7 +1,38 @@
|
|||||||
<nav class="menu">
|
<nav class="menu">
|
||||||
<ul class="menu__inner">
|
<ul class="menu__inner menu__inner--desktop">
|
||||||
{{ range $.Site.Menus.main }}
|
{{ if or $.Site.Params.showMenuItems (eq $.Site.Params.showMenuItems 0) }}
|
||||||
|
{{ range first $.Site.Params.showMenuItems $.Site.Menus.main }}
|
||||||
|
{{ if not .HasChildren }}
|
||||||
<li><a href="{{ .URL }}">{{ .Name }}</a></li>
|
<li><a href="{{ .URL }}">{{ .Name }}</a></li>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
<ul class="menu__sub-inner">
|
||||||
|
{{ if gt (len $.Site.Menus.main) $.Site.Params.showMenuItems }}
|
||||||
|
<li class="menu__sub-inner-more-trigger">{{ $.Site.Params.MenuMore }} ▾</li>
|
||||||
|
|
||||||
|
<ul class="menu__sub-inner-more hidden">
|
||||||
|
{{ range last (sub (len $.Site.Menus.main) $.Site.Params.showMenuItems) $.Site.Menus.main }}
|
||||||
|
{{ if not .HasChildren }}
|
||||||
|
<li><a href="{{ .URL }}">{{ .Name }}</a></li>
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
</ul>
|
||||||
|
{{ end }}
|
||||||
|
</ul>
|
||||||
|
{{ else }}
|
||||||
|
{{ range $.Site.Menus.main }}
|
||||||
|
{{ if not .HasChildren }}
|
||||||
|
<li><a href="{{ .URL }}">{{ .Name }}</a></li>
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<ul class="menu__inner menu__inner--mobile">
|
||||||
|
{{ range $.Site.Menus.main }}
|
||||||
|
{{ if not .HasChildren }}
|
||||||
|
<li><a href="{{ .URL }}">{{ .Name }}</a></li>
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
|
@ -37,6 +37,7 @@
|
|||||||
"postcss-cli": "^6.0.0",
|
"postcss-cli": "^6.0.0",
|
||||||
"postcss-import": "^11.1.0",
|
"postcss-import": "^11.1.0",
|
||||||
"postcss-loader": "^2.0.5",
|
"postcss-loader": "^2.0.5",
|
||||||
|
"postcss-mixins": "^6.2.1",
|
||||||
"postcss-nested": "^3.0.0",
|
"postcss-nested": "^3.0.0",
|
||||||
"postcss-preset-env": "^5.2.2",
|
"postcss-preset-env": "^5.2.2",
|
||||||
"postcss-reporter": "^5.0.0",
|
"postcss-reporter": "^5.0.0",
|
||||||
|
@ -4,11 +4,13 @@ const nested = require("postcss-nested");
|
|||||||
const postCSSPresetEnv = require("postcss-preset-env");
|
const postCSSPresetEnv = require("postcss-preset-env");
|
||||||
const browsers = require("browserslist");
|
const browsers = require("browserslist");
|
||||||
const cssnano = require("cssnano");
|
const cssnano = require("cssnano");
|
||||||
|
const mixins = require("postcss-mixins");
|
||||||
|
|
||||||
module.exports = () => ({
|
module.exports = () => ({
|
||||||
plugins: [
|
plugins: [
|
||||||
url,
|
url,
|
||||||
imports,
|
imports,
|
||||||
|
mixins,
|
||||||
nested,
|
nested,
|
||||||
postCSSPresetEnv({
|
postCSSPresetEnv({
|
||||||
stage: 1,
|
stage: 1,
|
||||||
|
@ -1,19 +1,34 @@
|
|||||||
.menu {
|
@define-mixin menu {
|
||||||
|
position: absolute;
|
||||||
background: #fafafa;
|
background: #fafafa;
|
||||||
border-right: 1px solid;
|
box-shadow: var(--shadow);
|
||||||
margin-right: 18px;
|
margin: 0;
|
||||||
|
padding: 10px;
|
||||||
|
list-style: none;
|
||||||
|
border-radius: 5px;
|
||||||
|
z-index: 99;
|
||||||
|
|
||||||
.dark-theme & {
|
.dark-theme & {
|
||||||
background: #252627;
|
background: #252627;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
.menu {
|
||||||
|
--shadow-color: rgba(0, 0, 0, .2);
|
||||||
|
--shadow: 0 8px 20px var(--shadow-color);
|
||||||
|
|
||||||
|
border-right: 1px solid;
|
||||||
|
margin-right: 18px;
|
||||||
|
padding-right: 24px;
|
||||||
|
|
||||||
@media (--phone) {
|
@media (--phone) {
|
||||||
position: absolute;
|
@mixin menu;
|
||||||
top: 50px;
|
top: 50px;
|
||||||
right: 0;
|
right: 0;
|
||||||
border: none;
|
}
|
||||||
margin: 0;
|
|
||||||
padding: 10px;
|
a {
|
||||||
|
text-decoration: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
&__inner {
|
&__inner {
|
||||||
@ -21,14 +36,31 @@
|
|||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: flex-end;
|
justify-content: flex-end;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
max-width: 100%;
|
|
||||||
margin: 0 auto;
|
|
||||||
padding: 0 15px;
|
|
||||||
font-size: 1rem;
|
|
||||||
list-style: none;
|
list-style: none;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
|
||||||
|
&--desktop {
|
||||||
|
@media (--phone) {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&--mobile {
|
||||||
|
display: none;
|
||||||
|
|
||||||
|
@media (--phone) {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
li {
|
li {
|
||||||
margin: 0 12px;
|
text-align: left;
|
||||||
|
flex: 0 0 auto;
|
||||||
|
|
||||||
|
&:not(:first-of-type) {
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (--phone) {
|
@media (--phone) {
|
||||||
@ -37,12 +69,43 @@
|
|||||||
padding: 0;
|
padding: 0;
|
||||||
|
|
||||||
li {
|
li {
|
||||||
margin: 0;
|
margin-left: 0 !important;
|
||||||
padding: 5px;
|
padding: 5px;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&__sub-inner {
|
||||||
|
position: relative;
|
||||||
|
list-style: none;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
|
||||||
|
&:not(:only-child) {
|
||||||
|
margin-left: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&-more {
|
||||||
|
@mixin menu;
|
||||||
|
top: 35px;
|
||||||
|
left: 0;
|
||||||
|
|
||||||
|
&-trigger {
|
||||||
|
color: var(--accent);
|
||||||
|
user-select: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
li {
|
||||||
|
.menu__inner & {
|
||||||
|
margin-left: 0;
|
||||||
|
padding: 5px;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
&-trigger {
|
&-trigger {
|
||||||
width: 24px;
|
width: 24px;
|
||||||
height: 24px;
|
height: 24px;
|
||||||
@ -50,18 +113,4 @@
|
|||||||
margin-left: 10px;
|
margin-left: 10px;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
a {
|
|
||||||
display: inline-block;
|
|
||||||
margin-right: 15px;
|
|
||||||
text-decoration: none;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:last-of-type {
|
|
||||||
margin-right: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -1,16 +1,51 @@
|
|||||||
// Mobile menu
|
const container = document.querySelector(".container");
|
||||||
|
|
||||||
const menuTrigger = document.querySelector(".menu-trigger");
|
|
||||||
const menu = document.querySelector(".menu");
|
const menu = document.querySelector(".menu");
|
||||||
|
const mobileMenuTrigger = document.querySelector(".menu-trigger");
|
||||||
|
const desktopMenu = document.querySelector(".menu__inner--desktop");
|
||||||
|
const desktopMenuTrigger = document.querySelector(".menu__sub-inner-more-trigger");
|
||||||
|
const menuMore = document.querySelector(".menu__sub-inner-more");
|
||||||
const mobileQuery = getComputedStyle(document.body).getPropertyValue("--phoneWidth");
|
const mobileQuery = getComputedStyle(document.body).getPropertyValue("--phoneWidth");
|
||||||
const isMobile = () => window.matchMedia(mobileQuery).matches;
|
const isMobile = () => window.matchMedia(mobileQuery).matches;
|
||||||
const isMobileMenu = () => {
|
const isMobileMenu = () => {
|
||||||
menuTrigger && menuTrigger.classList.toggle("hidden", !isMobile());
|
mobileMenuTrigger && mobileMenuTrigger.classList.toggle("hidden", !isMobile());
|
||||||
menu && menu.classList.toggle("hidden", isMobile());
|
menu && menu.classList.toggle("hidden", isMobile());
|
||||||
|
menuMore && menuMore.classList.toggle("hidden", !isMobile());
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Common
|
||||||
|
|
||||||
|
menu && menu.addEventListener("click", e => e.stopPropagation());
|
||||||
|
menuMore && menuMore.addEventListener("click", e => e.stopPropagation());
|
||||||
|
|
||||||
isMobileMenu();
|
isMobileMenu();
|
||||||
|
|
||||||
menuTrigger && menuTrigger.addEventListener("click", () => menu && menu.classList.toggle("hidden"));
|
document.body.addEventListener("click", () => {
|
||||||
|
if (!isMobile() && !menuMore.classList.contains("hidden")) {
|
||||||
|
menuMore.classList.add("hidden");
|
||||||
|
} else if (isMobile() && !menu.classList.contains("hidden")) {
|
||||||
|
menu.classList.add("hidden");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
window.addEventListener("resize", isMobileMenu);
|
window.addEventListener("resize", isMobileMenu);
|
||||||
|
|
||||||
|
// Mobile menu
|
||||||
|
|
||||||
|
mobileMenuTrigger &&
|
||||||
|
mobileMenuTrigger.addEventListener("click", e => {
|
||||||
|
e.stopPropagation();
|
||||||
|
menu && menu.classList.toggle("hidden");
|
||||||
|
});
|
||||||
|
|
||||||
|
// Desktop menu
|
||||||
|
|
||||||
|
desktopMenuTrigger &&
|
||||||
|
desktopMenuTrigger.addEventListener("click", e => {
|
||||||
|
e.stopPropagation();
|
||||||
|
menuMore && menuMore.classList.toggle("hidden");
|
||||||
|
|
||||||
|
if (menuMore.getBoundingClientRect().right > container.getBoundingClientRect().right) {
|
||||||
|
menuMore.style.left = "auto";
|
||||||
|
menuMore.style.right = 0;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
@ -1 +1,136 @@
|
|||||||
!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}([function(e,t,n){n(1),n(2),e.exports=n(3)},function(e,t,n){"use strict"},function(e,t,n){"use strict";var o=document.querySelector(".menu-trigger"),r=document.querySelector(".menu"),i=getComputedStyle(document.body).getPropertyValue("--phoneWidth"),u=function(){return window.matchMedia(i).matches},c=function(){o&&o.classList.toggle("hidden",!u()),r&&r.classList.toggle("hidden",u())};c(),o&&o.addEventListener("click",function(){return r&&r.classList.toggle("hidden")}),window.addEventListener("resize",c)},function(e,t,n){"use strict";var o=window.localStorage&&window.localStorage.getItem("theme"),r=document.querySelector(".theme-toggle"),i="dark"===o;null!==o&&document.body.classList.toggle("dark-theme",i),r.addEventListener("click",function(){document.body.classList.toggle("dark-theme"),window.localStorage&&window.localStorage.setItem("theme",document.body.classList.contains("dark-theme")?"dark":"light")})}]);
|
/******/ (function(modules) { // webpackBootstrap
|
||||||
|
/******/ // The module cache
|
||||||
|
/******/ var installedModules = {};
|
||||||
|
/******/
|
||||||
|
/******/ // The require function
|
||||||
|
/******/ function __webpack_require__(moduleId) {
|
||||||
|
/******/
|
||||||
|
/******/ // Check if module is in cache
|
||||||
|
/******/ if(installedModules[moduleId]) {
|
||||||
|
/******/ return installedModules[moduleId].exports;
|
||||||
|
/******/ }
|
||||||
|
/******/ // Create a new module (and put it into the cache)
|
||||||
|
/******/ var module = installedModules[moduleId] = {
|
||||||
|
/******/ i: moduleId,
|
||||||
|
/******/ l: false,
|
||||||
|
/******/ exports: {}
|
||||||
|
/******/ };
|
||||||
|
/******/
|
||||||
|
/******/ // Execute the module function
|
||||||
|
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
|
||||||
|
/******/
|
||||||
|
/******/ // Flag the module as loaded
|
||||||
|
/******/ module.l = true;
|
||||||
|
/******/
|
||||||
|
/******/ // Return the exports of the module
|
||||||
|
/******/ return module.exports;
|
||||||
|
/******/ }
|
||||||
|
/******/
|
||||||
|
/******/
|
||||||
|
/******/ // expose the modules object (__webpack_modules__)
|
||||||
|
/******/ __webpack_require__.m = modules;
|
||||||
|
/******/
|
||||||
|
/******/ // expose the module cache
|
||||||
|
/******/ __webpack_require__.c = installedModules;
|
||||||
|
/******/
|
||||||
|
/******/ // define getter function for harmony exports
|
||||||
|
/******/ __webpack_require__.d = function(exports, name, getter) {
|
||||||
|
/******/ if(!__webpack_require__.o(exports, name)) {
|
||||||
|
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
|
||||||
|
/******/ }
|
||||||
|
/******/ };
|
||||||
|
/******/
|
||||||
|
/******/ // define __esModule on exports
|
||||||
|
/******/ __webpack_require__.r = function(exports) {
|
||||||
|
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
|
||||||
|
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
|
||||||
|
/******/ }
|
||||||
|
/******/ Object.defineProperty(exports, '__esModule', { value: true });
|
||||||
|
/******/ };
|
||||||
|
/******/
|
||||||
|
/******/ // create a fake namespace object
|
||||||
|
/******/ // mode & 1: value is a module id, require it
|
||||||
|
/******/ // mode & 2: merge all properties of value into the ns
|
||||||
|
/******/ // mode & 4: return value when already ns object
|
||||||
|
/******/ // mode & 8|1: behave like require
|
||||||
|
/******/ __webpack_require__.t = function(value, mode) {
|
||||||
|
/******/ if(mode & 1) value = __webpack_require__(value);
|
||||||
|
/******/ if(mode & 8) return value;
|
||||||
|
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
|
||||||
|
/******/ var ns = Object.create(null);
|
||||||
|
/******/ __webpack_require__.r(ns);
|
||||||
|
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
|
||||||
|
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
|
||||||
|
/******/ return ns;
|
||||||
|
/******/ };
|
||||||
|
/******/
|
||||||
|
/******/ // getDefaultExport function for compatibility with non-harmony modules
|
||||||
|
/******/ __webpack_require__.n = function(module) {
|
||||||
|
/******/ var getter = module && module.__esModule ?
|
||||||
|
/******/ function getDefault() { return module['default']; } :
|
||||||
|
/******/ function getModuleExports() { return module; };
|
||||||
|
/******/ __webpack_require__.d(getter, 'a', getter);
|
||||||
|
/******/ return getter;
|
||||||
|
/******/ };
|
||||||
|
/******/
|
||||||
|
/******/ // Object.prototype.hasOwnProperty.call
|
||||||
|
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
|
||||||
|
/******/
|
||||||
|
/******/ // __webpack_public_path__
|
||||||
|
/******/ __webpack_require__.p = "";
|
||||||
|
/******/
|
||||||
|
/******/
|
||||||
|
/******/ // Load entry module and return exports
|
||||||
|
/******/ return __webpack_require__(__webpack_require__.s = 0);
|
||||||
|
/******/ })
|
||||||
|
/************************************************************************/
|
||||||
|
/******/ ({
|
||||||
|
|
||||||
|
/***/ "./source/js/index.js":
|
||||||
|
/*!****************************!*\
|
||||||
|
!*** ./source/js/index.js ***!
|
||||||
|
\****************************/
|
||||||
|
/*! no static exports found */
|
||||||
|
/***/ (function(module, exports, __webpack_require__) {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
eval("// Add your script here\n\n\n//# sourceURL=webpack:///./source/js/index.js?");
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ "./source/js/menu.js":
|
||||||
|
/*!***************************!*\
|
||||||
|
!*** ./source/js/menu.js ***!
|
||||||
|
\***************************/
|
||||||
|
/*! no static exports found */
|
||||||
|
/***/ (function(module, exports, __webpack_require__) {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
eval("\n\nvar container = document.querySelector(\".container\");\nvar menu = document.querySelector(\".menu\");\nvar mobileMenuTrigger = document.querySelector(\".menu-trigger\");\nvar desktopMenu = document.querySelector(\".menu__inner--desktop\");\nvar desktopMenuTrigger = document.querySelector(\".menu__sub-inner-more-trigger\");\nvar menuMore = document.querySelector(\".menu__sub-inner-more\");\nvar mobileQuery = getComputedStyle(document.body).getPropertyValue(\"--phoneWidth\");\n\nvar isMobile = function isMobile() {\n return window.matchMedia(mobileQuery).matches;\n};\n\nvar isMobileMenu = function isMobileMenu() {\n mobileMenuTrigger && mobileMenuTrigger.classList.toggle(\"hidden\", !isMobile());\n menu && menu.classList.toggle(\"hidden\", isMobile());\n menuMore && menuMore.classList.toggle(\"hidden\", !isMobile());\n}; // Common\n\n\nmenu && menu.addEventListener(\"click\", function (e) {\n return e.stopPropagation();\n});\nmenuMore && menuMore.addEventListener(\"click\", function (e) {\n return e.stopPropagation();\n});\nisMobileMenu();\ndocument.body.addEventListener(\"click\", function () {\n if (!isMobile() && !menuMore.classList.contains(\"hidden\")) {\n menuMore.classList.add(\"hidden\");\n } else if (isMobile() && !menu.classList.contains(\"hidden\")) {\n menu.classList.add(\"hidden\");\n }\n});\nwindow.addEventListener(\"resize\", isMobileMenu); // Mobile menu\n\nmobileMenuTrigger && mobileMenuTrigger.addEventListener(\"click\", function (e) {\n e.stopPropagation();\n menu && menu.classList.toggle(\"hidden\");\n}); // Desktop menu\n\ndesktopMenuTrigger && desktopMenuTrigger.addEventListener(\"click\", function (e) {\n e.stopPropagation();\n menuMore && menuMore.classList.toggle(\"hidden\");\n\n if (menuMore.getBoundingClientRect().right > container.getBoundingClientRect().right) {\n menuMore.style.left = \"auto\";\n menuMore.style.right = 0;\n }\n});\n\n//# sourceURL=webpack:///./source/js/menu.js?");
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ "./source/js/theme.js":
|
||||||
|
/*!****************************!*\
|
||||||
|
!*** ./source/js/theme.js ***!
|
||||||
|
\****************************/
|
||||||
|
/*! no static exports found */
|
||||||
|
/***/ (function(module, exports, __webpack_require__) {
|
||||||
|
|
||||||
|
"use strict";
|
||||||
|
eval("\n\n// Toggle theme\nvar getTheme = window.localStorage && window.localStorage.getItem(\"theme\");\nvar themeToggle = document.querySelector(\".theme-toggle\");\nvar isDark = getTheme === \"dark\";\n\nif (getTheme !== null) {\n document.body.classList.toggle(\"dark-theme\", isDark);\n}\n\nthemeToggle.addEventListener(\"click\", function () {\n document.body.classList.toggle(\"dark-theme\");\n window.localStorage && window.localStorage.setItem(\"theme\", document.body.classList.contains(\"dark-theme\") ? \"dark\" : \"light\");\n});\n\n//# sourceURL=webpack:///./source/js/theme.js?");
|
||||||
|
|
||||||
|
/***/ }),
|
||||||
|
|
||||||
|
/***/ 0:
|
||||||
|
/*!***************************************************************************!*\
|
||||||
|
!*** multi ./source/js/index.js ./source/js/menu.js ./source/js/theme.js ***!
|
||||||
|
\***************************************************************************/
|
||||||
|
/*! no static exports found */
|
||||||
|
/***/ (function(module, exports, __webpack_require__) {
|
||||||
|
|
||||||
|
eval("__webpack_require__(/*! /Users/radek/Documents/Git/Moje/hugoBasicExampleHelloFriend/themes/hello-friend/source/js/index.js */\"./source/js/index.js\");\n__webpack_require__(/*! /Users/radek/Documents/Git/Moje/hugoBasicExampleHelloFriend/themes/hello-friend/source/js/menu.js */\"./source/js/menu.js\");\nmodule.exports = __webpack_require__(/*! /Users/radek/Documents/Git/Moje/hugoBasicExampleHelloFriend/themes/hello-friend/source/js/theme.js */\"./source/js/theme.js\");\n\n\n//# sourceURL=webpack:///multi_./source/js/index.js_./source/js/menu.js_./source/js/theme.js?");
|
||||||
|
|
||||||
|
/***/ })
|
||||||
|
|
||||||
|
/******/ });
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
0
static/style.css
Normal file
0
static/style.css
Normal file
78
yarn.lock
78
yarn.lock
@ -1318,6 +1318,11 @@ camel-case@3.0.x:
|
|||||||
no-case "^2.2.0"
|
no-case "^2.2.0"
|
||||||
upper-case "^1.1.1"
|
upper-case "^1.1.1"
|
||||||
|
|
||||||
|
camelcase-css@^2.0.0:
|
||||||
|
version "2.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5"
|
||||||
|
integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==
|
||||||
|
|
||||||
camelcase-keys@^4.1.0:
|
camelcase-keys@^4.1.0:
|
||||||
version "4.2.0"
|
version "4.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77"
|
resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-4.2.0.tgz#a2aa5fb1af688758259c32c141426d78923b9b77"
|
||||||
@ -1369,6 +1374,15 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1:
|
|||||||
escape-string-regexp "^1.0.5"
|
escape-string-regexp "^1.0.5"
|
||||||
supports-color "^5.3.0"
|
supports-color "^5.3.0"
|
||||||
|
|
||||||
|
chalk@^2.4.2:
|
||||||
|
version "2.4.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424"
|
||||||
|
integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==
|
||||||
|
dependencies:
|
||||||
|
ansi-styles "^3.2.1"
|
||||||
|
escape-string-regexp "^1.0.5"
|
||||||
|
supports-color "^5.3.0"
|
||||||
|
|
||||||
chardet@^0.4.0:
|
chardet@^0.4.0:
|
||||||
version "0.4.2"
|
version "0.4.2"
|
||||||
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
|
resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2"
|
||||||
@ -1972,7 +1986,7 @@ diffie-hellman@^5.0.0:
|
|||||||
miller-rabin "^4.0.0"
|
miller-rabin "^4.0.0"
|
||||||
randombytes "^2.0.0"
|
randombytes "^2.0.0"
|
||||||
|
|
||||||
dir-glob@^2.0.0:
|
dir-glob@2.0.0, dir-glob@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034"
|
resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034"
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -2605,6 +2619,19 @@ globby@^8.0.0:
|
|||||||
pify "^3.0.0"
|
pify "^3.0.0"
|
||||||
slash "^1.0.0"
|
slash "^1.0.0"
|
||||||
|
|
||||||
|
globby@^8.0.1:
|
||||||
|
version "8.0.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.2.tgz#5697619ccd95c5275dbb2d6faa42087c1a941d8d"
|
||||||
|
integrity sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w==
|
||||||
|
dependencies:
|
||||||
|
array-union "^1.0.1"
|
||||||
|
dir-glob "2.0.0"
|
||||||
|
fast-glob "^2.0.2"
|
||||||
|
glob "^7.1.2"
|
||||||
|
ignore "^3.3.5"
|
||||||
|
pify "^3.0.0"
|
||||||
|
slash "^1.0.0"
|
||||||
|
|
||||||
good-listener@^1.2.2:
|
good-listener@^1.2.2:
|
||||||
version "1.2.2"
|
version "1.2.2"
|
||||||
resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50"
|
resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50"
|
||||||
@ -4149,6 +4176,14 @@ postcss-initial@^2.0.0:
|
|||||||
lodash.template "^4.2.4"
|
lodash.template "^4.2.4"
|
||||||
postcss "^6.0.1"
|
postcss "^6.0.1"
|
||||||
|
|
||||||
|
postcss-js@^2.0.0:
|
||||||
|
version "2.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/postcss-js/-/postcss-js-2.0.0.tgz#f75b70470009eb37f998ee9bb516a2899c19ef8d"
|
||||||
|
integrity sha512-9kAApW9G5kN8FkQ0ZdvSmbgbHIRrKmXtde2ZWYbwrW51gfEWfGsLlUu57mTpioPrmQlQFOgEvaeGYp+poqlX0A==
|
||||||
|
dependencies:
|
||||||
|
camelcase-css "^2.0.0"
|
||||||
|
postcss "^7.0.0"
|
||||||
|
|
||||||
postcss-lab-function@^1.0.1:
|
postcss-lab-function@^1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-1.0.1.tgz#f493a93edcd8379de716bc3aab156626c317ce3c"
|
resolved "https://registry.yarnpkg.com/postcss-lab-function/-/postcss-lab-function-1.0.1.tgz#f493a93edcd8379de716bc3aab156626c317ce3c"
|
||||||
@ -4243,6 +4278,17 @@ postcss-minify-selectors@^4.0.0:
|
|||||||
postcss "^6.0.0"
|
postcss "^6.0.0"
|
||||||
postcss-selector-parser "^3.0.0"
|
postcss-selector-parser "^3.0.0"
|
||||||
|
|
||||||
|
postcss-mixins@^6.2.1:
|
||||||
|
version "6.2.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/postcss-mixins/-/postcss-mixins-6.2.1.tgz#f2a6abb449410929a184b23fbef7c96898cf01e5"
|
||||||
|
integrity sha512-XfItKgFHAPKa4mayLVwoASYzzRLyW64mEtsVZz7LT7ElrprVZx9D5ivqOi5oQCkUxyiLs9sjg4aiRxr+gK9xkQ==
|
||||||
|
dependencies:
|
||||||
|
globby "^8.0.1"
|
||||||
|
postcss "^7.0.6"
|
||||||
|
postcss-js "^2.0.0"
|
||||||
|
postcss-simple-vars "^5.0.1"
|
||||||
|
sugarss "^2.0.0"
|
||||||
|
|
||||||
postcss-modules-extract-imports@^1.2.0:
|
postcss-modules-extract-imports@^1.2.0:
|
||||||
version "1.2.0"
|
version "1.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz#66140ecece38ef06bf0d3e355d69bf59d141ea85"
|
resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz#66140ecece38ef06bf0d3e355d69bf59d141ea85"
|
||||||
@ -4497,6 +4543,13 @@ postcss-selector-parser@^4.0.0:
|
|||||||
indexes-of "^1.0.1"
|
indexes-of "^1.0.1"
|
||||||
uniq "^1.0.1"
|
uniq "^1.0.1"
|
||||||
|
|
||||||
|
postcss-simple-vars@^5.0.1:
|
||||||
|
version "5.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/postcss-simple-vars/-/postcss-simple-vars-5.0.1.tgz#850971fdfedf236ea1c815569ce261dab8623aa2"
|
||||||
|
integrity sha512-nlulz+X0i8CH2e9IbxFfMD9rG4fGx+O4hH7Pwj0bZalRx91gvli85DAymqBQ35X7VBUackGD2iNj7DgsCbwQug==
|
||||||
|
dependencies:
|
||||||
|
postcss "^7.0.2"
|
||||||
|
|
||||||
postcss-svgo@^4.0.0:
|
postcss-svgo@^4.0.0:
|
||||||
version "4.0.0"
|
version "4.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.0.tgz#c0bbad02520fc636c9d78b0e8403e2e515c32285"
|
resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.0.tgz#c0bbad02520fc636c9d78b0e8403e2e515c32285"
|
||||||
@ -4561,6 +4614,15 @@ postcss@^7.0.0:
|
|||||||
source-map "^0.6.1"
|
source-map "^0.6.1"
|
||||||
supports-color "^5.4.0"
|
supports-color "^5.4.0"
|
||||||
|
|
||||||
|
postcss@^7.0.2, postcss@^7.0.6:
|
||||||
|
version "7.0.14"
|
||||||
|
resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.14.tgz#4527ed6b1ca0d82c53ce5ec1a2041c2346bbd6e5"
|
||||||
|
integrity sha512-NsbD6XUUMZvBxtQAJuWDJeeC4QFsmWsfozWxCJPWf3M55K9iu2iMDaKqyoOdTJ1R4usBXuxlVFAIo8rZPQD4Bg==
|
||||||
|
dependencies:
|
||||||
|
chalk "^2.4.2"
|
||||||
|
source-map "^0.6.1"
|
||||||
|
supports-color "^6.1.0"
|
||||||
|
|
||||||
prelude-ls@~1.1.2:
|
prelude-ls@~1.1.2:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
|
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
|
||||||
@ -5263,6 +5325,13 @@ stylehacks@^4.0.0:
|
|||||||
postcss "^6.0.0"
|
postcss "^6.0.0"
|
||||||
postcss-selector-parser "^3.0.0"
|
postcss-selector-parser "^3.0.0"
|
||||||
|
|
||||||
|
sugarss@^2.0.0:
|
||||||
|
version "2.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/sugarss/-/sugarss-2.0.0.tgz#ddd76e0124b297d40bf3cca31c8b22ecb43bc61d"
|
||||||
|
integrity sha512-WfxjozUk0UVA4jm+U1d736AUpzSrNsQcIbyOkoE364GrtWmIrFdk5lksEupgWMD4VaT/0kVx1dobpiDumSgmJQ==
|
||||||
|
dependencies:
|
||||||
|
postcss "^7.0.2"
|
||||||
|
|
||||||
supports-color@^2.0.0:
|
supports-color@^2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
|
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7"
|
||||||
@ -5285,6 +5354,13 @@ supports-color@^5.3.0, supports-color@^5.4.0:
|
|||||||
dependencies:
|
dependencies:
|
||||||
has-flag "^3.0.0"
|
has-flag "^3.0.0"
|
||||||
|
|
||||||
|
supports-color@^6.1.0:
|
||||||
|
version "6.1.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3"
|
||||||
|
integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==
|
||||||
|
dependencies:
|
||||||
|
has-flag "^3.0.0"
|
||||||
|
|
||||||
svgo@^1.0.0:
|
svgo@^1.0.0:
|
||||||
version "1.0.5"
|
version "1.0.5"
|
||||||
resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.0.5.tgz#7040364c062a0538abacff4401cea6a26a7a389a"
|
resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.0.5.tgz#7040364c062a0538abacff4401cea6a26a7a389a"
|
||||||
|
Loading…
Reference in New Issue
Block a user