4 Commits
Author SHA1 Message Date
maik e19f7756e2 Adds some optimizations 2020-07-08 23:04:06 +02:00
maik 1691698426 Merge branch 'master' into dev 2020-07-08 17:37:47 +02:00
maik 55989c417b Fix baseURL 2020-07-08 17:26:53 +02:00
maik 7735f87ac0 Initial commit 2020-07-08 16:49:47 +02:00
84 changed files with 2888 additions and 1393 deletions
+3 -2
View File
@@ -1,2 +1,3 @@
# All old/unused files
*.old
# Hugo default output directory
public/
resources/_gen/
-2
View File
@@ -1,2 +0,0 @@
# Personal-Website
Repo for my website
+13
View File
@@ -0,0 +1,13 @@
+++
author = "Maik de Kruif"
title = "{{ replace .Name "-" " " | title }}"
date = {{ .Date }}
description = ""
images = []
tags = [
"untagged",
]
categories = [
"uncategorized",
]
+++
+13
View File
@@ -0,0 +1,13 @@
+++
author = "Maik de Kruif"
title = "{{ replace .Name "-" " " | title }}"
date = {{ .Date }}
description = ""
images = []
tags = [
"untagged",
]
categories = [
"uncategorized",
]
+++
Binary file not shown.

Before

Width:  |  Height:  |  Size: 95 KiB

