Merge branch 'master' into master

This commit is contained in:
newhinton 2019-02-28 14:57:20 +01:00 committed by GitHub
commit 8fe7d51b94
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
14 changed files with 62 additions and 10534 deletions

View File

@ -110,7 +110,7 @@ and go to `localhost:1313` in your browser. From now on all the changes you make
## How to edit the theme ## How to edit the theme
If you have to override some of the styles, **you can do this easily** by adding `static/styles.css` in your root directory and point things you want to change. If you have to override some of the styles, **you can do this easily** by adding `static/style.css` in your root directory and point things you want to change.
Otherwise, if you really want to edit the theme, you need to install Node dependencies. To do so, go to the theme directory (from your Hugo root directory): Otherwise, if you really want to edit the theme, you need to install Node dependencies. To do so, go to the theme directory (from your Hugo root directory):

View File

@ -17,13 +17,13 @@
{{ if .Params.tags }} {{ if .Params.tags }}
<span class="post-tags"> <span class="post-tags">
{{ range .Params.tags }} {{ range .Params.tags }}
#<a href="{{ (urlize (printf "tags/%s" . )) | absURL }}">{{ . }}</a>&nbsp; #<a href="{{ (urlize (printf "tags/%s/" . )) | absURL }}">{{ . }}</a>&nbsp;
{{ end }} {{ end }}
</span> </span>
{{ end }} {{ end }}
{{ with .Params.Cover }} {{ with .Params.Cover }}
<img src="{{ printf "img/%s" . | absURL }}" class="post-cover" /> <img src="{{ . | absURL }}" class="post-cover" />
{{ end }} {{ end }}
<div class="post-content"> <div class="post-content">

View File

@ -1,6 +1,6 @@
{{ define "main" }} {{ define "main" }}
<div class="post"> <div class="post">
<h1 class="post-title"><a href="{{ .Permalink }}">{{ .Title | markdownify }}</a></h2> <h1 class="post-title"><a href="{{ .Permalink }}">{{ .Title | markdownify }}</a></h1>
<div class="post-meta"> <div class="post-meta">
<span class="post-date"> <span class="post-date">
{{ .Date.Format "2006-01-02" }} {{ .Date.Format "2006-01-02" }}
@ -11,13 +11,13 @@
{{ if .Params.tags }} {{ if .Params.tags }}
<span class="post-tags"> <span class="post-tags">
{{ range .Params.tags }} {{ range .Params.tags }}
#<a href="{{ (urlize (printf "tags/%s" .)) | absURL }}">{{ . }}</a>&nbsp; #<a href="{{ (urlize (printf "tags/%s/" .)) | absURL }}">{{ . }}</a>&nbsp;
{{ end }} {{ end }}
</span> </span>
{{ end }} {{ end }}
{{ with .Params.Cover }} {{ with .Params.Cover }}
<img src="{{ printf "img/%s" . | absURL }}" class="post-cover" /> <img src="{{ . | absURL }}" class="post-cover" />
{{ end }} {{ end }}
<div class="post-content"> <div class="post-content">
@ -49,5 +49,7 @@
</div> </div>
</div> </div>
{{ end }} {{ end }}
{{ partial "comments.html" . }}
</div> </div>
{{ end }} {{ end }}

View File

@ -0,0 +1,8 @@
<!--
To add comments section, please create `layouts/partials/comments.html` in your
Hugo directory and insert:
{{ template "_internal/disqus.html" . }}
or whatever comment engine you want -> https://gohugo.io/content-management/comments/#readout
-->

View File

@ -26,7 +26,7 @@
<meta name="twitter:description" content="{{ if .IsHome }}{{ $.Site.Params.tagline }}{{ else }}{{ .Summary | plainify }}{{ end }}" /> <meta name="twitter:description" content="{{ if .IsHome }}{{ $.Site.Params.tagline }}{{ else }}{{ .Summary | plainify }}{{ end }}" />
<meta name="twitter:site" content="{{ $.Site.BaseURL }}" /> <meta name="twitter:site" content="{{ $.Site.BaseURL }}" />
<meta name="twitter:creator" content="{{ .Params.Author }}" /> <meta name="twitter:creator" content="{{ .Params.Author }}" />
<meta name="twitter:image" content="{{ with .Params.Cover }}{{ printf "img/%s" . | absURL }}{{ end }}"> <meta name="twitter:image" content="{{ with .Params.Cover }}{{ . | absURL }}{{ end }}">
<!-- OG data --> <!-- OG data -->
<meta property="og:locale" content="{{ $.Site.Language.Lang }}" /> <meta property="og:locale" content="{{ $.Site.Language.Lang }}" />
@ -35,7 +35,7 @@
<meta property="og:description" content="{{ if .IsHome }}{{ $.Site.Params.tagline }}{{ else }}{{ .Summary | plainify }}{{ end }}" /> <meta property="og:description" content="{{ if .IsHome }}{{ $.Site.Params.tagline }}{{ else }}{{ .Summary | plainify }}{{ end }}" />
<meta property="og:url" content="{{ .Permalink }}" /> <meta property="og:url" content="{{ .Permalink }}" />
<meta property="og:site_name" content="{{ .Title }}" /> <meta property="og:site_name" content="{{ .Title }}" />
<meta property="og:image" content="{{ with .Params.Cover }}{{ printf "img/%s" . | absURL }}{{ end }}"> <meta property="og:image" content="{{ with .Params.Cover }}{{ . | absURL }}{{ end }}">
<meta property="og:image:width" content="2048"> <meta property="og:image:width" content="2048">
<meta property="og:image:height" content="1024"> <meta property="og:image:height" content="1024">
{{ range .Params.categories }}<meta property="article:section" content="{{ . }}" />{{ end }} {{ range .Params.categories }}<meta property="article:section" content="{{ . }}" />{{ end }}

View File

@ -1,4 +1,4 @@
<a href="{{ if $.Site.Params.Logo.LogoHomeLink }}{{ $.Site.Params.Logo.LogoHomeLink }}{{else}}{{ $.Site.BaseURL }}{{ end }}" style="text-decoration: none;"> <a href="{{ if $.Site.Params.Logo.LogoHomeLink }}{{ $.Site.Params.Logo.LogoHomeLink }}{{else}}{{ $.Site.BaseURL }}{{ end }}">
<div class="logo"> <div class="logo">
{{ with $.Site.Params.Logo.logoText }}{{ . }}{{ else }}Terminal{{ end }} {{ with $.Site.Params.Logo.logoText }}{{ . }}{{ else }}Terminal{{ end }}
</div> </div>

10251
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -14,42 +14,42 @@
"not dead" "not dead"
], ],
"devDependencies": { "devDependencies": {
"@babel/cli": "^7.0.0-beta.54", "@babel/cli": "^7.2.3",
"@babel/core": "^7.0.0-beta.54", "@babel/core": "^7.2.2",
"@babel/plugin-transform-runtime": "^7.0.0-beta.54", "@babel/plugin-transform-runtime": "^7.2.0",
"@babel/preset-env": "^7.0.0-beta.54", "@babel/preset-env": "^7.3.1",
"@babel/preset-stage-2": "^7.0.0-beta.54", "@babel/preset-stage-2": "^7.0.0",
"babel-eslint": "8.2.1", "babel-eslint": "^8.2.1",
"babel-loader": "^8.0.0-beta.0", "babel-loader": "^8.0.5",
"browserslist": "^4.0.1", "browserslist": "^4.0.1",
"clean-webpack-plugin": "^0.1.16", "clean-webpack-plugin": "^0.1.19",
"clipboard": "^2.0.1", "clipboard": "^2.0.4",
"css-loader": "^1.0.0", "css-loader": "^1.0.1",
"cssnano": "^4.0.3", "cssnano": "^4.1.8",
"eslint-config-airbnb": "^17.1.0", "eslint-config-airbnb": "^17.1.0",
"eslint-config-prettier": "^2.9.0", "eslint-config-prettier": "^2.10.0",
"eslint-plugin-jsx-a11y": "^6.1.1", "eslint-plugin-jsx-a11y": "^6.2.1",
"extract-text-webpack-plugin": "^4.0.0-beta.0", "extract-text-webpack-plugin": "^4.0.0-beta.0",
"file-loader": "^1.1.11", "file-loader": "^1.1.11",
"html-webpack-plugin": "^3.2.0", "html-webpack-plugin": "^3.2.0",
"postcss": "^7.0.0", "postcss": "^7.0.0",
"postcss-browser-reporter": "^0.5.0", "postcss-browser-reporter": "^0.5.0",
"postcss-cli": "^6.0.0", "postcss-cli": "^6.1.1",
"postcss-color-function": "^4.0.1", "postcss-color-function": "^4.0.1",
"postcss-color-mod-function": "^3.0.3", "postcss-color-mod-function": "^3.0.3",
"postcss-import": "^11.1.0", "postcss-import": "^11.1.0",
"postcss-loader": "^2.0.5", "postcss-loader": "^2.1.6",
"postcss-mixins": "^6.2.1", "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.3.0",
"postcss-reporter": "^5.0.0", "postcss-reporter": "^5.0.0",
"postcss-url": "^7.3.2", "postcss-url": "^7.3.2",
"prettier-eslint-cli": "^4.7.1", "prettier-eslint-cli": "^4.7.1",
"ramda": "^0.25.0", "ramda": "^0.25.0",
"style-loader": "^0.21.0", "style-loader": "^0.21.0",
"uglifyjs-webpack-plugin": "^1.2.7", "uglifyjs-webpack-plugin": "^1.3.0",
"url-loader": "^1.0.1", "url-loader": "^1.1.2",
"webpack": "^4.16.1", "webpack": "^4.29.3",
"webpack-cli": "^3.1.0" "webpack-cli": "^3.2.3"
} }
} }