-68
View File
@@ -1,68 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 19.2.1, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 512 512" style="enable-background:new 0 0 512 512;" xml:space="preserve">
<style type="text/css">
.st0 {
clip-path: url(#SVGID_2_);
}
.st1 {
fill: #02A8F4;
}
.st2 {
fill: #FFFFFF;
}
.st3 {
fill: #F2504D;
}
.st4 {
fill: #E5E4E9;
}
.st5 {
fill: #FF0000;
}
.st6 {
fill: #FFFF00;
}
.st7 {
fill: #00FF00;
}
.st8 {
fill-opacity: 0;
}
</style>
<g>
<defs>
<rect id="SVGID_1_" width="512" height="512" />
</defs>
<clipPath id="SVGID_2_">
<use xlink:href="#SVGID_1_" style="overflow:visible;" />
</clipPath>
<g class="st0">
<path class="st1" d="M58.7,256L58.7,256C58.7,147,147,58.7,256,58.7l0,0c52.3,0,102.5,20.8,139.5,57.8s57.8,87.2,57.8,139.5l0,0
c0,109-88.3,197.3-197.3,197.3l0,0C147,453.3,58.7,365,58.7,256z" />
<path class="st2" d="M149.2,161.9L149.2,161.9c0-7,5.7-12.7,12.7-12.7h188.2c3.4,0,6.6,1.3,8.9,3.7c2.4,2.4,3.7,5.6,3.7,8.9v188.2
c0,7-5.7,12.7-12.7,12.7H161.9c-7,0-12.7-5.7-12.7-12.7V161.9z" />
<path class="st3" d="M166,202.4H346v133.6H166V202.4z" />
<path class="st4" d="M154.2,149.2h203.6c1.3,0,2.6,0.5,3.5,1.5c0.9,0.9,1.5,2.2,1.5,3.5v24.9c0,0,0,0,0,0l-213.5,0l0,0
c0,0,0,0,0,0l0-24.9l0,0C149.2,151.5,151.5,149.2,154.2,149.2z" />
<path class="st5" d="M158.7,164.2L158.7,164.2c0-4,3.2-7.2,7.2-7.2l0,0c1.9,0,3.7,0.8,5.1,2.1c1.4,1.4,2.1,3.2,2.1,5.1l0,0
c0,4-3.2,7.2-7.2,7.2l0,0C162,171.4,158.7,168.2,158.7,164.2z" />
<path class="st6" d="M179.2,164.2L179.2,164.2c0-4,3.2-7.2,7.2-7.2l0,0c1.9,0,3.7,0.8,5.1,2.1c1.4,1.4,2.1,3.2,2.1,5.1l0,0
c0,4-3.2,7.2-7.2,7.2l0,0C182.4,171.4,179.2,168.2,179.2,164.2z" />
<path class="st7" d="M199.6,164.2L199.6,164.2c0-4,3.2-7.2,7.2-7.2l0,0c1.9,0,3.7,0.8,5.1,2.1c1.4,1.4,2.1,3.2,2.1,5.1l0,0
c0,4-3.2,7.2-7.2,7.2l0,0C202.8,171.4,199.6,168.2,199.6,164.2z" />
<path class="st8" d="M166,202.4H346v133.6H166V202.4z" />
<path class="st2" d="M241.1,291.4l-39.3-17.1v-9.5l39.3-17v11.1l-27.4,10.5l27.4,10.9V291.4z M244.8,298.9l14.2-59.2h8.3
l-14.3,59.2H244.8z M270.8,291.5v-11.1l27.4-10.8L270.8,259v-11l39.3,17v9.4L270.8,291.5z" />
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 2.3 KiB

-40
View File
@@ -1,40 +0,0 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Capa_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="124px" height="124px" viewBox="0 0 124 124" style="enable-background:new 0 0 124 124;" xml:space="preserve">
<g>
<path d="M112,6H12C5.4,6,0,11.4,0,18s5.4,12,12,12h100c6.6,0,12-5.4,12-12S118.6,6,112,6z" />
<path d="M112,50H12C5.4,50,0,55.4,0,62c0,6.6,5.4,12,12,12h100c6.6,0,12-5.4,12-12C124,55.4,118.6,50,112,50z" />
<path d="M112,94H12c-6.6,0-12,5.4-12,12s5.4,12,12,12h100c6.6,0,12-5.4,12-12S118.6,94,112,94z" />
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
<g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 968 B

-2
View File
@@ -1,2 +0,0 @@
<svg width="300" height="300" xmlns="http://www.w3.org/2000/svg">
<rect x="2" y="2" width="296" height="296" style="fill:#DEDEDE;stroke:#555555;stroke-width:2" /><text x="50%" y="50%" font-size="18" text-anchor="middle" alignment-baseline="middle" font-family="monospace, sans-serif" fill="#555555">300&#215;300</text></svg>

Before

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 620 KiB

-732
View File
@@ -1,732 +0,0 @@
html,
body {
margin: 0;
padding: 0;
}
body {
font-family: 'Roboto', sans-serif;
background: #060612;
overflow-x: hidden;
}
@font-face {
font-family: 'Roboto';
font-style: normal;
font-display: fallback;
font-weight: 400;
src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v19/KFOmCnqEu92Fr1Mu4mxK.woff2) format('woff2');
}
@media screen and (max-width: 480px) {
body,
input,
select,
textarea {
font-size: 12pt;
}
}
@media screen and (max-width: 480px) {
html,
body {
min-width: 320px;
}
}
@media screen and (max-width: 736px) {
body,
input,
select,
textarea {
font-size: 12pt;
}
}
/*
@media screen and (max-width: 736px) {
html,
body {
overflow-x: hidden;
}
}
*/
@media screen and (max-width: 980px) {
body,
input,
select,
textarea {
font-size: 12pt;
}
}
@media screen and (max-width: 1280px) {
body,
input,
select,
textarea {
font-size: 11.5pt;
}
}
@media screen and (max-width: 1680px) {
body,
input,
select,
textarea {
font-size: 13pt;
}
}
.parallax::after {
/* Display and position the pseudo-element */
content: " ";
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
/* Move the pseudo-element back away from the camera,
* then scale it back up to fill the viewport.
* Because the pseudo-element is further away, it appears to move more slowly, like in real life. */
transform: translateZ(-1px) scale(1.5);
}
.hidden {
display: none !important;
}
.nocroll {
overflow: hidden !important;
}
.content {
display: grid;
grid-template-rows: auto;
grid-column-gap: 0;
grid-row-gap: 0;
grid-template-columns: 1fr 1fr 1fr;
grid-template-areas:
"nav nav nav"
"header header header"
"projects projects projects"
"contact contact contact"
"footer footer footer";
overflow-x: hidden;
overflow-y: auto;
perspective: 2px;
height: 100vh;
scroll-behavior: smooth;
}
@media only screen and (max-width: 980px) {
.content {
grid-template-columns: 1fr 1fr;
grid-template-areas:
"nav nav"
"header header"
"projects projects"
"contact contact"
"footer footer";
}
}
@media only screen and (max-width: 736px) {
.content {
grid-template-columns: 1fr;
grid-template-areas:
"nav"
"header"
"projects"
"contact"
"footer";
}
}
.content > * {
background: white;
}
.content > nav {
grid-area: nav;
position: absolute;
background: transparent;
color: #ffffff;
width: 100%;
height: 3.5em;
line-height: 3.5em;
z-index: 10;
user-select: none;
}
.content > nav > .mobile_menu {
position: absolute;
width: 100vw;
height: calc(100vh - 3.5em);
z-index: 100;
top: 3.5em;
left: 0;
background-color: #060612;
}
.content > nav > .mobile_menu > .container {
position: relative;
}
.content > nav > .mobile_menu > .container > .list {}
.content > nav > .mobile_menu > .container > .list > .item {
display: block;
background-color: #1a1233;
width: 100%;
text-decoration: none;
font-weight: 900;
color: #ffffff;
line-height: 4em;
font-size: 1.25em;
padding-left: 1em;
position: relative;
cursor: pointer;
}
.content > nav > .mobile_menu > .container > .list > .active {
background: #480070;
}
.content > nav > .mobile_menu > .container > .list > .language > .subitem {
display: block;
width: 100%;
text-decoration: none;
color: #ffffff;
background-color: #9535fc;
position: absolute;
left: 0;
padding-left: 3em;
}
.content > nav > .mobile_menu > .container > .list > .item > .subitem:nth-child(2n) {
margin-top: 4em;
}
.content > nav > .nav_toggle {
position: absolute;
top: 0;
left: 0;
background-color: #9535fc;
width: 3.5em;
height: 3.5em;
cursor: pointer;
display: none;
}
.content > nav > .nav_toggle > .button_container {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-53%, -46%);
margin: 0;
text-decoration: none;
color: #aa5bff;
font-weight: 900;
font-size: 2em;
}
.content > nav > .logo {
text-decoration: none;
color: #ffffff;
margin-left: 1.5em;
}
.content > nav > .list {
cursor: default;
user-select: none;
float: right;
margin-right: 1em;
}
.content > nav > .list > .item {
display: inline-block;
padding: 0 1em;
text-decoration: none;
color: #ffffff;
position: relative;
cursor: pointer;
}
.content > nav > .list > .item > .subitem {
display: block;
padding: 0 1em;
right: 0;
text-decoration: none;
color: #ffffff;
background: #1a1233;
position: absolute;
}
.content > nav > .list > .item > .subitem:nth-child(2n) {
margin-top: 4em;
}
.content > nav > .list > .active {
color: #9535fc;
}
@media only screen and (max-width: 736px) {
.content > nav {
background: rgba(6, 6, 18, 0.95);
user-select: none;
}
.content > nav > .logo {
margin: 0;
text-align: center;
position: absolute;
left: 50%;
transform: translateX(-50%)
}
.content > nav > .list {
display: none;
}
.content > nav > .nav_toggle {
display: block;
}
}
.content > header {
grid-area: header;
min-height: 100vh;
box-shadow: 0 0.25em 0.5em 0 rgba(0, 0, 0, 0.25);
background: rgba(6, 6, 18, 0.95);
}
.content > header {
min-height: 35em;
height: 100vh;
position: relative;
display: flex;
justify-content: center;
align-items: center;
}
.content > header::after {
background-size: cover;
background-image: url("../images/banner.webp");
z-index: -1;
}
.content > header > .container {
user-select: none;
}
.content > header > .container > .text {
display: inline-block;
user-select: text;
}
.content > header > .container > .text > .container {
display: flex;
flex-direction: column;
justify-content: center;
}
.content > header > .container > .text > .container > h1 {
font-size: 2.5em;
line-height: 1.5em;
color: #ffffff;
margin: 0;
padding: 0;
}
.content > header > .container > .text > .container > span {
font-size: 1.25em;
line-height: 1.75em;
text-align: right;
color: #ffffff;
}
.content > header > .container > .logo {
user-select: none;
}
.content > header > .container > .logo > img {
width: 18em;
height: 18em;
margin-left: 3em;
display: inline-block;
vertical-align: middle;
position: relative;
}
.content > header > .container > .filler {
display: block;
height: 2em;
}
.content > header > .scroll_arrow {
position: absolute;
bottom: 1.25em;
z-index: 8;
user-select: none;
}
.content > header > .scroll_arrow > a {
text-decoration: none;
color: #ffffff;
font-size: 4em;
padding: 1em 1em 0.25em 1em;
}
@media only screen and (max-width: 980px) {
.content > header > .container > .logo > img {
margin: 0;
display: block;
margin: 0 auto;
}
.content > header > .container > .text {
display: block;
}
.content > header > .container > .text > .container > span,
.content > header > .container > .text > .container > h1 {
text-align: center;
}
}
@media only screen and (max-width: 736px) {
.content > header > .container > .text > .container > h1 {
font-size: 1.5em;
}
.content > header > .container > .text > .container > span {
font-size: 1em;
}
.content > header > .container > .logo > img {
width: 9em;
height: 9em;
}
}
.content > .projects {
grid-area: projects;
background-color: #060612;
text-align: center;
color: #ffffff;
width: 100%;
margin-bottom: 1.25em;
}
.content > .projects > .container {
margin: 1em 2em;
display: grid;
grid-template-rows: auto;
grid-column-gap: 0;
grid-row-gap: 0;
grid-template-columns: 1fr 1fr 1fr 1fr 1fr 1fr;
grid-template-areas:
"description description description description description description"
"watchtogether watchtogether superbot superbot toyneuralnet toyneuralnet"
". invoicegenerator invoicegenerator ctf ctf ."
}
.content > .projects > .container > .description {
grid-area: description;
margin: 1em auto;
width: 85%;
max-width: 78em;
}
.content > .projects > .container > .description > h1 {
font-size: 2em;
}
.content > .projects > .container > .description > hr {
width: 60%;
margin: 1em auto 1em;
border-color: #9535fc;
border-width: .1em;
}
.content > .projects > .container > .project {
display: block;
margin: .75em auto;
width: 80%;
/* background-color: white;*/
}
.content > .projects > .container > .project > .icon {
background-color: #1a1233;
height: 6em;
width: 6em;
position: relative;
border-radius: 100%;
margin: auto;
user-select: none;
}
.content > .projects > .container > .project > .icon > img {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
height: 2.25em;
width: 2.25em;
}
.content > .projects > .container > .project > h1 {
font-size: 1.35em;
line-height: 1.5em;
}
.content > .projects > .container > .project > p {}
.content > .projects p {
font-size: 1.25em;
line-height: 1.75em;
}
.content > .projects p > a {
text-decoration: underline;
color: #9535fc;
}
.content > .projects > .container > .watchtogether {
grid-area: watchtogether;
}
.content > .projects > .container > .superbot {
grid-area: superbot;
}
.content > .projects > .container > .toyneuralnet {
grid-area: toyneuralnet;
}
.content > .projects > .container > .invoicegenerator {
grid-area: invoicegenerator;
}
.content > .projects > .container > .ctf {
grid-area: ctf;
}
@media only screen and (max-width: 980px) {
.content > .projects > .container {
grid-template-columns: 1fr 1fr 1fr 1fr;
grid-template-areas:
"description description description description"
"watchtogether watchtogether superbot superbot"
"toyneuralnet toyneuralnet invoicegenerator invoicegenerator"
". ctf ctf ."
}
}
@media only screen and (max-width: 736px) {
.content > .projects > .container {
grid-template-columns: 1fr;
grid-template-areas:
"description"
"watchtogether"
"superbot"
"toyneuralnet"
"invoicegenerator"
"ctf"
}
.content > .projects > .container > .description > h1 {
font-size: 1.5em;
}
.content > .projects p {
font-size: 1em;
}
.content > .projects > .container > .project > h1 {
font-size: 1.2em;
}
}
.content > .contact {
grid-area: contact;
background-color: #9535fc;
text-align: center;
color: #ffffff;
}
.content > .contact > .container {
margin: 9em auto;
width: 70%;
}
.content > .contact > .container > h1 {
font-size: 2em;
line-height: 1.5em;
/* letter-spacing: -0.025em;*/
}
.content > .contact > .container > p {
font-size: 1.25em;
line-height: 1.75em;
margin-top: -0.75em;
}
.content > .contact > .container > p > a {
color: #ffffff;
/* text-decoration: none;*/
}
@media only screen and (max-width: 980px) {
.content > .contact > .container {
margin: 7em auto;
}
}
@media only screen and (max-width: 736px) {
.content > .contact > .container {
margin: 6.75em auto;
}
.content > .contact > .container > h1 {
font-size: 1.5em;
}
.content > .contact > .container > p {
font-size: 1em;
}
}
.content > footer {
grid-area: footer;
background-color: #060612;
color: #ffffff;
}
.content > footer > .container {
margin: 8em auto 0;
padding-bottom: 7em;
width: 80%;
position: relative;
}
.content > footer > .container > .social {
user-select: none;
margin: 1.75em auto;
width: 80%;
text-align: center
}
.content > footer > .container > .social > a {
color: #9535fc;
margin: .25em;
}
.content > footer > .container > .social > a > svg {
fill: #9535fc;
width: 2.5em;
height: 2.5em;
margin: 0 0.25em;
}
.content > footer > .container > .social > a > svg:hover {
-moz-transform: scale(1.1);
-webkit-transform: scale(1.1);
tansform: scale(1.1);
}
.content > footer > .container > .copyright {
user-select: none;
margin: 1em auto;
text-align: center
}
.content > footer > .container > .copyright > p {
display: inline-block;
user-select: text;
margin: 0;
line-height: 1.75em;
font-size: 1.1em;
}
.content > footer > .container > .copyright > span {
user-select: none;
margin: 0 1.25em;
}
.content > footer > .container > .scroll_up {
position: absolute;
left: 50%;
transform: translateX(-50%);
bottom: 0;
z-index: 8;
user-select: none;
}
.content > footer > .container > .scroll_up > a {
text-decoration: none;
color: #ffffff;
font-size: 4em;
padding: .25em 1.25em 0.25em 1.25em;
}
@media only screen and (max-width: 1680px) {
.content > footer > .container > .copyright > .second_span {
display: none;
}
.content > footer > .container > .copyright > .trademarks {
display: block;
}
}
@media only screen and (max-width: 980px) {
.content > footer > .container {
margin: 7em auto 0;
padding-bottom: 6em;
}
.content > footer > .container > .social > a > svg {
width: 2.25em;
height: 2.25em;
}
.content > footer > .container > .copyright > span {
display: none;
}
.content > footer > .container > .copyright > p {
display: block;
}
}
@media only screen and (max-width: 736px) {
.content > footer > .container > .social > a > svg {
width: 1.75em;
height: 1.75em;
}
.content > footer > .container > .social > a > svg:hover {
transform: none;
}
.content > footer > .container > .copyright > p {
font-size: 0.9em;
}
}
+172
View File
@@ -0,0 +1,172 @@
baseURL = "https://maik.dev/"
# baseURL = "http://localhost:1313/"
title = "Maik de Kruif"
languageCode = "en-us"
# theme = "hello-friend-ng"
theme = "maik-blog"
paginate = 10
rssLimit = 10
copyright = "© Maik de Kruif (maik_dev). All rights reserved."
PygmentsCodeFences = true
PygmentsStyle = "monokai"
archetypeDir = "archetypes"
contentDir = "content"
dataDir = "data"
layoutDir = "layouts"
publishDir = "public"
buildDrafts = false
buildFuture = false
buildExpired = false
canonifyURLs = true
enableRobotsTXT = true
enableGitInfo = false
enableEmoji = true
enableMissingTranslationPlaceholders = false
disableRSS = false
disableSitemap = false
disable404 = false
disableHugoGeneratorInject = false
[permalinks]
posts = "/posts/:year/:month/:title/"
[author]
name = "Maik de Kruif"
[params]
dateform = "Jan 2, 2006"
dateformShort = "Jan 2"
dateformNum = "2006-01-02"
dateformNumTime = "2006-01-02 15:04 -0700"
# Metadata mostly used in document's head
description = "Hey there, my name is Maik de Kruif, I create websites, bots and other kinds of software. At the moment, I'm still studying computer science at Avans University of Applied Sciences. I am also a big fan of open-source software, which is why you'll find many of my projects on Github. And last but not least, I love playing around with cyber-security related stuff."
keywords = ""
images = [""]
homeSubtitle = "Maik de Kruif (maik_dev)"
# Prefix of link to the git commit detail page. GitInfo must be enabled.
# gitUrl = ""
# Set disableReadOtherPosts to true in order to hide the links to other posts.
disableReadOtherPosts = false
# Sharing buttons
# There are a lot of buttons preconfigured. If you want to change them,
# generate the buttons here: https://sharingbuttons.io
# and add them into your own `layouts/partials/sharing-buttons.html`
enableSharingButtons = true
# Integrate Javascript files or stylesheets by adding the url to the external assets or by
# linking local files with their path relative to the static folder, e.g. "css/styles.css"
customCSS = []
customJS = []
# Toggle this option need to rebuild SCSS, requires extended version of Hugo
justifyContent = false # Set "text-align: justify" to .post-content.
# Default theme "light" or "dark"
defaultTheme = "dark"
themeColor = "#252627"
# Colors for favicons
[params.favicon.color]
mask = "#252627"
msapplication = "#252627"
theme = "#252627"
[params.logo]
logoText = "$ cd /home/"
logoHomeLink = "/"
# Set true to remove the logo cursor entirely.
# logoCursorDisabled = false
# Set to a valid CSS color to change the cursor in the logo.
# logoCursorColor = "#67a2c9"
# Set to a valid CSS time value to change the animation duration, "0s" to disable.
# logoCursorAnimate = "2s"
# Uncomment this if you want a portrait on your start page
# [params.portrait]
# path = "/img/image.jpg"
# alt = "Portrait"
# maxWidth = "50px"
# Social icons
[[params.social]]
name = "email"
url = "mailto:maik@maik.dev"
[[params.social]]
name = "github"
url = "https://github.com/maikka39"
[[params.social]]
name = "linkedin"
url = "https://www.linkedin.com/in/maikdekruif/"
[[params.social]]
name = "stackoverflow"
url = "https://stackoverflow.com/users/9146982/maik-de-kruif"
[[params.social]]
name = "rss"
url = "posts/index.xml"
[[params.social]]
name = "twitter"
url = "https://twitter.com/maik_dev"
# [[params.social]]
# name = "hackerrank"
# url = "https://www.hackerrank.com/maik_dev"
[[params.social]]
name = "instagram"
url = "https://www.instagram.com/maik.dev/"
# [[params.social]]
# name = "medium"
# url = "https://medium.com/@maikka39"
[[params.social]]
name = "steam"
url = "https://steamcommunity.com/id/maikka39"
[[params.social]]
name = "reddit"
url = "https://www.reddit.com/user/maikka39"
[[params.social]]
name = "lbry"
url = "https://lbry.tv/@Maik:c"
[[params.social]]
name = "youtube"
url = "https://www.youtube.com/channel/UCepNO6s7q0Kcyn8cc3rZNFA"
[languages]
[languages.en]
subtitle = "maik.dev"
weight = 1
copyright = 'All rights reserved.'
[menu]
[[menu.main]]
identifier = "about"
name = "About"
url = "about/"
[[menu.main]]
identifier = "portfolio"
name = "Portfolio"
url = "portfolio/"
[[menu.main]]
identifier = "posts"
name = "Posts"
url = "posts/"
+15
View File
@@ -0,0 +1,15 @@
+++
author = "Maik de Kruif"
title = "About"
date = 2020-07-06T16:33:01+02:00
description = ""
images = []
tags = [
"aboutme",
]
categories = [
"me",
]
+++
Hey there, my name is Maik de Kruif, I create websites, bots and other kinds of software. At the moment, I'm still studying computer science at Avans University of Applied Sciences. I am also a big fan of open-source software, which is why you'll find many of my projects on [GitHub](https://github.com/maikka39"). And last but not least, I love playing around with cyber-security related stuff.
+18
View File
@@ -0,0 +1,18 @@
+++
author = "Maik de Kruif"
title = "Portfolio"
date = 2020-07-06T16:37:43+02:00
description = "Coming soon!"
images = []
tags = [
"portfolio",
"aboutme",
]
categories = [
"me",
]
+++
## Coming soon
Please come back later.
+14
View File
@@ -0,0 +1,14 @@
+++
author = "Maik de Kruif"
title = "Test Post"
date = 2020-07-08T16:41:25+02:00
description = "My first post on this website."
tags = [
"untagged",
]
categories = [
"uncategorized",
]
+++
This page should be working
-288
View File
@@ -1,288 +0,0 @@
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-136337666-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'UA-136337666-1');
</script>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<!-- <link href="https://fonts.googleapis.com/css?family=Roboto|Roboto+Mono" rel="stylesheet">-->
<link rel="icon" href="/favicon.ico" type="image/x-icon" />
<title>Error 404 (Not Found)</title>
<style>
html,
body {
margin: 0;
padding: 0;
}
body {
font-family: 'Roboto', sans-serif;
background: #060612;
overflow-x: hidden;
/* min-height: 80vh;*/
}
@font-face {
font-family: 'Roboto';
font-style: normal;
font-display: fallback;
font-weight: 400;
src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v19/KFOmCnqEu92Fr1Mu4mxK.woff2) format('woff2');
}
@font-face {
font-family: 'Roboto Mono';
font-style: normal;
font-display: swap;
font-weight: 400;
src: local('Roboto Mono'), local('RobotoMono-Regular'), url(https://fonts.gstatic.com/s/robotomono/v6/L0x5DF4xlVMF-BfR8bXMIjhLq38.woff2) format('woff2');
}
@media screen and (max-width: 480px) {
body,
input,
select,
textarea {
font-size: 12pt;
}
}
@media screen and (max-width: 480px) {
html,
body {
min-width: 320px;
}
}
@media screen and (max-width: 736px) {
body,
input,
select,
textarea {
font-size: 12pt;
}
}
/*
@media screen and (max-width: 736px) {
html,
body {
overflow-x: hidden;
}
}
*/
@media screen and (max-width: 980px) {
body,
input,
select,
textarea {
font-size: 12pt;
}
}
@media screen and (max-width: 1280px) {
body,
input,
select,
textarea {
font-size: 11.5pt;
}
}
@media screen and (max-width: 1680px) {
body,
input,
select,
textarea {
font-size: 13pt;
}
}
.content {
margin: 4em auto;
width: 45%;
color: #ffffff;
}
.content>.info {
font-size: 1.25em;
line-height: 1.75em;
display: inline-block;
width: 60%;
}
.content>.info>.logo {
position: relative;
height: 10em;
user-select: none;
}
.content>.info>.logo>a>img {
width: 10em;
height: 10em;
}
.content>.info>.short {
margin: 1em 0;
}
.content>.info>.short>.container {
width: 100%;
}
.content>.info>.short>.container>b {
margin-right: 0.5em;
}
.content>.info>.explanation {
margin: 1em 0;
}
.content>.info>.explanation>p>code {
color: #9535fc;
font-family: 'Roboto Mono', monospace;
}
.content>.info>.explanation>p>span {}
.content>.robot {
display: inline-block;
width: 38%;
}
.content>.robot>svg {
fill: #ffffff;
width: 15em;
height: 15em;
}
@media screen and (max-width: 1680px) {
.content {
width: 55%;
}
}
@media only screen and (max-width: 980px) {
.content {
width: 100%;
}
.content>.info {
margin: auto;
display: block;
width: 60%;
}
.content>.info>.logo {
height: 14em;
}
.content>.info>.logo>a {
position: absolute;
left: 50%;
transform: translateX(-50%);
}
.content>.info>.logo>a>img {
width: 14em;
height: 14em;
}
.content>.info>.short {
position: relative;
height: 1.75em;
text-align: center;
}
.content>.info>.short>.container {
position: absolute;
left: 50%;
transform: translateX(-50%);
}
.content>.robot {
display: none;
}
}
@media only screen and (max-width: 736px) {
.content>.info {
font-size: 1em;
}
.content>.info>.logo {
height: 10em;
}
.content>.info>.logo>a>img {
width: 10em;
height: 10em;
}
}
</style>
</head>
<body>
<div id="content" class="content">
<div class="info">
<div class="logo">
<a href="/"><img src="/assets/images/logo.svg" alt=""></a>
</div>
<div class="short">
<div class="container">
<b>404.</b><span>That's an error</span>
</div>
</div>
<div class="explanation">
<p>The requested URL <code id="request_url"></code> was not found on this server. <span>That’s all we know.</span></p>
</div>
</div>
<div class="robot">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1000 1000">
<title>Robot</title>
<g>
<g transform="translate(0.000000,512.000000) scale(0.100000,-0.100000)">
<path d="M4741.4,5008.9c-392.7-63.2-737.5-247.1-1017.2-542.1c-260.5-275.9-436.8-659-461.7-1001.9c-11.5-153.2-11.5-157.1-72.8-185.8c-34.5-17.3-91.9-67.1-128.4-111.1l-63.2-78.5l-118.8,9.6c-105.4,7.7-126.4,17.3-182,76.6c-114.9,120.7-283.5,113-400.4-19.2c-55.5-63.2-59.4-78.5-51.7-174.3c7.7-92,19.2-114.9,78.5-168.6c120.7-111.1,254.8-111.1,367.8,1.9c61.3,63.2,74.7,67.1,191.6,67.1c118.8,0,128.3-3.8,201.1-76.6c42.1-42.1,97.7-80.5,124.5-88.1l47.9-11.5v-396.5c0-448.3,13.4-498.1,143.7-613c130.3-113,151.3-116.9,699.2-116.9h498.1v-134.1v-134.1h-569c-636,0-676.2-7.7-733.7-126.4l-28.7-59.4l-210.7-9.6c-235.6-11.5-318-40.2-425.3-153.3c-134.1-137.9-166.7-354.4-80.4-524.9l47.9-93.9L2427.3,9.1l-170.5-335.2l-76.6,7.7l-76.6,5.7L1992.4-79c-61.3,126.4-159,329.5-218.4,450.2l-107.3,216.5v268.2c0,256.7-1.9,268.2-47.9,312.2c-24.9,26.8-67,47.9-93.9,47.9c-136,0-164.7-63.2-164.7-373.5V603H1276c-70.9,0-92,9.6-134.1,59.4c-47.9,55.6-49.8,69-49.8,289.3c0,228,0,229.9-55.6,285.4c-70.9,70.9-124.5,70.9-195.4,0c-55.6-55.6-55.6-57.5-55.6-295c0-130.3,9.6-266.3,23-302.7c67-201.1,229.9-319.9,461.7-337.1l137.9-11.5l199.2-417.6l197.3-415.7l-23-97.7c-67-281.6,180.1-553.6,463.6-511.5c252.9,38.3,421.4,308.4,339.1,544c-19.2,53.7-5.7,86.2,168.6,429.1l187.7,369.7l159,5.7l157.1,5.8v-911.9c0-590,7.7-925.3,19.2-950.2c23-42.2,116.9-93.9,172.4-93.9c36.4,0,38.3-9.6,38.3-341v-339.1l-88.1-46c-251-134.1-362.1-440.6-249-682c46-99.6,176.2-233.7,277.8-285.4l59.4-32.5v-342.9V-4167H3364c-128.3,0-220.3-23-245.2-63.2c-7.7-13.4-15.3-141.8-15.3-285.4V-4780h766.3H4636v825.6v825.7l-55.5,55.5c-51.7,51.7-67.1,55.6-191.6,55.6c-122.6,0-136,3.8-136,38.3c0,34.5,13.4,38.3,114.9,38.3c61.3,0,134.1,9.6,160.9,21.1c97.7,46,107.3,101.5,107.3,657.1v509.6h344.8h342.9l5.7-528.7l5.8-528.7l70.9-65.1c67-61.3,80.4-65.1,206.9-65.1c120.7,0,134.1-3.8,134.1-38.3c0-34.5-13.4-38.3-124.5-38.3c-141.8,0-245.2-34.5-275.9-91.9c-13.4-26.8-21.1-308.4-21.1-854.4V-4780h766.3h766.3v275.9c0,337.1,0,337.1-233.7,337.1h-149.4v344.8v344.8l82.4,40.2c180.1,90,279.7,237.5,296.9,432.9c17.3,227.9-80.4,413.8-272,515.3l-107.3,55.5v341v339.1h67c47.9,0,84.3,15.3,114.9,47.9l47.9,46v931v929.1h172.4h172.4l191.6-383.1c166.7-333.3,189.6-388.9,172.4-431c-68.9-182,32.6-413.8,218.4-500c166.6-78.6,327.6-53.6,463.6,72.8c113,105.4,157.1,243.3,122.6,392.7l-21.1,101.5l199.2,417.6l201.2,415.7l134.1,11.5c226,21.1,394.6,145.6,459.7,341c13.4,36.4,23,172.4,23,302.7c0,237.5,0,239.5-55.5,295c-61.3,59.4-95.8,67-160.9,32.6c-80.4-42.1-88.1-72.8-90-323.7c0-237.5,0-241.4-53.6-291.2c-40.2-40.2-72.8-51.7-134.1-51.7h-80.5v239.4c0,310.3-28.7,373.5-164.7,373.5c-26.8,0-69-21.1-93.9-47.9c-46-44.1-47.9-55.6-47.9-316.1V581.9l-224.1-450.2L7883-316.5h-76.6h-76.6L7565.1,14.9l-164.8,329.5l47.9,93.9c86.2,170.5,53.7,388.9-78.5,524.9c-109.2,114.9-189.6,143.7-427.2,153.3l-212.6,7.7l-32.6,67c-53.6,114.9-92,120.7-749,120.7H5364v134.1V1580h507.6c415.7,0,521.1,5.7,580.4,28.7c84.3,36.4,145.6,90,201.2,182c38.3,63.2,42.1,97.7,51.7,496.1l9.6,429.1l91.9,23c55.6,13.4,116.9,47.9,155.2,84.3c53.6,51.7,74.7,59.4,168.6,59.4c93.8,0,113-7.7,176.2-67.1c118.8-111.1,249-113,367.8-3.8c86.2,78.5,111.1,210.7,55.6,312.3c-36.4,67-160.9,141.8-235.6,141.8c-72.8,0-168.6-49.8-212.7-113c-38.3-53.6-53.6-59.4-141.7-59.4c-92,0-103.5,5.7-176.3,84.3c-49.8,55.5-103.4,92-155.2,105.4l-78.6,21.1l-13.4,143.7c-51.7,567-385,1082.3-881.2,1360.1c-233.7,130.3-480.8,199.2-768.2,210.7C4952.1,5022.4,4804.6,5018.5,4741.4,5008.9z M5411.9,4579.8c331.4-113,624.5-365.9,772-666.7c132.2-266.3,137.9-308.4,137.9-1180v-770.1l-1335.2,3.8l-1337.1,5.7v804.6v804.6l51.7,139.8c76.6,212.6,160.9,341,341,523c132.2,132.2,197.3,180.1,329.5,247.1c243.3,118.8,398.5,153.2,666.6,145.6C5216.5,4633.5,5287.3,4622,5411.9,4579.8z M6321.8-220.8v-1149.4H4980.8h-1341v1149.4V928.6h1341h1340.9V-220.8z M4252.9-2174.7v-383.1h-191.6h-191.6v383.1v383.1h191.6h191.6V-2174.7z M6091.9-2174.7v-383.1h-191.6h-191.6v383.1v383.1h191.6h191.6V-2174.7z M4252.9-3783.9V-4167h-191.6h-191.6v383.1v383.1h191.6h191.6V-3783.9z M6091.9-3783.9V-4167h-191.6h-191.6v383.1v383.1h191.6h191.6V-3783.9z" />
<path d="M4166.7,3487.9c-113-51.7-147.5-88.1-199.2-203.1c-126.4-277.8,76.6-582.4,383.1-580.4c432.9,3.8,574.7,586.2,187.7,779.7C4410,3547.3,4295,3549.2,4166.7,3487.9z" />
<path d="M5461.7,3484.1c-386.9-193.5-247.1-775.8,187.8-779.7c312.2-1.9,511.5,308.4,377.4,590c-51.7,113-88.1,147.5-203,199.2C5703,3549.2,5586.2,3545.4,5461.7,3484.1z" />
<path d="M4616.9,2470.7c-13.4-15.3-23-49.8-23-76.6c0-101.5,17.3-105.4,406.1-105.4c390.8,0,408,3.8,408,109.2c0,91.9-40.2,101.5-419.5,101.5C4703.1,2499.5,4636,2493.7,4616.9,2470.7z" />
<path d="M4559.4,277.3V162.4h421.4h421.4v114.9v114.9h-421.4h-421.4V277.3z" />
<path d="M4559.4-125v-134.1h421.4h421.4V-125V9.1h-421.4h-421.4V-125z" />
<path d="M4559.4-565.6v-114.9h421.4h421.4v114.9v115h-421.4h-421.4V-565.6z" />
</g>
</g>
</svg>
</div>
</div>
<script>
"use strict";
window.onload = function() {
let wl = window.location.pathname;
let out = wl.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
document.getElementById("request_url").innerHTML = out;
}
</script>
</body></html>
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

-215
View File
@@ -1,215 +0,0 @@
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-136337666-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() {
dataLayer.push(arguments);
}
gtag('js', new Date());
gtag('config', 'UA-136337666-1');
</script>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link rel="stylesheet" href="assets/styles/styles.css" media="all">
<!-- <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Roboto" media="all">-->
<link rel="icon" href="favicon.ico" type="image/x-icon" />
<link rel="canonical" href="https://maik.dev/">
<title>Maik de Kruif (maikka39)</title>
<meta name="description" content="Hey there, my name is Maik de Kruif, I create websites, bots and other kinds of software. At the moment, I'm still studying computer science at Avans University of Applied Sciences. I am also a big fan of open-source software, which is why you'll find many of my projects on Github. And last but not least, I love playing around with cyber-security related stuff." />
<meta property="og:title" content="Maik de Kruif (maikka39)" />
<meta property="og:type" content="article" />
<meta property="og:url" content="https://maik.dev/" />
<meta property="og:image" content="https://maik.dev/assets/screenshot.png" />
<meta property="og:site_name" content="Maik de Kruif (maikka39)" />
<meta property="og:description" content="Hey there, my name is Maik de Kruif, I create websites, bots and other kinds of software. At the moment, I'm still studying computer science at Avans University of Applied Sciences. I am also a big fan of open-source software, which is why you'll find many of my projects on Github. And last but not least, I love playing around with cyber-security related stuff." />
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Maik de Kruif (maikka39)" />
<meta name="twitter:description" content="Hey there, my name is Maik de Kruif, I create websites, bots and other kinds of software. At the moment, I'm still studying computer science at Avans University of Applied Sciences. I am also a big fan of open-source software, which is why you'll find many of my projects on Github. And last but not least, I love playing around with cyber-security related stuff." />
<meta name="twitter:image" content="https://maik.dev/assets/screenshot.png" />
<meta name="twitter:site" content="@maik_dev" />
<meta name="twitter:creator" content="@maik_dev" />
</head>
<body>
<div id="content" class="content">
<div id="top"></div>
<nav>
<div id="mobile_menu" class="mobile_menu dropdown-content dropbtn hidden">
<div class="container">
<div class="list">
<a class="item active" href="#">Home</a>
<a class="item" href="#contact">Contact</a>
<div class="item language dropbtn" onclick="select_language(this)">Language
<a class="subitem dropdown-content hidden" href="/">English</a>
<a class="subitem dropdown-content hidden" href="/nl/">Nederlands</a>
</div>
</div>
</div>
</div>
<div href="#nav_toggle" class="nav_toggle dropbtn" onclick="toggle_mobile_menu()">
<div class="button_container dropbtn"><span id="open_mobile_nav" class="dropbtn">&#9776;</span><span id="close_mobile_nav" class="dropbtn hidden">&#128939;</span></div>
</div>
<a class="logo" href="/">maik.dev</a>
<div class="list">
<a class="item active" href="#">Home</a>
<a class="item" href="#contact">Contact</a>
<div class="item language dropbtn" onclick="select_language(this)">Language
<a class="subitem dropdown-content hidden" href="/">English</a>
<a class="subitem dropdown-content hidden" href="/nl/">Nederlands</a>
</div>
</div>
</nav>
<header class="parallax">
<div class="container">
<div class="text">
<div class="container">
<h1>Maik de Kruif</h1>
<span>maikka39</span>
</div>
</div>
<span class="logo">
<img src="assets/images/logo.svg" alt="Logo">
</span>
<span class="filler"></span>
</div>
<div class="scroll_arrow"><a href="#aboutme">&#8964;</a></div>
</header>
<div class="projects">
<div id="aboutme" class="container">
<div class="description">
<h1>About me</h1>
<p>Hey there, my name is Maik de Kruif, I create websites, bots and other kinds of software. At the moment, I'm still studying computer science at Avans University of Applied Sciences. I am also a big fan of open-source software, which is why you'll find many of my projects on <a href="https://github.com/maikka39" target="_blank">Github</a>. And last but not least, I love playing around with cyber-security related stuff.</p>
<hr>
</div>
<div class="project watchtogether">
<div class="icon"><img src="assets/images/project_placeholder.svg" alt=""></div>
<h1>WatchTogether</h1>
<p>WatchTogether is a way to watch YouTube videos together with others. Originally designed for watching <a href="https://www.youtube.com/playlist?list=PLYH8WvNV1YEn_iiBMZiZ2aWugQfN1qVfM" target="_blank">Meme Review</a> episodes with friends, WatchTogether can also be used to watch any YouTube video. <a href="https://github.com/maikka39/WatchTogether" target="_blank">Github</a></p>
</div>
<div class="project superbot">
<div class="icon"><img src="assets/images/project_placeholder.svg" alt=""></div>
<h1>SuperBot</h1>
<p>A bot for the popular chat platform Discord. With this bot you can moderate your server, play music, get statistics for your favorite games and have fun with some other little perks. Github: click <a href="https://github.com/maikka39/SuperBot" target="_blank">here</a>.</p>
</div>
<div class="project toyneuralnet">
<div class="icon"><img src="assets/images/project_placeholder.svg" alt=""></div>
<h1>Toy Neural Network</h1>
<p>This is a very basic Python Neural Network library based on the one built by <a href="https://shiffman.net/" target="_blank">Daniel Shiffman</a> in <a href="https://www.youtube.com/playlist?list=PLRqwX-V7Uu6aCibgK1PTWWu9by6XFdCfh" target="_blank">this</a> playlist but translated and improved in Python Check it out on <a href="https://github.com/maikka39/Toy-Neural-Network-Py" target="_blank">Github</a>!</p>
</div>
<!--
<div class="project magistra">
<div class="icon"><img src="assets/images/project_placeholder.svg" alt=""></div>
<h1>Magistra</h1>
<p>A client-side Android application for the Dutch school-management system Magister. It’s based on material design, uses secure SSL connections, and is of course entirely free. <a href="https://github.com/maikka39/Magistra">Github</a></p>
</div>
-->
<div class="project invoicegenerator">
<div class="icon"><img src="assets/images/project_placeholder.svg" alt=""></div>
<h1>InvoiceGenerator</h1>
<p>Using InvoiceGenerator you can easily fill in word templates with the correct prices and comments. This project was commissioned by <a href="http://www.akoestischafbouwen.nl/" target="_blank">Pennings akoestisch afbouwen</a> and made together with <a href="https://jdaats.nl/">Jesper van Daatselaar</a>. Source: <a href="https://github.com/maikka39/InvoiceGenerator" target="_blank">Github</a>.</p>
</div>
<div class="project ctf">
<div class="icon"><img src="assets/images/project_placeholder.svg" alt=""></div>
<h1>CTF</h1>
<p>In my spare time i'm often busy playing CTFs. This is a game mode in which several attackers (hackers) must steal a flag, saved on an (purposefully) insecure server and submit is to the organizer. <a href="https://medium.com/@DRX_Sicher/ctf-explained-6c7d4417305e" target="_blank">More info</a>.</p>
</div>
</div>
</div>
<div class="contact">
<div id="contact" class="container">
<h1>Get in Touch!</h1>
<p>Do you have a question? Contact me at <a href="mailto:info@maik.dev">info@maik.dev</a></p>
</div>
</div>
<footer>
<div class="container">
<div class="social">
<a href="https://twitter.com/maik_dev" target="_blank"><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<title>Twitter</title>
<path d="M23.954 4.569c-.885.389-1.83.654-2.825.775 1.014-.611 1.794-1.574 2.163-2.723-.951.555-2.005.959-3.127 1.184-.896-.959-2.173-1.559-3.591-1.559-2.717 0-4.92 2.203-4.92 4.917 0 .39.045.765.127 1.124C7.691 8.094 4.066 6.13 1.64 3.161c-.427.722-.666 1.561-.666 2.475 0 1.71.87 3.213 2.188 4.096-.807-.026-1.566-.248-2.228-.616v.061c0 2.385 1.693 4.374 3.946 4.827-.413.111-.849.171-1.296.171-.314 0-.615-.03-.916-.086.631 1.953 2.445 3.377 4.604 3.417-1.68 1.319-3.809 2.105-6.102 2.105-.39 0-.779-.023-1.17-.067 2.189 1.394 4.768 2.209 7.557 2.209 9.054 0 13.999-7.496 13.999-13.986 0-.209 0-.42-.015-.63.961-.689 1.8-1.56 2.46-2.548l-.047-.02z" />
</svg></a>
<a href="https://plus.google.com/u/0/+maikka39" target="_blank"><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<title>Google+</title>
<path d="M7.635 10.909v2.619h4.335c-.173 1.125-1.31 3.295-4.331 3.295-2.604 0-4.731-2.16-4.731-4.823 0-2.662 2.122-4.822 4.728-4.822 1.485 0 2.479.633 3.045 1.178l2.073-1.994c-1.33-1.245-3.056-1.995-5.115-1.995C3.412 4.365 0 7.785 0 12s3.414 7.635 7.635 7.635c4.41 0 7.332-3.098 7.332-7.461 0-.501-.054-.885-.12-1.265H7.635zm16.365 0h-2.183V8.726h-2.183v2.183h-2.182v2.181h2.184v2.184h2.189V13.09H24" />
</svg></a>
<a href="https://github.com/maikka39" target="_blank"><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<title>GitHub</title>
<path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12" />
</svg></a>
<a href="https://wakatime.com/@maik_dev" target="_blank"><svg role="img" viewBox="0 0 256 256" xmlns="http://www.w3.org/2000/svg">
<title>WakaTime</title>
<path d="M128,0 C57.308,0 0,57.308 0,128 C0,198.693 57.308,256 128,256 C198.693,256 256,198.693 256,128 C256,57.308 198.693,0 128,0 M128,33.805 C179.939,33.805 222.195,76.061 222.195,128 C222.195,179.94 179.939,222.195 128,222.195 C76.061,222.195 33.805,179.94 33.805,128 C33.805,76.061 76.061,33.805 128,33.805 M115.4993,155.6431 L115.3873,155.6431 C113.4353,155.6081 111.6083,154.6751 110.4343,153.1151 L81.5593,114.7321 C79.4553,111.9351 80.0173,107.9611 82.8143,105.8561 C85.6123,103.7511 89.5853,104.3131 91.6903,107.1111 L115.6833,139.0051 L122.5463,130.5271 C123.7493,129.0411 125.5603,128.1771 127.4723,128.1771 L127.4803,128.1771 C129.3973,128.1791 131.2093,129.0471 132.4103,130.5411 L139.0003,138.7281 L176.6923,90.1341 C178.8353,87.3681 182.8173,86.8651 185.5843,89.0111 C188.3493,91.1561 188.8533,95.1371 186.7073,97.9041 L144.1003,152.8371 C142.9143,154.3681 141.0883,155.2721 139.1503,155.2901 L139.0933,155.2901 C137.1743,155.2901 135.3583,154.4221 134.1553,152.9261 L127.4583,144.6071 L120.4253,153.2931 C119.2213,154.7811 117.4103,155.6431 115.4993,155.6431" />
</svg></a>
<a href="mailto:info@maik.dev" target="_blank"><svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<title>E-Mail</title>
<path d="M24 4.5v15c0 .85-.65 1.5-1.5 1.5H21V7.387l-9 6.463-9-6.463V21H1.5C.649 21 0 20.35 0 19.5v-15c0-.425.162-.8.431-1.068C.7 3.16 1.076 3 1.5 3H2l10 7.25L22 3h.5c.425 0 .8.162 1.069.432.27.268.431.643.431 1.068z" />
</svg></a>
</div>
<div class="copyright">
<p class="copyright">© Maik de Kruif (maikka39). All rights reserved.</p><span class="first_span">|</span>
<p class="not_affiliated">maikka39 is not affiliated with any company.</p><span class="second_span">|</span>
<p class="trademarks">Brand and product names mentioned are trademarks of their respective companies.</p>
</div>
<div class="scroll_up"><a href="#top">&#8963;</a></div>
</div>
<!-- <div style="height: 80vh; background: #ffffff;"></div>-->
</footer>
</div>
<script>
function select_language(el) {
for (i = 0; i < el.children.length; i++) {
el.children[i].classList.toggle("hidden");
}
};
function toggle_mobile_menu() {
document.getElementById("mobile_menu").classList.toggle("hidden");
document.getElementById("open_mobile_nav").classList.toggle("hidden");
document.getElementById("close_mobile_nav").classList.toggle("hidden");
document.getElementById("content").classList.toggle("nocroll");
};
function close_menus() {
var dropdowns = document.getElementsByClassName("dropdown-content");
var i;
for (i = 0; i < dropdowns.length; i++) {
var openDropdown = dropdowns[i];
if (!openDropdown.classList.contains('hidden')) {
openDropdown.classList.add('hidden');
}
};
if (document.getElementById("content").classList.contains('nocroll')) {
document.getElementById("content").classList.remove('nocroll');
};
if (document.getElementById("open_mobile_nav").classList.contains('hidden')) {
document.getElementById("open_mobile_nav").classList.remove('hidden');
document.getElementById("close_mobile_nav").classList.add('hidden');
};
};
window.onclick = function(event) {
if (!event.target.matches('.dropbtn')) {
close_menus();
}
};
window.onresize = function() {
close_menus();
};
</script>
</body>
</html>
-23
View File
@@ -1,23 +0,0 @@
<!DOCTYPE html>
<html lang="nl" dir="ltr">
<head>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-136337666-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-136337666-1');
</script>
<meta charset="utf-8">
<title></title>
</head>
<body>
<span>Coming Soon!</span>
</body>
</html>
-3
View File
@@ -1,3 +0,0 @@
User-agent: *
Sitemap: https://www.maik.dev/sitemap.xml
-18
View File
@@ -1,18 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9
http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<url>
<loc>https://maik.dev/</loc>
<lastmod>2019-03-15T14:24:37+00:00</lastmod>
<priority>1.00</priority>
</url>
<url>
<loc>https://maik.dev/nl/</loc>
<lastmod>2019-03-15T14:29:42+00:00</lastmod>
<priority>0.80</priority>
</url>
</urlset>
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 754 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.3 KiB

+33
View File
@@ -0,0 +1,33 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="700.000000pt" height="700.000000pt" viewBox="0 0 700.000000 700.000000"
preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.11, written by Peter Selinger 2001-2013
</metadata>
<g transform="translate(0.000000,700.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M3340 6189 c-479 -27 -931 -178 -1330 -444 -172 -115 -274 -198 -415
-340 -432 -433 -694 -971 -771 -1582 -21 -169 -21 -477 0 -646 105 -837 577
-1562 1295 -1991 329 -196 673 -314 1060 -362 167 -21 476 -21 645 0 1148 144
2068 984 2311 2111 32 150 44 243 54 418 30 513 -94 1040 -348 1482 -514 894
-1472 1413 -2501 1354z m1597 -1251 l23 -21 0 -1368 c0 -942 -3 -1376 -11
-1396 -14 -38 -57 -83 -96 -99 -27 -12 -254 -14 -1352 -14 -908 0 -1328 3
-1348 11 -38 14 -83 57 -99 96 -12 27 -14 261 -14 1400 l0 1367 22 23 21 23
1416 0 1415 0 23 -22z"/>
<path d="M2243 4852 c-34 -5 -73 -58 -73 -99 0 -25 8 -43 29 -64 56 -55 148
-30 167 45 7 28 -10 78 -31 96 -18 15 -66 26 -92 22z"/>
<path d="M2270 3320 l0 -910 1230 0 1230 0 0 910 0 910 -1230 0 -1230 0 0
-910z m1380 391 c0 -5 -43 -186 -95 -402 -52 -216 -95 -394 -95 -396 0 -2 -25
-3 -55 -3 -30 0 -55 4 -55 10 0 9 176 748 186 783 4 13 17 17 60 17 30 0 54
-4 54 -9z m-350 -175 l0 -74 -117 -45 c-65 -26 -145 -56 -178 -68 -33 -12 -63
-25 -67 -28 -4 -3 76 -39 177 -80 l185 -73 0 -74 c0 -41 -3 -74 -7 -74 -5 0
-125 51 -268 114 l-260 113 0 68 0 69 260 113 c143 62 263 113 268 113 4 0 7
-33 7 -74z m625 -21 c72 -31 172 -75 223 -97 l93 -41 -3 -65 -3 -66 -259 -113
c-142 -62 -263 -113 -268 -113 -4 0 -8 33 -8 73 l0 74 185 73 c102 40 184 75
182 76 -2 2 -84 34 -183 73 l-179 69 -3 76 -3 76 48 -19 c26 -11 107 -45 178
-76z"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

+19
View File
@@ -0,0 +1,19 @@
{
"name": "",
"short_name": "",
"icons": [
{
"src": "/android-chrome-192x192.png",
"sizes": "192x192",
"type": "image/png"
},
{
"src": "/android-chrome-512x512.png",
"sizes": "512x512",
"type": "image/png"
}
],
"theme_color": "#ffffff",
"background_color": "#ffffff",
"display": "standalone"
}
+8
View File
@@ -0,0 +1,8 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
comments: false
images:
---
+10
View File
@@ -0,0 +1,10 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
toc: false
images:
tags:
- untagged
---
+1
View File
@@ -0,0 +1 @@
// Some code could be here ...
+22
View File
@@ -0,0 +1,22 @@
// Mobile menu
const menuTrigger = document.querySelector(".menu-trigger");
const menu = document.querySelector(".menu");
const mobileQuery = getComputedStyle(document.body).getPropertyValue(
"--phoneWidth"
);
const isMobile = () => window.matchMedia(mobileQuery).matches;
const isMobileMenu = () => {
menuTrigger && menuTrigger.classList.toggle("hidden", !isMobile());
menu && menu.classList.toggle("hidden", isMobile());
};
isMobileMenu();
menuTrigger &&
menuTrigger.addEventListener(
"click",
() => menu && menu.classList.toggle("hidden")
);
window.addEventListener("resize", isMobileMenu);
+25
View File
@@ -0,0 +1,25 @@
// Toggle theme
const theme = window.localStorage && window.localStorage.getItem("theme");
const themeToggle = document.querySelector(".theme-toggle");
const isDark = theme === "dark";
var metaThemeColor = document.querySelector("meta[name=theme-color]");
if (theme !== null) {
document.body.classList.toggle("dark-theme", isDark);
isDark
? metaThemeColor.setAttribute("content", "#252627")
: metaThemeColor.setAttribute("content", "#fafafa");
}
themeToggle.addEventListener("click", () => {
document.body.classList.toggle("dark-theme");
window.localStorage &&
window.localStorage.setItem(
"theme",
document.body.classList.contains("dark-theme") ? "dark" : "light"
);
document.body.classList.contains("dark-theme")
? metaThemeColor.setAttribute("content", "#252627")
: metaThemeColor.setAttribute("content", "#fafafa");
});
@@ -0,0 +1,99 @@
.button-container {
display: table;
margin-left: auto;
margin-right: auto;
}
button,
.button,
a.button {
position: relative;
display: flex;
align-items: center;
justify-content: center;
padding: 8px 18px;
margin-bottom: 5px;
background: $light-background-secondary;
text-decoration: none;
text-align: center;
font-weight: 500;
border-radius: 8px;
border: 1px solid transparent;
appearance: none;
cursor: pointer;
outline: none;
.dark-theme & {
background: $dark-background-secondary;
color: inherit;
}
/* variants */
&.outline {
background: transparent;
border-color: $light-background-secondary;
box-shadow: none;
padding: 8px 18px;
.dark-theme & {
border-color: $dark-background-secondary;
color: inherit;
}
:hover {
transform: none;
box-shadow: none;
}
}
&.primary {
box-shadow: 0 4px 6px rgba(50, 50, 93, .11), 0 1px 3px rgba(0, 0, 0, .08);
&:hover {
box-shadow: 0 2px 6px rgba(50, 50, 93, .21), 0 1px 3px rgba(0, 0, 0, .08);
}
}
&.link {
background: none;
font-size: 1rem;
}
&.small {
font-size: .8rem;
}
&.wide {
min-width: 200px;
padding: 14px 24px;
}
}
.code-toolbar {
margin-bottom: 20px;
.toolbar-item a {
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
padding: 3px 8px;
margin-bottom: 5px;
background: $light-background-secondary;
text-decoration: none;
text-align: center;
font-size: 13px;
font-weight: 500;
border-radius: 8px;
border: 1px solid transparent;
appearance: none;
cursor: pointer;
outline: none;
.dark-theme & {
background: $dark-background-secondary;
color: inherit;
}
}
}
+53
View File
@@ -0,0 +1,53 @@
@font-face {
font-family: 'Inter UI';
font-style: normal;
font-display: fallback;
font-weight: 400;
src: url("../fonts/Inter-UI-Regular.woff2") format("woff2"),
url("../fonts/Inter-UI-Regular.woff") format("woff");
}
@font-face {
font-family: 'Inter UI';
font-style: italic;
font-display: fallback;
font-weight: 400;
src: url("../fonts/Inter-UI-Italic.woff2") format("woff2"),
url("../fonts/Inter-UI-Italic.woff") format("woff");
}
@font-face {
font-family: 'Inter UI';
font-style: normal;
font-display: auto;
font-weight: 600;
src: url("../fonts/Inter-UI-Medium.woff2") format("woff2"),
url("../fonts/Inter-UI-Medium.woff") format("woff");
}
@font-face {
font-family: 'Inter UI';
font-style: italic;
font-display: fallback;
font-weight: 600;
src: url("../fonts/Inter-UI-MediumItalic.woff2") format("woff2"),
url("../fonts/Inter-UI-MediumItalic.woff") format("woff");
}
@font-face {
font-family: 'Inter UI';
font-style: normal;
font-display: fallback;
font-weight: 800;
src: url("../fonts/Inter-UI-Bold.woff2") format("woff2"),
url("../fonts/Inter-UI-Bold.woff") format("woff");
}
@font-face {
font-family: 'Inter UI';
font-style: italic;
font-display: fallback;
font-weight: 800;
src: url("../fonts/Inter-UI-BoldItalic.woff2") format("woff2"),
url("../fonts/Inter-UI-BoldItalic.woff") format("woff");
}
+49
View File
@@ -0,0 +1,49 @@
.footer {
padding: 40px 20px;
flex-grow: 0;
color: $light-color-secondary;
&__inner {
display: flex;
align-items: center;
justify-content: center;
margin: 0 auto;
width: 760px;
max-width: 100%;
@media #{$media-size-tablet} {
flex-direction: column;
}
}
&__content {
display: flex;
flex-direction: row;
align-items: center;
font-size: 1rem;
color: $light-color-secondary;
@media #{$media-size-tablet} {
flex-direction: column;
margin-top: 10px;
}
&>*:not(:last-child)::after {
content: "•";
padding: 0 5px;
@media #{$media-size-tablet} {
content: "";
padding: 0;
}
}
&>*:last-child {
padding: 0 5px;
@media #{$media-size-tablet} {
padding: 0;
}
}
}
}
+50
View File
@@ -0,0 +1,50 @@
.header {
background: #fafafa;
display: flex;
align-items: center;
justify-content: center;
position: relative;
padding: 20px;
.dark-theme & {
background: #252627;
}
&__right {
display: flex;
flex-direction: row;
align-items: center;
@media #{$media-size-phone} {
flex-direction: row-reverse;
}
}
&__inner {
display: flex;
align-items: center;
justify-content: space-between;
margin: 0 auto;
width: 760px;
max-width: 100%;
}
}
.theme-toggle {
display: flex;
align-items: center;
justify-content: center;
line-height: 1;
cursor: pointer;
}
.theme-toggler {
fill: currentColor;
}
.unselectable {
user-select: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
}
+72
View File
@@ -0,0 +1,72 @@
.posts {
width: 100%;
max-width: 800px;
text-align: left;
padding: 20px;
margin: 20px auto;
@media #{$media-size-tablet} {
max-width: 660px;
}
&:not(:last-of-type) {
border-bottom: 1px solid $light-border-color;
.dark-theme & {
border-color: $dark-border-color;
}
}
&-group {
display: flex;
margin-bottom: 1.9em;
line-height: normal;
@media #{$media-size-tablet} {
display: block;
}
}
&-list {
flex-grow: 1;
margin: 0;
padding: 0;
list-style: none;
}
.post {
&-title {
font-size: 1rem;
margin: 5px 0 5px 0;
}
&-year {
padding-top: 6px;
margin-right: 1.8em;
font-size: 1.6em;
@include dimmed;
@media #{$media-size-tablet} {
margin: -6px 0 4px;
}
}
&-item {
border-bottom: 1px grey dashed;
a {
display: flex;
justify-content: space-between;
align-items: baseline;
padding: 12px 0;
text-decoration: none;
}
}
&-day {
flex-shrink: 0;
margin-left: 1em;
@include dimmed;
}
}
}
+71
View File
@@ -0,0 +1,71 @@
.logo {
display: flex;
align-items: center;
text-decoration: none;
font-weight: bold;
font-display: auto;
font-family: monospace, monospace;
img {
height: 44px;
}
&__mark {
margin-right: 5px;
}
&__text {
font-size: 1.125rem;
}
&__cursor {
display: inline-block;
width: 10px;
height: 1rem;
background: #252627;
margin-left: 5px;
border-radius: 1px;
animation: cursor 1s infinite;
.dark-theme & {
background: #fafafa;
}
}
@media (prefers-reduced-motion: reduce) {
&__cursor {
animation: none;
}
}
}
// // Fading
// @keyframes cursor {
// 0% {
// opacity: 0;
// }
// 50% {
// opacity: 1;
// }
// 100% {
// opacity: 0;
// }
// }
// Blinking
@keyframes cursor {
0% {
visibility: hidden;
}
50% {
visibility: hidden;
}
100% {
visibility: visible;
}
}
+353
View File
@@ -0,0 +1,353 @@
html {
box-sizing: border-box;
line-height: 1.6;
letter-spacing: .06em;
scroll-behavior: smooth;
}
*,
*:before,
*:after {
box-sizing: inherit;
}
body {
margin: 0;
padding: 0;
font-family: 'Inter UI', -apple-system, BlinkMacSystemFont, "Roboto", "Segoe UI", Helvetica, Arial, sans-serif;
font-display: auto;
font-size: 1rem;
line-height: 1.54;
background-color: $light-background;
color: $light-color;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
font-feature-settings: "liga", "tnum", "case", "calt", "zero", "ss01", "locl";
-webkit-overflow-scrolling: touch;
-webkit-text-size-adjust: 100%;
display: flex;
min-height: 100vh;
flex-direction: column;
@media #{$media-size-phone} {
font-size: 1rem;
}
&.dark-theme {
background-color: $dark-background;
color: $dark-color;
}
}
h2,
h3,
h4,
h5,
h6 {
display: flex;
align-items: center;
line-height: 1.3;
}
h1 {
font-size: 2.625rem;
}
h2 {
font-size: 1.625rem;
}
h3 {
font-size: 1.375rem;
}
h4 {
font-size: 1.125rem;
}
@media #{$media-size-phone} {
h1 {
font-size: 2rem;
}
h2 {
font-size: 1.4rem;
}
h3 {
font-size: 1.15rem;
}
h4 {
font-size: 1.125rem;
}
}
a {
color: inherit;
}
img {
display: block;
max-width: 100%;
&.left {
margin-right: auto;
}
&.center {
margin-left: auto;
margin-right: auto;
}
&.right {
margin-left: auto;
}
&.circle {
border-radius: 50%;
max-width: 25%;
margin: auto;
}
}
figure {
display: table;
max-width: 100%;
margin: 25px 0;
&.left {
margin-right: auto;
}
&.left-floated {
margin-right: auto;
float: left;
img {
margin: 20px 20px 20px 0;
}
}
&.center {
margin-left: auto;
margin-right: auto;
}
&.right {
margin-left: auto;
}
&.right-floated {
margin-left: auto;
float: right;
img {
margin: 20px 0 20px 20px;
}
}
&.rounded {
img {
border-radius: 50%;
}
}
figcaption {
font-size: 14px;
margin-top: 5px;
opacity: .8;
&.left {
text-align: left;
}
&.center {
text-align: center;
}
&.right {
text-align: right;
}
}
}
code {
font-family: Consolas, Monaco, Andale Mono, Ubuntu Mono, monospace;
font-display: auto;
font-feature-settings: normal;
background: $light-background-secondary;
padding: 1px 6px;
margin: 0 2px;
border-radius: 5px;
font-size: .95rem;
.dark-theme & {
background: $dark-background-secondary;
}
}
pre {
background: #212020;
padding: 10px 10px 10px 20px;
border-radius: 8px;
font-size: .95rem;
overflow: auto;
@media #{$media-size-phone} {
white-space: pre-wrap;
word-wrap: break-word;
}
code {
background: none !important;
color: #ccc;
margin: 0;
padding: 0;
font-size: inherit;
.dark-theme & {
color: inherit;
}
}
}
blockquote {
border-left: 2px solid;
margin: 40px;
padding: 10px 20px;
@media #{$media-size-phone} {
margin: 10px;
padding: 10px;
}
&:before {
content: '”';
font-family: Georgia, serif;
font-display: auto;
font-size: 3.875rem;
position: absolute;
left: -40px;
top: -20px;
}
p:first-of-type {
margin-top: 0;
}
p:last-of-type {
margin-bottom: 0;
}
}
ul,
ol {
margin-left: 40px;
padding: 0;
@media #{$media-size-phone} {
margin-left: 20px;
}
}
ol ol {
list-style-type: lower-alpha;
}
.container {
flex: 1 auto;
display: flex;
flex-direction: column;
justify-content: center;
text-align: center;
}
.content {
display: flex;
flex-direction: column;
flex: 1 auto;
align-items: center;
justify-content: center;
margin: 0;
@media #{$media-size-phone} {
margin-top: 0;
}
}
hr {
width: 100%;
border: none;
background: $light-border-color;
height: 1px;
.dark-theme & {
background: $dark-border-color;
}
}
svg {
height: 1em;
}
.hidden {
display: none;
}
.hide-on-phone {
@media #{$media-size-phone} {
display: none;
}
}
.hide-on-tablet {
@media #{$media-size-tablet} {
display: none;
}
}
// Accessibility
.screen-reader-text {
border: 0;
clip: rect(1px, 1px, 1px, 1px);
clip-path: inset(50%);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute !important;
width: 1px;
word-wrap: normal !important;
}
.screen-reader-text:focus {
background-color: #f1f1f1;
border-radius: 3px;
box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
clip: auto !important;
clip-path: none;
color: #21759b;
display: block;
font-size: 14px;
font-size: 0.875rem;
font-weight: bold;
height: auto;
width: auto;
top: 5px;
left: 5px;
line-height: normal;
padding: 15px 23px 14px;
text-decoration: none;
z-index: 100000;
}
// Custom
.socials {
user-select: none;
svg {
font-size: 1.5rem;
}
}
+67
View File
@@ -0,0 +1,67 @@
.menu {
background: #fafafa;
border-right: 1px solid;
margin-right: 18px;
z-index: 9999;
.dark-theme & {
background: #252627;
}
@media #{$media-size-phone} {
position: absolute;
top: 50px;
right: 0;
border: none;
margin: 0;
padding: 10px;
}
&__inner {
display: flex;
align-items: center;
justify-content: flex-start;
max-width: 100%;
margin: 0 auto;
padding: 0 15px;
font-size: 1rem;
list-style: none;
li {
margin: 0 12px;
}
@media #{$media-size-phone} {
flex-direction: column;
align-items: flex-start;
padding: 0;
li {
margin: 0;
padding: 5px;
}
}
}
&-trigger {
width: 24px;
height: 24px;
fill: currentColor;
margin-left: 10px;
cursor: pointer;
}
a {
display: inline-block;
margin-right: 15px;
text-decoration: none;
&:hover {
text-decoration: underline;
}
&:last-of-type {
margin-right: 0;
}
}
}
@@ -0,0 +1,3 @@
@mixin dimmed {
opacity: .6;
}
@@ -0,0 +1,367 @@
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
/* Document
========================================================================== */
/**
* 1. Correct the line height in all browsers.
* 2. Prevent adjustments of font size after orientation changes in iOS.
*/
/* Webkit Scrollbar Customize */
::-webkit-scrollbar {
width: 8px;
height: 8px;
background: #212020;
}
::-webkit-scrollbar-thumb {
background: #888;
&:hover {
background: #dcdcdc;
}
}
html {
line-height: 1.15; /* 1 */
-webkit-text-size-adjust: 100%; /* 2 */
}
/* Sections
========================================================================== */
/**
* Remove the margin in all browsers.
*/
body {
margin: 0;
}
/**
* Render the `main` element consistently in IE.
*/
main {
display: block;
}
/**
* Correct the font size and margin on `h1` elements within `section` and
* `article` contexts in Chrome, Firefox, and Safari.
*/
h1 {
font-size: 2em;
margin: 0.67em 0;
}
/* Grouping content
========================================================================== */
/**
* 1. Add the correct box sizing in Firefox.
* 2. Show the overflow in Edge and IE.
*/
hr {
box-sizing: content-box; /* 1 */
height: 0; /* 1 */
overflow: visible; /* 2 */
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
pre {
font-family: monospace, monospace; /* 1 */
font-display: auto;
font-size: 1em; /* 2 */
}
/* Text-level semantics
========================================================================== */
/**
* Remove the gray background on active links in IE 10.
*/
a {
background-color: transparent;
}
/**
* 1. Remove the bottom border in Chrome 57-
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
*/
abbr[title] {
border-bottom: none; /* 1 */
text-decoration: underline; /* 2 */
text-decoration: underline dotted; /* 2 */
}
/**
* Add the correct font weight in Chrome, Edge, and Safari.
*/
b,
strong {
font-weight: bolder;
}
/**
* 1. Correct the inheritance and scaling of font size in all browsers.
* 2. Correct the odd `em` font sizing in all browsers.
*/
code,
kbd,
samp {
font-family: monospace, monospace; /* 1 */
font-display: auto;
font-size: 1em; /* 2 */
}
/**
* Add the correct font size in all browsers.
*/
small {
font-size: 80%;
}
/**
* Prevent `sub` and `sup` elements from affecting the line height in
* all browsers.
*/
sub,
sup {
font-size: 75%;
line-height: 0;
position: relative;
vertical-align: baseline;
}
sub {
bottom: -0.25em;
}
sup {
top: -0.5em;
}
/* Embedded content
========================================================================== */
/**
* Remove the border on images inside links in IE 10.
*/
img {
border-style: none;
}
/* Forms
========================================================================== */
/**
* 1. Change the font styles in all browsers.
* 2. Remove the margin in Firefox and Safari.
*/
button,
input,
optgroup,
select,
textarea {
font-family: inherit; /* 1 */
font-display: auto;
font-size: 100%; /* 1 */
line-height: 1.15; /* 1 */
margin: 0; /* 2 */
}
/**
* Show the overflow in IE.
* 1. Show the overflow in Edge.
*/
button,
input { /* 1 */
overflow: visible;
}
/**
* Remove the inheritance of text transform in Edge, Firefox, and IE.
* 1. Remove the inheritance of text transform in Firefox.
*/
button,
select { /* 1 */
text-transform: none;
}
/**
* Correct the inability to style clickable types in iOS and Safari.
*/
button,
[type="button"],
[type="reset"],
[type="submit"] {
-webkit-appearance: button;
}
/**
* Remove the inner border and padding in Firefox.
*/
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
border-style: none;
padding: 0;
}
/**
* Restore the focus styles unset by the previous rule.
*/
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
outline: 1px dotted ButtonText;
}
/**
* Correct the padding in Firefox.
*/
fieldset {
padding: 0.35em 0.75em 0.625em;
}
/**
* 1. Correct the text wrapping in Edge and IE.
* 2. Correct the color inheritance from `fieldset` elements in IE.
* 3. Remove the padding so developers are not caught out when they zero out
* `fieldset` elements in all browsers.
*/
legend {
box-sizing: border-box; /* 1 */
color: inherit; /* 2 */
display: table; /* 1 */
max-width: 100%; /* 1 */
padding: 0; /* 3 */
white-space: normal; /* 1 */
}
/**
* Add the correct vertical alignment in Chrome, Firefox, and Opera.
*/
progress {
vertical-align: baseline;
}
/**
* Remove the default vertical scrollbar in IE 10+.
*/
textarea {
overflow: auto;
}
/**
* 1. Add the correct box sizing in IE 10.
* 2. Remove the padding in IE 10.
*/
[type="checkbox"],
[type="radio"] {
box-sizing: border-box; /* 1 */
padding: 0; /* 2 */
}
/**
* Correct the cursor style of increment and decrement buttons in Chrome.
*/
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
height: auto;
}
/**
* 1. Correct the odd appearance in Chrome and Safari.
* 2. Correct the outline style in Safari.
*/
[type="search"] {
-webkit-appearance: textfield; /* 1 */
outline-offset: -2px; /* 2 */
}
/**
* Remove the inner padding in Chrome and Safari on macOS.
*/
[type="search"]::-webkit-search-decoration {
-webkit-appearance: none;
}
/**
* 1. Correct the inability to style clickable types in iOS and Safari.
* 2. Change font properties to `inherit` in Safari.
*/
::-webkit-file-upload-button {
-webkit-appearance: button; /* 1 */
font: inherit; /* 2 */
}
/* Interactive
========================================================================== */
/*
* Add the correct display in Edge, IE 10+, and Firefox.
*/
details {
display: block;
}
/*
* Add the correct display in all browsers.
*/
summary {
display: list-item;
}
/* Misc
========================================================================== */
/**
* Add the correct display in IE 10+.
*/
template {
display: none;
}
/**
* Add the correct display in IE 10.
*/
[hidden] {
display: none;
}
@@ -0,0 +1,34 @@
.sharing-buttons {
display: flex;
flex-wrap: wrap;
justify-content: space-between;
.resp-sharing-button__icon,
.resp-sharing-button__link {
display: inline-block;
}
.resp-sharing-button__link {
text-decoration: none;
margin: 0.5em;
}
.resp-sharing-button {
border-radius: 5px;
transition: 25ms ease-out;
padding: 0.5em 0.75em;
font-family: Helvetica Neue, Helvetica, Arial, sans-serif;
}
.resp-sharing-button__icon svg {
width: 1em;
height: 1em;
margin-right: 0.4em;
vertical-align: top;
}
.resp-sharing-button--small svg {
margin: 0;
vertical-align: middle;
}
}
+191
View File
@@ -0,0 +1,191 @@
.post {
width: 100%;
max-width: 800px;
text-align: left;
padding: 20px;
margin: 20px auto;
@media #{$media-size-tablet} {
max-width: 600px;
}
&-date {
&:after {
content: '—';
}
}
&-title {
font-size: 2.625rem;
margin: 0 0 20px;
@media #{$media-size-phone} {
font-size: 2rem;
}
a {
text-decoration: none;
}
}
&-tags {
display: block;
margin-bottom: 20px;
font-size: 1rem;
opacity: 0.5;
a {
text-decoration: none;
}
}
&-content {
margin-top: 30px;
}
&-cover {
border-radius: 8px;
margin: 40px -50px;
width: 860px;
max-width: 860px;
@media #{$media-size-tablet} {
margin: 20px 0;
width: 100%;
}
}
&-info {
margin-top: 30px;
font-size: 0.8rem;
line-height: normal;
@include dimmed;
p {
margin: 0.8em 0;
}
a:hover {
border-bottom: 1px solid white;
}
svg {
margin-right: 0.8em;
}
.tag {
margin-right: 0.5em;
&::before {
content: "#";
}
}
.feather {
display: inline-block;
vertical-align: -.125em;
width: 1em;
height: 1em;
}
}
.flag {
border-radius: 50%;
margin: 0 5px;
}
}
.pagination {
margin-top: 20px;
&__title {
display: flex;
text-align: center;
position: relative;
margin: 20px 0;
&-h {
text-align: center;
margin: 0 auto;
padding: 5px 10px;
background: $light-background;
color: $light-color-secondary;
font-size: 0.8rem;
text-transform: uppercase;
text-decoration: none;
letter-spacing: 0.1em;
z-index: 1;
.dark-theme & {
background: $dark-background;
color: $dark-color-secondary;
}
}
hr {
position: absolute;
left: 0;
right: 0;
width: 100%;
margin-top: 15px;
z-index: 0;
}
}
&__buttons {
display: flex;
align-items: center;
justify-content: center;
a {
text-decoration: none;
font-weight: bold;
}
}
}
.button {
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
background: $light-background-secondary;
font-size: 1rem;
font-weight: 600;
border-radius: 8px;
max-width: 40%;
padding: 0;
cursor: pointer;
appearance: none;
.dark-theme & {
background: $dark-background-secondary;
}
+.button {
margin-left: 10px;
}
a {
display: flex;
padding: 8px 16px;
text-decoration: none;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
&__text {
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
}
&.next .button__icon {
margin-left: 8px;
}
&.previous .button__icon {
margin-right: 8px;
}
}
@@ -0,0 +1,24 @@
@charset "UTF-8";
/* light theme color */
$light-background: #fff;
$light-background-secondary: #eaeaea;
$light-color: #222;
$light-color-secondary: #999;
$light-border-color: #dcdcdc;
/* dark theme colors */
$dark-background: #292a2d;
$dark-background-secondary: #3b3d42;
$dark-color: #a9a9b3;
$dark-color-secondary: #73747b;
$dark-border-color: #4a4b50;
$media-size-phone: "(max-width: 684px)";
$media-size-tablet: "(max-width: 900px)";
/* variables for js, must be the same as these in @custom-media queries */
:root {
--phoneWidth: (max-width: 684px);
--tabletWidth: (max-width: 900px);
}
+16
View File
@@ -0,0 +1,16 @@
/* Must be loaded before everything else */
@import "normalize";
/* Main stuff */
@import "variables";
@import "mixins";
@import "fonts";
@import "buttons";
/* Modules */
@import "header";
@import "logo";
@import "menu";
@import "main";
@import "list";
@import "single";
@import "footer";
@import "sharing-buttons";
+36
View File
@@ -0,0 +1,36 @@
# Translations for English
# https://gohugo.io/content-management/multilingual/#translation-of-strings
# Generic
#
[translations]
other = "Translations"
[postAvailable]
other = "Also available in"
# 404.html
#
[archives]
other = "Archives"
[home]
other = "Home"
[notFound]
other = "Oops, page not found…"
# posts/single.html
#
[readingTime]
one = "One minute"
other = "{{ .Count }} minutes"
[tableOfContents]
other = "Table of Contents"
[wordCount]
one = "One Word"
other = "{{ .Count }} Words"
+36
View File
@@ -0,0 +1,36 @@
{{ define "main" }}
<div id="spotlight" class="error-404 animated fadeIn">
<p class="img-404">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
class="feather feather-cloud-drizzle">
<line x1="8" y1="19" x2="8" y2="21"></line>
<line x1="8" y1="13" x2="8" y2="15"></line>
<line x1="16" y1="19" x2="16" y2="21"></line>
<line x1="16" y1="13" x2="16" y2="15"></line>
<line x1="12" y1="21" x2="12" y2="23"></line>
<line x1="12" y1="15" x2="12" y2="17"></line>
<path d="M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25"></path>
</svg>
</p>
<div class="banner-404">
<h1>404</h1>
<p>{{ i18n "notFound" }}</p>
<p class="btn-404">
<a href="{{.Site.BaseURL}}"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"
viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round" class="feather feather-home">
<path d="M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"></path>
<polyline points="9 22 9 12 15 12 15 22"></polyline>
</svg>{{ i18n "home" }}</a>
<a href="{{ "posts" | absLangURL }}"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24"
viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"
stroke-linejoin="round" class="feather feather-archive">
<polyline points="21 8 21 21 3 21 3 8"></polyline>
<rect x="1" y="3" width="22" height="5"></rect>
<line x1="10" y1="12" x2="14" y2="12"></line>
</svg>{{ i18n "archives" }}</a>
</p>
</div>
</div>
{{ end }}
@@ -0,0 +1,22 @@
<!DOCTYPE html>
<html lang="{{ .Site.Language }}">
<head>
{{ partial "head.html" . }}
</head>
<body class="{{ if ne $.Site.Params.defaultTheme "light" -}} dark-theme {{- end -}}">
<div class="container">
{{ partial "header.html" . }}
<div class="content">
{{ block "main" . }}{{ end }}
</div>
{{ block "footer" . }}
{{ partial "footer.html" . }}
{{ end }}
</div>
{{ partial "javascript.html" . }}
</body>
</html>
@@ -0,0 +1,35 @@
{{ define "main" }}
{{ $paginator := .Paginate .Data.Pages }}
<main class="posts">
<h1>{{ .Title }}</h1>
{{ if .Content }}
<div class="content">{{ .Content }}</div>
{{ end }}
{{ range $paginator.Pages.GroupByDate "2006" }}
<div class="posts-group">
<div class="post-year">{{ .Key }}</div>
<ul class="posts-list">
{{ range .Pages }}
<li class="post-item">
<a href="{{.Permalink}}">
<span class="post-title">{{.Title}}</span>
<span class="post-day">
{{ if .Site.Params.dateformShort }}
{{ .Date.Format .Site.Params.dateformShort }}
{{ else }}
{{ .Date.Format "Jan 2"}}
{{ end }}
</span>
</a>
</li>
{{ end }}
</ul>
</div>
{{ end }}
{{ partial "pagination.html" . }}
</main>
{{ end }}
@@ -0,0 +1,52 @@
{{ define "main" }}
<main class="post">
<div class="post-info">
{{ if .IsTranslated }}
{{ i18n "postAvailable" }}
{{ range .Translations }}
<a href="{{ .Permalink }}"><span class="flag flag-icon flag-icon-{{ index $.Site.Data.langFlags (.Lang) }} flag-icon-squared"></span></a>
{{ end}}
{{ end }}
</p>
</div>
<article>
<h2 class="post-title"><a href="{{ .Permalink }}">{{ .Title | markdownify }}</a></h2>
{{- if .Params.toc }}
<hr />
<aside id="toc">
<div class="toc-title">{{ i18n "tableOfContents" }}</div>
{{ .TableOfContents }}
</aside>
<hr />
{{- end }}
{{ with .Params.Cover }}
<img src="/{{ . }}" class="post-cover" />
{{ end }}
<div class="post-content">
{{ .Content }}
</div>
</article>
<hr />
<div class="post-info">
{{- with .Params.tags }}
<p>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-tag meta-icon"><path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path><line x1="7" y1="7" x2="7" y2="7"></line></svg>
{{- range . -}}
<span class="tag"><a href="{{ "tags/" | absLangURL }}{{ . | urlize }}">{{.}}</a></span>
{{- end }}
</p>
{{- end }}
{{- if .GitInfo }}
<p><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-git-commit"><circle cx="12" cy="12" r="4"></circle><line x1="1.05" y1="12" x2="7" y2="12"></line><line x1="17.01" y1="12" x2="22.96" y2="12"></line></svg><a href="{{ .Site.Params.gitUrl -}}{{ .GitInfo.Hash }}" target="_blank" rel="noopener">{{ .GitInfo.AbbreviatedHash }}</a> @ {{ if .Site.Params.dateformNum }}{{ dateFormat .Site.Params.dateformNum .GitInfo.AuthorDate.Local }}{{ else }}{{ dateFormat "2006-01-02" .GitInfo.AuthorDate.Local }}{{ end }}</p>
{{- end }}
</div>
</main>
{{ end }}
+21
View File
@@ -0,0 +1,21 @@
{{ define "main" }}
<main role="main">
<div>
{{ if .Site.Params.Portrait.Path }}
<img src="{{ .Site.Params.Portrait.Path }}" class="circle" alt="{{ .Site.Params.Portrait.Alt }}"
style="max-width:{{ .Site.Params.Portrait.MaxWidth }}" />
{{ end }}
<h1>{{ .Site.Title }}</h1>
{{- with .Site.Params.homeSubtitle }}
<p>{{.}}</p>
{{- end }}
{{- with .Site.Params.social }}
<div class="socials">
{{ partial "social-icons.html" . }}
</div>
{{- end }}
</div>
</main>
{{ end }}
@@ -0,0 +1,10 @@
{{- with .Site.Params.favicon.color }}
<link rel="apple-touch-icon" sizes="180x180" href="{{"apple-touch-icon.png" | relURL}}">
<link rel="icon" type="image/png" sizes="32x32" href="{{"favicon-32x32.png" | relURL}}">
<link rel="icon" type="image/png" sizes="16x16" href="{{"favicon-16x16.png" | relURL}}">
<link rel="manifest" href="{{"site.webmanifest" | relURL}}">
<link rel="mask-icon" href="{{"safari-pinned-tab.svg" | relURL}}" color="{{.mask}}">
<link rel="shortcut icon" href="{{"favicon.ico" | relURL}}">
<meta name="msapplication-TileColor" content="{{.msapplication}}">
<meta name="theme-color" content="{{.theme}}">
{{ end }}
@@ -0,0 +1,24 @@
<footer class="footer">
<div class="footer__inner">
<div class="footer__content">
<span>&copy; {{ now.Format "2006" }}</span>
{{ if .Site.Author.name }}
<span><a href="{{ .Site.BaseURL }}">{{ .Site.Author.name }}</a></span>
{{ end }}
{{ if .Site.Copyright }}
<span>{{ .Site.Copyright| safeHTML }}</span>
{{ end }}
<span>{{- with (not (in (.Site.Language.Get "disableKinds") "RSS")) }}
<a href="{{ "posts/index.xml" | absLangURL }}" target="_blank"
title="rss">{{ partial "svg.html" (dict "name" "rss") }}</a>
{{ end }}
</span>
</div>
</div>
<!-- <div class="footer__inner">
<div class="footer__content">
<span>Powered by <a href="http://gohugo.io">Hugo</a></span>
<span>Made with &#10084; by <a href="https://maik.dev/">Maik de Kruif</a></span>
</div>
</div> -->
</footer>
@@ -0,0 +1,71 @@
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<meta name="author"
content="{{ if .Params.author }}{{ .Params.author }}{{ else }}{{ range .Site.Author }}{{ . }} {{ end }}{{ end }}">
<meta name="description"
content="{{ if .IsHome }}{{ .Site.Params.homeSubtitle }}{{ else }}{{ .Summary | plainify }}{{ end }}" />
<meta name="keywords"
content="{{ .Site.Params.keywords }}{{ if .Params.tags }}{{ range .Params.tags }}, {{ . }}{{ end }}{{ end }}" />
<meta name="robots" content="noodp" />
<!-- <meta name="theme-color" content="{{ .Site.Params.themeColor }}" /> -->
<link rel="canonical" href="{{ .Permalink }}" />
<link rel="preload" href="{{ .Site.BaseURL }}fonts/Inter-UI-Regular.woff2" as="font" type="font/woff2"
crossorigin="anonymous">
<link rel="preload" href="{{ .Site.BaseURL }}fonts/Inter-UI-Bold.woff2" as="font" type="font/woff2"
crossorigin="anonymous">
{{ block "title" . }}
<title>
{{ if .IsHome }}
{{ $.Site.Title }} {{ with $.Site.Params.Subtitle }} — {{ . }} {{ end }}
{{ else }}
{{ .Title }} :: {{ $.Site.Title }} {{ with $.Site.Params.Subtitle }} — {{ . }}{{ end }}
{{ end }}
</title>
{{ end }}
<!-- CSS -->
<!-- <link href="https://cdnjs.cloudflare.com/ajax/libs/flag-icon-css/3.2.1/css/flag-icon.min.css" rel="stylesheet"
type="text/css"> -->
{{ $options := (dict "targetPath" "main.css" "outputStyle" "compressed" "enableSourceMap" true) }}
{{ $style := resources.Get "scss/main.scss" | resources.ToCSS $options | resources.Fingerprint }}
<link rel="stylesheet" href="{{ $style.RelPermalink }}">
{{ range $val := $.Site.Params.customCSS }}
{{ if gt (len $val) 0 }}
<link rel="stylesheet" type="text/css" href="{{ $val }}">
{{ end }}
{{ end }}
<!-- Icons -->
{{- partial "favicons.html" . }}
{{ template "_internal/schema.html" . }}
{{ template "_internal/twitter_cards.html" . }}
{{ if isset .Site.Taxonomies "series" }}
{{ template "_internal/opengraph.html" . }}
{{ end }}
{{ range .Params.categories }}
<meta property="article:section" content="{{ . }}" />
{{ end }}
{{ if isset .Params "date" }}
<meta property="article:published_time" content="{{ time .Date }}" />
{{ end }}
<!-- RSS -->
{{ with .OutputFormats.Get "rss" -}}
{{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }}
{{ end -}}
<!-- JSON Feed -->
{{ if .OutputFormats.Get "json" }}
<link href="{{ if .OutputFormats.Get "json" }}{{ .Site.BaseURL }}feed.json{{ end }}" rel="alternate"
type="application/json" title="{{ .Site.Title }}" />
{{ end }}
@@ -0,0 +1,19 @@
<header class="header">
<span class="header__inner">
{{ partial "logo.html" . }}
<span class="header__right">
{{ if len .Site.Menus }}
{{ partial "menu.html" . }}
<span class="menu-trigger">
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24">
<path d="M0 0h24v24H0z" fill="none" />
<path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z" />
</svg>
</span>
{{ end }}
<span class="theme-toggle unselectable">{{ partial "theme-icon.html" . }}</span>
</span>
</span>
</header>
@@ -0,0 +1,15 @@
{{ $main := resources.Get "js/main.js" }}
{{ $menu := resources.Get "js/menu.js" }}
{{ $theme := resources.Get "js/theme.js" }}
{{ $secureJS := slice $main $menu $theme | resources.Concat "bundle.js" | resources.Minify | resources.Fingerprint "sha512" }}
<script type="text/javascript" src="{{ $secureJS.RelPermalink }}" integrity="{{ $secureJS.Data.Integrity }}"></script>
{{- if .Site.GoogleAnalytics }}
{{ template "_internal/google_analytics.html" . }}
{{- end}}
{{ range $val := $.Site.Params.customJS }}
{{ if gt (len $val) 0 }}
<script src="{{ $val }}"></script>
{{ end }}
{{ end }}
@@ -0,0 +1,15 @@
<a href="{{ if .Site.Params.Logo.LogoHomeLink }}{{ .Site.Params.Logo.LogoHomeLink }}{{else}}{{ .Site.BaseURL }}{{ end }}"
style="text-decoration: none;">
<div class="logo">
{{ if .Site.Params.Logo.path }}
<img src="{{ .Site.Params.Logo.path }}" alt="{{ .Site.Params.Logo.alt }}" />
{{ else }}
<span class="logo__mark">></span>
<span class="logo__text">{{ with .Site.Params.Logo.logoText }}{{ . }}{{ else }}hello{{ end }}</span>
<span class="logo__cursor" style="{{ with.Site.Params.Logo.logoCursorDisabled }}visibility:hidden;{{ end }}
{{ with.Site.Params.Logo.logoCursorColor }}background-color:{{ . }};{{ end }}
{{ with.Site.Params.Logo.logoCursorAnimate }}animation-duration:{{ . }};{{ end }}">
</span>
{{ end }}
</div>
</a>
@@ -0,0 +1,8 @@
<nav class="menu">
<ul class="menu__inner">
{{- $currentPage := . -}}
{{ range .Site.Menus.main -}}
<li><a href="{{ .URL | absLangURL }}">{{ .Name }}</a></li>
{{- end }}
</ul>
</nav>
@@ -0,0 +1,20 @@
<div class="pagination">
<div class="pagination__buttons">
{{ if .Paginator.HasPrev }}
<span class="button previous">
<a href="{{ .Paginator.Prev.URL }}">
<span class="button__icon">←</span>
<span class="button__text">Newer posts</span>
</a>
</span>
{{ end }}
{{ if .Paginator.HasNext }}
<span class="button next">
<a href="{{ .Paginator.Next.URL }}">
<span class="button__text">Older posts</span>
<span class="button__icon">→</span>
</a>
</span>
{{ end }}
</div>
</div>
@@ -0,0 +1,160 @@
<!-- Sharingbutton Facebook -->
<!-- <a class="resp-sharing-button__link" href="https://facebook.com/sharer/sharer.php?u={{ .Permalink }}" target="_blank"
rel="noopener" aria-label="" title="Share on facebook">
<div class="resp-sharing-button resp-sharing-button--facebook resp-sharing-button--small">
<div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z"></path>
</svg>
</div>
</div>
</a> -->
<!-- Sharingbutton Twitter -->
<a class="resp-sharing-button__link" href="https://twitter.com/intent/tweet/?url={{ .Permalink }}" target="_blank"
rel="noopener" aria-label="" title="Share on twitter">
<div class="resp-sharing-button resp-sharing-button--twitter resp-sharing-button--small">
<div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path
d="M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z">
</path>
</svg>
</div>
</div>
</a>
<!-- Sharingbutton Tumblr -->
<!-- <a class="resp-sharing-button__link"
href="https://www.tumblr.com/widgets/share/tool?posttype=link&amp;title={{ .Title }}&amp;caption={{ .Title }}&amp;canonicalUrl={{ .Permalink }}"
target="_blank" rel="noopener" aria-label="" title="Share on tumblr">
<div class="resp-sharing-button resp-sharing-button--tumblr resp-sharing-button--small">
<div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
stroke="none" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path
d="M14.563 24c-5.093 0-7.031-3.756-7.031-6.411V9.747H5.116V6.648c3.63-1.313 4.512-4.596 4.71-6.469C9.84.051 9.941 0 9.999 0h3.517v6.114h4.801v3.633h-4.82v7.47c.016 1.001.375 2.371 2.207 2.371h.09c.631-.02 1.486-.205 1.936-.419l1.156 3.425c-.436.636-2.4 1.374-4.156 1.404h-.178l.011.002z" />
</svg>
</div>
</div>
</a> -->
<!-- Sharingbutton E-Mail -->
<a class="resp-sharing-button__link" href="mailto:?subject={{ .Title }}&amp;body={{ .Permalink }}" target="_self"
rel="noopener" aria-label="" title="Share via email">
<div class="resp-sharing-button resp-sharing-button--email resp-sharing-button--small">
<div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z"></path>
<polyline points="22,6 12,13 2,6"></polyline>
</svg>
</div>
</div>
</a>
<!-- Sharingbutton Pinterest -->
<!-- <a class="resp-sharing-button__link"
href="https://pinterest.com/pin/create/button/?url={{ .Permalink }}&amp;media={{ .Permalink }};description={{ .Title }}"
target="_blank" rel="noopener" aria-label="" title="Share on pinterest">
<div class="resp-sharing-button resp-sharing-button--pinterest resp-sharing-button--small">
<div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
stroke="none">
<path
d="M12.017 0C5.396 0 .029 5.367.029 11.987c0 5.079 3.158 9.417 7.618 11.162-.105-.949-.199-2.403.041-3.439.219-.937 1.406-5.957 1.406-5.957s-.359-.72-.359-1.781c0-1.663.967-2.911 2.168-2.911 1.024 0 1.518.769 1.518 1.688 0 1.029-.653 2.567-.992 3.992-.285 1.193.6 2.165 1.775 2.165 2.128 0 3.768-2.245 3.768-5.487 0-2.861-2.063-4.869-5.008-4.869-3.41 0-5.409 2.562-5.409 5.199 0 1.033.394 2.143.889 2.741.099.12.112.225.085.345-.09.375-.293 1.199-.334 1.363-.053.225-.172.271-.401.165-1.495-.69-2.433-2.878-2.433-4.646 0-3.776 2.748-7.252 7.92-7.252 4.158 0 7.392 2.967 7.392 6.923 0 4.135-2.607 7.462-6.233 7.462-1.214 0-2.354-.629-2.758-1.379l-.749 2.848c-.269 1.045-1.004 2.352-1.498 3.146 1.123.345 2.306.535 3.55.535 6.607 0 11.985-5.365 11.985-11.987C23.97 5.39 18.592.026 11.985.026L12.017 0z" />
</svg>
</div>
</div>
</a> -->
<!-- Sharingbutton LinkedIn -->
<a class="resp-sharing-button__link"
href="https://www.linkedin.com/shareArticle?mini=true&amp;url={{ .Permalink }}&amp;title={{ .Title }}&amp;summary={{ .Title }}&amp;source={{ .Permalink }}"
target="_blank" rel="noopener" aria-label="" title="Share on linkedin">
<div class="resp-sharing-button resp-sharing-button--linkedin resp-sharing-button--small">
<div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<path d="M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z"></path>
<rect x="2" y="9" width="4" height="12"></rect>
<circle cx="4" cy="4" r="2"></circle>
</svg>
</div>
</div>
</a>
<!-- Sharingbutton Reddit -->
<a class="resp-sharing-button__link"
href="https://reddit.com/submit/?url={{ .Permalink }}&amp;resubmit=true&amp;title={{ .Title }}" target="_blank"
rel="noopener" aria-label="" title="Share on reddit">
<div class="resp-sharing-button resp-sharing-button--reddit resp-sharing-button--small">
<div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
stroke="none">
<path
d="M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0zm5.01 4.744c.688 0 1.25.561 1.25 1.249a1.25 1.25 0 0 1-2.498.056l-2.597-.547-.8 3.747c1.824.07 3.48.632 4.674 1.488.308-.309.73-.491 1.207-.491.968 0 1.754.786 1.754 1.754 0 .716-.435 1.333-1.01 1.614a3.111 3.111 0 0 1 .042.52c0 2.694-3.13 4.87-7.004 4.87-3.874 0-7.004-2.176-7.004-4.87 0-.183.015-.366.043-.534A1.748 1.748 0 0 1 4.028 12c0-.968.786-1.754 1.754-1.754.463 0 .898.196 1.207.49 1.207-.883 2.878-1.43 4.744-1.487l.885-4.182a.342.342 0 0 1 .14-.197.35.35 0 0 1 .238-.042l2.906.617a1.214 1.214 0 0 1 1.108-.701zM9.25 12C8.561 12 8 12.562 8 13.25c0 .687.561 1.248 1.25 1.248.687 0 1.248-.561 1.248-1.249 0-.688-.561-1.249-1.249-1.249zm5.5 0c-.687 0-1.248.561-1.248 1.25 0 .687.561 1.248 1.249 1.248.688 0 1.249-.561 1.249-1.249 0-.687-.562-1.249-1.25-1.249zm-5.466 3.99a.327.327 0 0 0-.231.094.33.33 0 0 0 0 .463c.842.842 2.484.913 2.961.913.477 0 2.105-.056 2.961-.913a.361.361 0 0 0 .029-.463.33.33 0 0 0-.464 0c-.547.533-1.684.73-2.512.73-.828 0-1.979-.196-2.512-.73a.326.326 0 0 0-.232-.095z" />
</svg>
</div>
</div>
</a>
<!-- Sharingbutton XING -->
<!-- <a class="resp-sharing-button__link"
href="https://www.xing.com/app/user?op=share;url={{ .Permalink }};title={{ .Title }}" target="_blank" rel="noopener"
aria-label="" title="Share on xing">
<div class="resp-sharing-button resp-sharing-button--xing resp-sharing-button--small">
<div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
stroke="none">
<path
d="M18.188 0c-.517 0-.741.325-.927.66 0 0-7.455 13.224-7.702 13.657.015.024 4.919 9.023 4.919 9.023.17.308.436.66.967.66h3.454c.211 0 .375-.078.463-.22.089-.151.089-.346-.009-.536l-4.879-8.916c-.004-.006-.004-.016 0-.022L22.139.756c.095-.191.097-.387.006-.535C22.056.078 21.894 0 21.686 0h-3.498zM3.648 4.74c-.211 0-.385.074-.473.216-.09.149-.078.339.02.531l2.34 4.05c.004.01.004.016 0 .021L1.86 16.051c-.099.188-.093.381 0 .529.085.142.239.234.45.234h3.461c.518 0 .766-.348.945-.667l3.734-6.609-2.378-4.155c-.172-.315-.434-.659-.962-.659H3.648v.016z" />
</svg>
</div>
</div>
</a> -->
<!-- Sharingbutton WhatsApp -->
<a class="resp-sharing-button__link" href="whatsapp://send?text={{ .Title }}%20{{ .Permalink }}" target="_blank"
rel="noopener" aria-label="" title="Share on whatsapp">
<div class="resp-sharing-button resp-sharing-button--whatsapp resp-sharing-button--small">
<div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
stroke="none" stroke-width="1" stroke-linecap="round" stroke-linejoin="round">
<path
d="M17.472 14.382c-.297-.149-1.758-.867-2.03-.967-.273-.099-.471-.148-.67.15-.197.297-.767.966-.94 1.164-.173.199-.347.223-.644.075-.297-.15-1.255-.463-2.39-1.475-.883-.788-1.48-1.761-1.653-2.059-.173-.297-.018-.458.13-.606.134-.133.298-.347.446-.52.149-.174.198-.298.298-.497.099-.198.05-.371-.025-.52-.075-.149-.669-1.612-.916-2.207-.242-.579-.487-.5-.669-.51-.173-.008-.371-.01-.57-.01-.198 0-.52.074-.792.372-.272.297-1.04 1.016-1.04 2.479 0 1.462 1.065 2.875 1.213 3.074.149.198 2.096 3.2 5.077 4.487.709.306 1.262.489 1.694.625.712.227 1.36.195 1.871.118.571-.085 1.758-.719 2.006-1.413.248-.694.248-1.289.173-1.413-.074-.124-.272-.198-.57-.347m-5.421 7.403h-.004a9.87 9.87 0 01-5.031-1.378l-.361-.214-3.741.982.998-3.648-.235-.374a9.86 9.86 0 01-1.51-5.26c.001-5.45 4.436-9.884 9.888-9.884 2.64 0 5.122 1.03 6.988 2.898a9.825 9.825 0 012.893 6.994c-.003 5.45-4.437 9.884-9.885 9.884m8.413-18.297A11.815 11.815 0 0012.05 0C5.495 0 .16 5.335.157 11.892c0 2.096.547 4.142 1.588 5.945L.057 24l6.305-1.654a11.882 11.882 0 005.683 1.448h.005c6.554 0 11.89-5.335 11.893-11.893a11.821 11.821 0 00-3.48-8.413Z" />
</svg>
</div>
</div>
</a>
<!-- Sharingbutton Hacker News -->
<!-- <a class="resp-sharing-button__link"
href="https://news.ycombinator.com/submitlink?u={{ .Permalink }}&amp;t={{ .Title }}" target="_blank" rel="noopener"
aria-label="" title="Share on hacker news">
<div class="resp-sharing-button resp-sharing-button--hackernews resp-sharing-button--small">
<div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"
stroke="none">
<path
d="M0 24V0h24v24H0zM6.951 5.896l4.112 7.708v5.064h1.583v-4.972l4.148-7.799h-1.749l-2.457 4.875c-.372.745-.688 1.434-.688 1.434s-.297-.708-.651-1.434L8.831 5.896h-1.88z" />
</svg>
</div>
</div>
</a> -->
<!-- Sharingbutton Telegram -->
<a class="resp-sharing-button__link" href="https://telegram.me/share/url?text={{ .Title }}&amp;url={{ .Permalink }}"
target="_blank" rel="noopener" aria-label="" title="Share on telegram">
<div class="resp-sharing-button resp-sharing-button--telegram resp-sharing-button--small">
<div aria-hidden="true" class="resp-sharing-button__icon resp-sharing-button__icon--solid">
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<line x1="22" y1="2" x2="11" y2="13"></line>
<polygon points="22 2 15 22 11 13 2 9 22 2"></polygon>
</svg>
</div>
</div>
</a>
@@ -0,0 +1,4 @@
{{ range . -}}
&nbsp; <a href="{{ .url }}" target="_blank" rel="noopener" title="{{ .name | humanize }}">{{ partial "svg.html" . }}</a>
&nbsp;
{{- end -}}
File diff suppressed because one or more lines are too long
@@ -0,0 +1,5 @@
<svg class="theme-toggler" width="24" height="24" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M22 41C32.4934 41 41 32.4934 41 22C41 11.5066 32.4934 3 22
3C11.5066 3 3 11.5066 3 22C3 32.4934 11.5066 41 22 41ZM7 22C7
13.7157 13.7157 7 22 7V37C13.7157 37 7 30.2843 7 22Z"/>
</svg>

After

Width:  |  Height:  |  Size: 317 B

+26
View File
@@ -0,0 +1,26 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>{{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }}</title>
<link>{{ .Permalink }}</link>
<description>Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }}</description>{{ with .Site.LanguageCode }}
<language>{{.}}</language>{{end}}{{ with .Site.Author.email }}
<managingEditor>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</managingEditor>{{end}}{{ with .Site.Author.email }}
<webMaster>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</webMaster>{{end}}{{ with .Site.Copyright }}
<copyright>{{.}}</copyright>{{end}}{{ if not .Date.IsZero }}
<lastBuildDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
{{ with .OutputFormats.Get "RSS" -}}
{{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
{{ end -}}
{{ range .Pages }}
<item>
<title>{{ .Title }}</title>
<link>{{ .Permalink }}</link>
<pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
{{ with .Site.Author.email }}<author>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</author>{{end}}
<guid>{{ .Permalink }}</guid>
<description>{{ .Summary | html }}</description>
<content type="html">{{ printf `<![CDATA[%s]]>` .Content | safeHTML }}</content>
</item>
{{ end }}
</channel>
</rss>
+153
View File
@@ -0,0 +1,153 @@
{{ define "main" }}
<main class="post">
<div class="post-info">
<p>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
class="feather feather-clock">
<circle cx="12" cy="12" r="10"></circle>
<polyline points="12 6 12 12 16 14"></polyline>
</svg>
{{ i18n "readingTime" .Page.ReadingTime }}
{{ if .IsTranslated }} | {{ i18n "postAvailable" }}
{{ range .Translations }}
<a href="{{ .Permalink }}"><span
class="flag flag-icon flag-icon-{{ index $.Site.Data.langFlags (.Lang) }} flag-icon-squared"></span></a>
{{ end}}
{{ end }}
</p>
</div>
<article>
<h1 class="post-title">
<a href="{{ .Permalink }}">{{ .Title | markdownify }}</a>
</h1>
{{- if .Params.toc }}
<hr />
<aside id="toc">
<div class="toc-title">{{ i18n "tableOfContents" }}</div>
{{ .TableOfContents }}
</aside>
<hr />
{{- end }}
{{ with .Params.Cover }}
<img src="/{{ . }}" class="post-cover" />
{{ end }}
<div class="post-content">
{{ .Content }}
</div>
</article>
<hr />
<div class="post-info">
{{- with .Params.tags }}
<p>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
class="feather feather-tag meta-icon">
<path d="M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z"></path>
<line x1="7" y1="7" x2="7" y2="7"></line>
</svg>
{{- range . -}}
<span class="tag"><a href="{{ "tags/" | absLangURL }}{{ . | urlize }}/">{{.}}</a></span>
{{- end }}
</p>
{{- end }}
<p>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
class="feather feather-file-text">
<path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z"></path>
<polyline points="14 2 14 8 20 8"></polyline>
<line x1="16" y1="13" x2="8" y2="13"></line>
<line x1="16" y1="17" x2="8" y2="17"></line>
<polyline points="10 9 9 9 8 9"></polyline>
</svg>
{{ i18n "wordCount" .Page.WordCount }}
</p>
<p>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
class="feather feather-calendar">
<rect x="3" y="4" width="18" height="18" rx="2" ry="2"></rect>
<line x1="16" y1="2" x2="16" y2="6"></line>
<line x1="8" y1="2" x2="8" y2="6"></line>
<line x1="3" y1="10" x2="21" y2="10"></line>
</svg>
{{ if .Site.Params.dateformNumTime }}{{ dateFormat .Site.Params.dateformNumTime .Date.Local }}{{ else }}{{ dateFormat "2006-01-02 15:04 -0700" .Date.Local }}{{ end }}
</p>
{{- if .GitInfo }}
<p>
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none"
stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"
class="feather feather-git-commit">
<circle cx="12" cy="12" r="4"></circle>
<line x1="1.05" y1="12" x2="7" y2="12"></line>
<line x1="17.01" y1="12" x2="22.96" y2="12"></line>
</svg>
<a href="{{ .Site.Params.gitUrl -}}{{ .GitInfo.Hash }}" target="_blank"
rel="noopener">{{ .GitInfo.AbbreviatedHash }}</a>
@
{{ if .Site.Params.dateformNum }}{{ dateFormat .Site.Params.dateformNum .GitInfo.AuthorDate.Local }}{{ else }}{{ dateFormat "2006-01-02" .GitInfo.AuthorDate.Local }}{{ end }}
</p>
{{- end }}
</div>
{{- if .Site.Params.EnableSharingButtons }}
<hr />
<div class="sharing-buttons">
{{ partial "sharing-buttons.html" . }}
</div>
{{- end }}
{{ if and (not $.Site.Params.DisableReadOtherPosts) (or .NextInSection .PrevInSection) }}
<div class="pagination">
<div class="pagination__title">
<span class="pagination__title-h">{{ .Site.Params.ReadOtherPosts }}</span>
<hr />
</div>
<div class="pagination__buttons">
{{ if .NextInSection }}
<span class="button previous">
<a href="{{ .NextInSection.Permalink }}">
<span class="button__icon">←</span>
<span class="button__text">{{ .NextInSection.Title }}</span>
</a>
</span>
{{ end }}
{{ if .PrevInSection }}
<span class="button next">
<a href="{{ .PrevInSection.Permalink }}">
<span class="button__text">{{ .PrevInSection.Title }}</span>
<span class="button__icon">→</span>
</a>
</span>
{{ end }}
</div>
</div>
{{ end }}
{{ if .Site.DisqusShortname }}
{{ if not (eq .Params.Comments "false") }}
<div id="comments">
{{ template "_internal/disqus.html" . }}
</div>
{{ end }}
{{ end }}
</main>
{{ end }}
+26
View File
@@ -0,0 +1,26 @@
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>{{ if eq .Title .Site.Title }}{{ .Site.Title }}{{ else }}{{ with .Title }}{{.}} on {{ end }}{{ .Site.Title }}{{ end }}</title>
<link>{{ .Permalink }}</link>
<description>Recent content {{ if ne .Title .Site.Title }}{{ with .Title }}in {{.}} {{ end }}{{ end }}on {{ .Site.Title }}</description>{{ with .Site.LanguageCode }}
<language>{{.}}</language>{{end}}{{ with .Site.Author.email }}
<managingEditor>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</managingEditor>{{end}}{{ with .Site.Author.email }}
<webMaster>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</webMaster>{{end}}{{ with .Site.Copyright }}
<copyright>{{.}}</copyright>{{end}}{{ if not .Date.IsZero }}
<lastBuildDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</lastBuildDate>{{ end }}
{{ with .OutputFormats.Get "RSS" -}}
{{ printf "<atom:link href=%q rel=\"self\" type=%q />" .Permalink .MediaType | safeHTML }}
{{ end -}}
{{ range .Pages }}
<item>
<title>{{ .Title }}</title>
<link>{{ .Permalink }}</link>
<pubDate>{{ .Date.Format "Mon, 02 Jan 2006 15:04:05 -0700" | safeHTML }}</pubDate>
{{ with .Site.Author.email }}<author>{{.}}{{ with $.Site.Author.name }} ({{.}}){{end}}</author>{{end}}
<guid>{{ .Permalink }}</guid>
<description>{{ .Summary | html }}</description>
<content type="html">{{ printf `<![CDATA[%s]]>` .Content | safeHTML }}</content>
</item>
{{ end }}
</channel>
</rss>
@@ -0,0 +1,17 @@
{{ $id := delimit (shuffle (seq 1 9)) "" }}
{{ if .Get "language" }}
<div class="collapsable-code">
<input id="{{ .Get "id" | default $id }}" type="checkbox" {{ if ( eq ( .Get "isCollapsed" ) "true" ) -}} checked
{{- end }} />
<label for="{{ .Get "id" | default $id }}">
<span class="collapsable-code__language">{{ .Get "language" }}</span>
{{ if .Get "title" }}<span class="collapsable-code__title">{{ .Get "title" | markdownify }}</span>{{ end }}
<span class="collapsable-code__toggle" data-label-expand="{{ .Get "expand" | default "△" }}"
data-label-collapse="{{ .Get "collapse" | default "▽" }}"></span>
</label>
<pre {{ if .Get "language" }}class="language-{{ .Get "language" }}" {{ end }}><code>{{ .Inner | string }}</code></pre>
</div>
{{ else }}
{{ errorf "If you want to use the \"collapsable code\" shortcode, you need to pass a mandatory \"language\" param. The issue occured in %q (%q)" .Page.File .Page.Permalink }}
{{ end }}
@@ -0,0 +1,5 @@
{{ if .Get "src" }}
<img src="{{ .Get "src" | safeURL }}" {{ with .Get "alt" }} alt="{{ . | plainify }}" {{ end }}
class="{{ with .Get "position"}}{{ . }}{{ else -}} left {{- end }}" {{ with .Get "style" }}
style="{{ . | safeCSS }}" {{ end }} />
{{ end }}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+14
View File
@@ -0,0 +1,14 @@
name = "maik-blog"
description = "A simple theme for my blog."
tags = ["blog", "clean", "dark", "light", "monochromatic", "personal", "responsive"]
features = ["blog", "shortcode", "syntax highlighting"]
min_version = 0.30
[author]
name = "Maik de Kruif"
homepage = "https://maik.dev/"
[original]
name = "hello-friend"
homepage = "https://github.com/panr/hugo-theme-hello-friend"
repo = "https://github.com/panr/hugo-theme-hello-friend"