View File

@ -36,6 +36,7 @@
a { a {
flex: 0 0 auto; flex: 0 0 auto;
max-width: 100%; max-width: 100%;
text-decoration: none;
} }
} }

View File

@ -29,10 +29,11 @@ body {
} }
h1, h2, h3, h4, h5, h6 { h1, h2, h3, h4, h5, h6 {
display: flex;
align-items: center;
font-weight: bold;
line-height: 1.3; line-height: 1.3;
&:not(first-child) {
margin-top: 40px;
}
} }
h1, h2, h3 { h1, h2, h3 {
@ -121,12 +122,18 @@ code {
pre { pre {
background: transparent; background: transparent;
padding: 20px; padding: 20px 10px;
margin: 40px 0;
font-size: .95rem; font-size: .95rem;
overflow: auto; overflow: auto;
border-top: 1px solid rgba(255, 255, 255, .1); border-top: 1px solid rgba(255, 255, 255, .1);
border-bottom: 1px solid rgba(255, 255, 255, .1); border-bottom: 1px solid rgba(255, 255, 255, .1);
+ pre {
border-top: 0;
margin-top: -40px;
}
@media (--phone) { @media (--phone) {
white-space: pre-wrap; white-space: pre-wrap;
word-wrap: break-word; word-wrap: break-word;

View File

@ -30,8 +30,7 @@ pre[class*="language-"] {
/* Code blocks */ /* Code blocks */
pre[class*="language-"] { pre[class*="language-"] {
padding: 1em; margin: 0;
margin: .5em 0;
overflow: auto; overflow: auto;
} }

File diff suppressed because one or more lines are too long

View File

@ -1,124 +1 @@
/******/ (function(modules) { // webpackBootstrap !function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},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 r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},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),e.exports=n(2)},function(e,t,n){"use strict"},function(e,t,n){"use strict";var r=document.querySelector(".container"),o=document.querySelector(".menu"),i=document.querySelector(".menu-trigger"),u=(document.querySelector(".menu__inner--desktop"),document.querySelector(".menu__sub-inner-more-trigger")),c=document.querySelector(".menu__sub-inner-more"),d=getComputedStyle(document.body).getPropertyValue("--phoneWidth"),s=function(){return window.matchMedia(d).matches},l=function(){i&&i.classList.toggle("hidden",!s()),o&&o.classList.toggle("hidden",s()),c&&c.classList.toggle("hidden",!s())};o&&o.addEventListener("click",function(e){return e.stopPropagation()}),c&&c.addEventListener("click",function(e){return e.stopPropagation()}),l(),document.body.addEventListener("click",function(){s()||c.classList.contains("hidden")?s()&&!o.classList.contains("hidden")&&o.classList.add("hidden"):c.classList.add("hidden")}),window.addEventListener("resize",l),i&&i.addEventListener("click",function(e){e.stopPropagation(),o&&o.classList.toggle("hidden")}),u&&u.addEventListener("click",function(e){e.stopPropagation(),c&&c.classList.toggle("hidden"),c.getBoundingClientRect().right>r.getBoundingClientRect().right&&(c.style.left="auto",c.style.right=0)})}]);
/******/ // 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/main.js":
/*!***************************!*\
!*** ./source/js/main.js ***!
\***************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
eval("// Add your script here\n\n\n//# sourceURL=webpack:///./source/js/main.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?");
/***/ }),
/***/ 0:
/*!*****************************************************!*\
!*** multi ./source/js/main.js ./source/js/menu.js ***!
\*****************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
eval("__webpack_require__(/*! /var/www/html/main/themes/hugo-theme-terminal/source/js/main.js */\"./source/js/main.js\");\nmodule.exports = __webpack_require__(/*! /var/www/html/main/themes/hugo-theme-terminal/source/js/menu.js */\"./source/js/menu.js\");\n\n\n//# sourceURL=webpack:///multi_./source/js/main.js_./source/js/menu.js?");
/***/ })
/******/ });

File diff suppressed because one or more lines are too long