add basic page layout

This commit is contained in:
Robert Kaussow 2020-07-06 20:55:32 +02:00
parent 5e686970fb
commit 7621a38386
No known key found for this signature in database
GPG Key ID: 65362AE74AF98B61
112 changed files with 10131 additions and 1 deletions

View File

@ -24,7 +24,7 @@ steps:
- hugo-official -s exampleSite/ -b http://localhost/
- name: html-validation
image: validator/validator
image: xoxys/vnu
commands:
- vnu --skip-non-html --also-check-css --errors-only exampleSite/public

8
.jsbeautifyrc Normal file
View File

@ -0,0 +1,8 @@
{
"indent_size": 4,
"indent_char": " ",
"preserve_newlines": false,
"unformatted" : ["svg"],
"content_unformatted": ["pre"],
"extra_liners": ["head", "body", "html", "main", "header", "footer", "section"]
}

19
.lighthouserc.yml Normal file
View File

@ -0,0 +1,19 @@
---
ci:
collect:
numberOfRuns: 2
staticDistDir: exampleSite/public
url:
- http://localhost/
- http://localhost/404.html
- http://localhost/posts/
settings:
chromeFlags: "--no-sandbox"
assert:
preset: "lighthouse:no-pwa"
assertions:
uses-long-cache-ttl: off
render-blocking-resources: off
tap-targets: off
first-contentful-paint: off
first-meaningful-paint: off

6
.markdownlint.yml Normal file
View File

@ -0,0 +1,6 @@
---
default: True
MD013: False
MD041: False
MD004:
style: dash

View File

@ -0,0 +1,6 @@
---
title: "{{ replace .Name "-" " " | title }}"
date: {{ .Date }}
draft: true
---

19
exampleSite/config.yml Normal file
View File

@ -0,0 +1,19 @@
---
baseURL: https://geekblog.geekdocs.de/
title: Geekblog
theme: hugo-geekblog
pygmentsUseClasses: true
pygmentsCodeFences: true
# Needed for mermaid/katex shortcodes
markup:
goldmark:
renderer:
unsafe: true
tableOfContents:
startLevel: 1
endLevel: 9
taxonomies:
author: authors
tag: tags

View File

@ -0,0 +1,3 @@
---
title: "Contact"
---

View File

@ -0,0 +1,3 @@
---
title: "Legal Notice"
---

View File

@ -0,0 +1,18 @@
---
title: "First demo post"
date: 2020-06-02T22:00:00+02:00
authors:
- richard-roe
- john-doe
tags:
- Opinion
- Hardware
---
Dolor sit, sumo unique argument um no. Gracie nominal id xiv. Romanesque acclimates investiture. Ornateness bland it ex enc, est yeti am bongo detract re. Pro ad prompts feud gait, quid exercise emeritus bis e. In pro quints consequent, denim fastidious copious quo ad. Stet [probates](#subtitle-2) in duo.
Amalia id per in minimum facility, quid facet modifier ea ma. Ill um select ma ad, en ferric patine sentient vim. Per expendable foreordained interpretations cu, maxim sole pertinacity in ram. Dolor sit, sumo unique argument um no. Gracie nominal id xiv. Romanesque acclimates investiture. Ornateness bland it ex enc, est yeti am bongo detract re. Pro ad prompts feud gait, quid exercise emeritus bis e. In pro quints consequent, denim fastidious copious quo ad. Stet probates in duo.
## Subtitle 2
Dolor sit, sumo unique argument um no. Gracie nominal id xiv. Romanesque acclimates investiture. Ornateness bland it ex enc, est yeti am bongo detract re. Pro ad prompts feud gait, quid exercise emeritus bis e. In pro quints consequent, denim fastidious copious quo ad. Stet probates in duo.

View File

@ -0,0 +1,10 @@
---
title: "Very short post"
date: 2020-06-22T20:00:00+02:00
authors:
- john-doe
tags:
- Opinion
---
Dolor sit, sumo unique argument um no. Gracie nominal id xiv. Romanesque acclimates investiture. Ornateness bland it ex enc, est yeti am bongo detract re. Pro ad prompts feud gait, quid exercise emeritus bis e. In pro quints consequent, denim fastidious copious quo ad. Stet probates in duo.

View File

@ -0,0 +1,14 @@
---
title: "Post with image"
date: 2020-06-22T20:00:00+02:00
authors:
- richard-roe
tags:
- Open Source
- Development
- DevOps
---
Amalia id per in minimum facility, quid facet modifier ea ma. Ill um select ma ad, en ferric patine sentient vim. Per expendable foreordained interpretations cu, maxim sole pertinacity in ram. Dolor sit, sumo unique argument um no. Gracie nominal id xiv. Romanesque acclimates investiture. Ornateness bland it ex enc, est yeti am bongo detract re. Pro ad prompts feud gait, quid exercise emeritus bis e. In pro quints consequent, denim fastidious copious quo ad. Stet probates in duo.
Dolor sit, sumo unique argument um no. Gracie nominal id xiv. Romanesque acclimates investiture. Ornateness bland it ex enc, est yeti am bongo detract re. Pro ad prompts feud gait, quid exercise emeritus bis e. In pro quints consequent, denim fastidious copious quo ad. Stet probates in duo.

View File

@ -0,0 +1,2 @@
name: John Doe
email: john@example.com

View File

@ -0,0 +1,2 @@
name: Richard Roe
email: richard@example.com

173
gulpfile.js Normal file
View File

@ -0,0 +1,173 @@
const gulp = require('gulp');
const rename = require('gulp-rename');
const sass = require('gulp-sass');
const cleanCSS = require('gulp-clean-css');
const autoprefixer = require('gulp-autoprefixer');
const iconfont = require('gulp-iconfont');
const realFavicon = require('gulp-real-favicon');
const path = require('path');
const fs = require('fs');
const svgSprite = require('gulp-svg-sprite');
var CSSDEST = 'static/'
var FAVICON_DATA_FILE = 'src/favicon/faviconData.json';
var TIMESTAMP = Math.round(Date.now() / 1000);
gulp.task('sass', function () {
return gulp.src('src/sass/main.scss')
.pipe(sass({ errLogToConsole: true }))
.pipe(cleanCSS({ format: 'beautify' }))
.pipe(autoprefixer({
cascade: false
}))
.pipe(gulp.dest(CSSDEST))
.pipe(cleanCSS())
.pipe(rename({ extname: '.min.css' }))
.pipe(gulp.dest(CSSDEST))
});
gulp.task('favicon-generate', function (done) {
realFavicon.generateFavicon({
masterPicture: 'src/favicon/favicon-master.svg',
dest: 'static/favicon',
iconsPath: '/',
design: {
ios: {
pictureAspect: 'backgroundAndMargin',
backgroundColor: '#ffffff',
margin: '14%',
assets: {
ios6AndPriorIcons: false,
ios7AndLaterIcons: false,
precomposedIcons: false,
declareOnlyDefaultIcon: true
}
},
desktopBrowser: {},
windows: {
pictureAspect: 'whiteSilhouette',
backgroundColor: '#2b5797',
onConflict: 'override',
assets: {
windows80Ie10Tile: false,
windows10Ie11EdgeTiles: {
small: false,
medium: true,
big: false,
rectangle: false
}
}
},
androidChrome: {
pictureAspect: 'shadow',
themeColor: '#ffffff',
manifest: {
display: 'standalone',
orientation: 'notSet',
onConflict: 'override',
declared: true
},
assets: {
legacyIcon: false,
lowResolutionIcons: false
}
},
safariPinnedTab: {
pictureAspect: 'blackAndWhite',
threshold: 74.21875,
themeColor: '#5bbad5'
}
},
settings: {
scalingAlgorithm: 'Mitchell',
errorOnImageTooSmall: false,
readmeFile: false,
htmlCodeFile: false,
usePathAsIs: false
},
markupFile: FAVICON_DATA_FILE
}, function () {
done();
});
});
gulp.task('favicon-check-update', function (done) {
var currentVersion = JSON.parse(fs.readFileSync(FAVICON_DATA_FILE)).version;
realFavicon.checkForUpdates(currentVersion, function (err) {
if (err) {
throw err;
}
});
done();
});
gulp.task('svg-sprite', function () {
config = {
svg: {
xmlDeclaration: false,
rootAttributes: {
style: "position: absolute; width: 0; height: 0; overflow: hidden;"
}
},
mode: {
inline: true,
symbol: {
dest: './',
sprite: 'svg-icon-symbols.html',
bust: false,
}
}
};
return gulp.src('src/icons/*.svg')
.pipe(svgSprite(config))
.pipe(gulp.dest('layouts/partials/'));
});
gulp.task('iconfont', function () {
var lastUnicode = 0xEA01;
var files = fs.readdirSync('src/iconfont');
// Filter files with containing unicode value
// and set last unicode
files.forEach(function (file) {
var basename = path.basename(file);
var matches = basename.match(/^(?:((?:u[0-9a-f]{4,6},?)+)\-)?(.+)\.svg$/i);
var currentCode = -1;
if (matches && matches[1]) {
currentCode = parseInt(matches[1].split('u')[1], 16);
}
if (currentCode >= lastUnicode) {
lastUnicode = ++currentCode;
}
});
return gulp.src(['src/iconfont/*.svg'])
.pipe(iconfont({
startUnicode: lastUnicode,
fontName: 'GeekblogIcons', // required
prependUnicode: true, // recommended option
normalize: true,
fontHeight: 1001,
centerHorizontally: true,
formats: ['woff', 'woff2'], // default, 'woff2' and 'svg' are available
timestamp: TIMESTAMP, // recommended to get consistent builds when watching files
}))
.pipe(gulp.dest('static/fonts/'));
});
gulp.task('default', gulp.series(
'sass',
'svg-sprite',
'iconfont',
'favicon-check-update',
'favicon-generate'
));
gulp.task('devel', function () {
gulp.watch('src/sass/**/*.*css', gulp.series('sass'));
});

35
layouts/404.html Normal file
View File

@ -0,0 +1,35 @@
<!DOCTYPE html>
<html lang="{{ .Site.Language.Lang }}">
<head>
{{ partial "head" . }}
</head>
<body>
{{ partial "svg-icon-symbols" . }}
<div class="wrapper">
{{ partial "site-header" (dict "Root" . "MenuEnabled" false) }}
<main class="gblog-error flex-even">
<div class="flex align-center justify-center">
<div class="gblog-error__icon">
<svg class="icon telescope"><use xlink:href="#telescope"></use></svg>
</div>
<div class="gblog-error__message">
<div class="gblog-error__line gblog-error__title">Lost?</div>
<div class="gblog-error__line gblog-error__code">Error 404</div>
<div class="gblog-error__line gblog-error__help">
Seems like what you are looking for can't be found. Don't worry we can
bring you back to the <a class="gblog-error__link" href="{{ .Site.BaseURL }}">homepage</a>.
</div>
</div>
</div>
</main>
{{ partial "site-footer" . }}
</div>
</body>
</html>

View File

@ -0,0 +1,23 @@
<!DOCTYPE html>
<html lang="{{ .Site.Language.Lang }}">
<head>
{{ partial "head" . }}
</head>
<body>
{{ partial "svg-icon-symbols" . }}
<div class="wrapper">
{{ partial "site-header" . }}
<main class="gblog-page container">
{{ template "main" . }}
</main>
{{ partial "site-footer" . }}
</div>
{{ partial "foot" . }}
</body>
</html>

View File

@ -0,0 +1,6 @@
{{ define "main" }}
{{ range .Paginator.Pages }}
{{ partial "list.html" . }}
{{ end }}
{{ partial "pagination.html" . }}
{{ end }}

View File

@ -0,0 +1,11 @@
{{ define "main" }}
<article class="gblog-post">
<header class="gblog-post__header">
<h1>{{ partial "title" . }}</h1>
</header>
<section class="gblog-markdown">
{{ partial "content" . }}
</section>
</article>
{{ end }}

8
layouts/index.html Normal file
View File

@ -0,0 +1,8 @@
{{ define "main" }}
{{ $paginator := .Paginate (where .Site.RegularPages "Type" "posts") }}
{{ range $paginator.Pages }}
{{ partial "list.html" . }}
{{ end }}
{{ partial "pagination.html" . }}
{{ end }}

View File

@ -0,0 +1,11 @@
{{ $showAnchor := (and (default true .Page.Params.GeekblogAnchor) (default true .Site.Params.GeekblogAnchor)) }}
{{ $anchorLeft := (default false .Site.Params.GeekblogAnchorLeft) }}
{{ $.Scratch.Set "content" (.Content | replaceRE `<nav id="TableOfContents">\s*<ul>\s*<li>\s*<ul>` `<nav id="TableOfContents"><ul>` | replaceRE `</ul>\s*</li>\s*</ul>\s*</nav>` `</ul></nav>` | safeHTML) }}
{{ if and $showAnchor $anchorLeft }}
{{ $.Scratch.Set "content" ($.Scratch.Get "content" | replaceRE "(<h[2-9] id=\"([^\"]+)\"[^>]*>)(.*?)(</h[2-9]+>)" (printf `<div class="gblog-post__anchorwrap">%s<a data-clipboard-text="%s" class="gblog-post__anchor gblog-post__anchor--left clip" aria-label="Anchor %s" href="#%s"><svg class="icon link"><use xlink:href="#link"></use></svg></a>%s%s</div>` `${1}` (absURL (printf "%s#%s" .Permalink `${2}`)) `${3}` `${2}` `${3}` `${4}`) | safeHTML) }}
{{ else if and $showAnchor (not $anchorLeft) }}
{{ $.Scratch.Set "content" ($.Scratch.Get "content" | replaceRE "(<h[2-9] id=\"([^\"]+)\"[^>]*>)(.*?)(</h[2-9]+>)" (printf `<div class="gblog-post__anchorwrap">%s%s<a data-clipboard-text="%s" class="gblog-post__anchor gblog-post__anchor--right clip" aria-label="Anchor %s" href="#%s"><svg class="icon link"><use xlink:href="#link"></use></svg></a>%s</div>` `${1}` `${3}` (absURL (printf "%s#%s" .Permalink `${2}`)) `${3}` `${2}` `${4}`) | safeHTML) }}
{{ end }}
{{ $.Scratch.Get "content" }}

View File

@ -0,0 +1,8 @@
{{ if default true .Site.Params.GeekblogAnchorCopy }}
<script defer src="{{ "js/clipboard.min.js" | relURL }}"></script>
<script>
document.addEventListener("DOMContentLoaded", function(event) {
var clipboard = new ClipboardJS('.clip');
});
</script>
{{ end }}

View File

@ -0,0 +1,17 @@
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="{{ partial "title" . }}">
<title>{{ partial "title" . }} | {{ .Site.Title -}}</title>
<link rel="icon" href="{{ "favicon/favicon-32x32.png" | relURL }}" type="image/x-icon">
<link rel="stylesheet" href="{{ "main.min.css" | relURL }}" media="screen">
<link rel="stylesheet" href="{{ "custom.css" | relURL }}" media="screen">
{{ with .OutputFormats.Get "rss" -}}
{{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }}
{{ end -}}
{{ "<!--" | safeHTML -}}
Made with Geekblog theme https://github.com/xoxys/hugo-geekblog
{{- "-->" | safeHTML }}

View File

@ -0,0 +1,56 @@
<article class="gblog-post">
<header class="gblog-post__header">
<h1><a href="{{ .RelPermalink }}">{{ partial "title" . }}</a></h1>
</header>
<section class="gblog-markdown">
{{ .Summary }}
</section>
<div class="gblog-post__readmore">
{{ if .Truncated }}
<a class="flex-inline align-center" title="Read the full article" href="{{ .RelPermalink }}">Read more</a>
{{ end }}
</div>
<footer class="gblog-post__footer">
<span class="no-wrap">
<svg class="icon menu"><use xlink:href="#date"></use></svg>
<span class="gblog-post__tag">
<time datetime="{{ .Date.Format "2006-01-02T15:04:05Z07:00" | safeHTML }}">
{{ .Date.Day }} {{ .Date.Month }} {{ .Date.Year }}
</time>
</span>
</span>
{{ range $i, $name := sort .Params.Authors }}
{{ $author := index $.Site.Data.authors $name }}
{{ with $.Site.GetPage (printf "/authors/%s" $author.name | urlize) }}
{{ if eq $i 0 }}
<span class="no-wrap">
<svg class="icon menu"><use xlink:href="#person"></use></svg>
{{ end }}
<span class="gblog-post__tag gblog-button">
<a class="gblog-button__link" href="{{ .RelPermalink }}" title="All posts of this author">{{ $author.name }}</a>
</span>
{{ if eq $i 0 }}
</span>
{{ end }}
{{ end }}
{{ end }}
{{ range $i, $name := sort .Params.Tags }}
{{ if eq $i 0 }}
<span class="no-wrap">
<svg class="icon menu"><use xlink:href="#tags"></use></svg>
{{ end }}
<span class="gblog-post__tag gblog-button">
{{ with $.Site.GetPage (printf "/tags/%s" $name | urlize) }}
<a class="gblog-button__link" href="{{ .RelPermalink }}" title="All posts tagged with '{{ $name }}'">{{ $name }}</a>
{{ end }}
</span>
{{ if eq $i 0 }}
</span>
{{ end }}
{{ end }}
</footer>
</article>

View File

@ -0,0 +1,15 @@
{{ $pag := $.Paginator }}
<nav class="gblog-paging flex justify-between align-center " role="navigation">
<div class="gblog-paging__button is-next">
{{ if $pag.HasPrev }}
<a class="gblog-paging__link" href="{{ $pag.Prev.URL }}">&larr; Newer posts</a>
{{ end }}
</div>
<div class="gblog-paging__state">Page {{ $pag.PageNumber }} of {{ $pag.TotalPages }}</div>
<div class="gblog-paging__button is-prev">
{{ if $pag.HasNext }}
<a class="gblog-paging__link" href="{{ $pag.Next.URL }}">Older posts &rarr;</a>
{{ end }}
</div>
</nav>

View File

@ -0,0 +1,18 @@
<footer class="gblog-footer">
<div class="container flex flex-wrap">
<span class="gblog-footer__item">
Built with <a href="https://gohugo.io/" class="gblog-footer__link">Hugo</a> and
<svg class="icon heart"><use xlink:href="#heart"></use></svg>
</span>
{{ with .Site.Params.GeekblogLegalNotice }}
<span class="gblog-footer__item">
<a href="{{ . | relURL }}" class="gblog-footer__link">Legal Notice</a>
</span>
{{ end }}
{{ with .Site.Params.GeekblogPrivacyPolicy }}
<span class="gblog-footer__item">
<a href="{{ . | relURL }}" class="gblog-footer__link">Privacy Policy</a>
</span>
{{ end }}
</div>
</footer>

View File

@ -0,0 +1,31 @@
<header class="gblog-header">
<div class="container flex align-center justify-center">
<a class="gblog-header__link" href="{{ .Site.BaseURL }}">
<span class="gblog-brand flex align-center justify-center">
<img class="gblog-brand__img" src="{{ (default "brand.svg" .Site.Params.GeekblogLogo) | relURL }}" alt="{{ .Site.Title }}" width=60 height=60>
{{ .Site.Title }}
</span>
<span class="gblog-brand__subtitle flex align-center justify-center">Subtitle to describe your blog</span>
</a>
</div>
</header>
<nav class="gblog-nav">
<input type="checkbox" id="menu-control" class="hidden">
<div class="gblog-nav__control">
<label for="menu-control" class="flex align-center justify-center" style="vertical-align:top">
<svg class="icon menu"><use xlink:href="#menu"></use></svg>
<svg class="icon clean"><use xlink:href="#clean"></use></svg>
<span>Nav</span>
</label>
</div>
<ul class="gblog-nav__list container flex flex-wrap justify-center menu-content">
{{ $currentPage := .Permalink }}
{{ range $name, $taxonomy := .Site.Taxonomies.tags }}
{{ with $.Site.GetPage (printf "/tags/%s" $name) }}
<li>
<a class="gblog-nav__entry {{ if eq $currentPage .Permalink }} is-active {{ end }}" href="{{ .Permalink }}">{{ .Title }}</a>
</li>
{{ end }}
{{ end }}
</ul>
</nav>

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 8.0 KiB

View File

@ -0,0 +1,11 @@
{{ $title := "" }}
{{ if .Title }}
{{ $title = .Title }}
{{ else if and .IsSection .File }}
{{ $title = path.Base .File.Dir | humanize | title }}
{{ else if and .IsPage .File }}
{{ $title = .File.BaseFileName | humanize | title }}
{{ end }}
{{ return $title }}

8
layouts/posts/list.html Normal file
View File

@ -0,0 +1,8 @@
{{ define "main" }}
{{ $paginator := .Paginate (where .Site.RegularPages "Type" "posts") }}
{{ range $paginator.Pages }}
{{ partial "list.html" . }}
{{ end }}
{{ partial "pagination.html" . }}
{{ end }}

View File

@ -0,0 +1,17 @@
{{ $ref := "" }}
{{ $target := "" }}
{{ with .Get "href" }}
{{ $ref = . }}
{{ $target = "_blank" }}
{{ end }}
{{ with .Get "relref" }}
{{ $ref = relref $ . }}
{{ end }}
<span class="gblog-button{{ with .Get "class" }} {{ . }}{{ end }}">
<a {{ with $ref }} href="{{.}}" {{ end }} {{ with $target }} target="{{.}}" {{ end }} class="gblog-button__link">
{{ $.Inner }}
</a>
</span>

View File

@ -0,0 +1,7 @@
<div class="gblog-columns flex flex-wrap">
{{ range split .Inner "<--->" }}
<div class="gblog-columns__content gblog-markdown--nested flex-even">
{{ . | markdownify }}
</div>
{{ end }}
</div>

View File

@ -0,0 +1,11 @@
{{ $id := substr (sha1 .Inner) 0 8 }}
<div class="gblog-expand">
<label class="gblog-expand__head flex justify-between" for="{{ $id }}-{{ .Ordinal }}">
<span>{{ default "Expand" (.Get 0) }}</span>
<span>{{ default "↕" (.Get 1) }}</span>
</label>
<input id="{{ $id }}-{{ .Ordinal }}" type="checkbox" class="gblog-expand__control hidden" />
<div class="gblog-markdown--nested gblog-expand__content">
{{ .Inner | markdownify }}
</div>
</div>

View File

@ -0,0 +1,3 @@
<blockquote class="gblog-hint {{ .Get 0 }}">
{{ .Inner | markdownify }}
</blockquote>

View File

@ -0,0 +1,16 @@
{{ if not (.Page.Scratch.Get "mermaid") }}
<!-- Include mermaid only first time -->
<script defer src="{{ "js/mermaid.min.js" | relURL }}"></script>
<script>
document.addEventListener("DOMContentLoaded", function(event) {
mermaid.initialize({
flowchart: { useMaxWidth: true }
});
});
</script>
{{ .Page.Scratch.Set "mermaid" true }}
{{ end }}
<pre class="gblog-mermaid mermaid{{ with .Get "class" }} {{ . }}{{ end }}">
{{- .Inner -}}
</pre>

View File

@ -0,0 +1,12 @@
{{ if .Parent }}
{{ $name := .Get 0 }}
{{ $group := printf "tabs-%s" (.Parent.Get 0) }}
{{ if not (.Parent.Scratch.Get $group) }}
{{ .Parent.Scratch.Set $group slice }}
{{ end }}
{{ .Parent.Scratch.Add $group (dict "Name" $name "Content" .Inner) }}
{{ else }}
{{ errorf "%q: 'tab' shortcode must be inside 'tabs' shortcode" .Page.Path }}
{{ end}}

View File

@ -0,0 +1,16 @@
{{ if .Inner }}{{ end }}
{{ $id := .Get 0 }}
{{ $group := printf "tabs-%s" $id }}
<div class="gblog-tabs">
{{ range $index, $tab := .Scratch.Get $group }}
<input type="radio" class="gblog-tabs__control hidden" name="{{ $group }}" id="{{ printf "%s-%d" $group $index }}"
{{ if not $index }}checked="checked" {{ end }} />
<label for="{{ printf "%s-%d" $group $index }}" class="gblog-tabs__label">
{{ $tab.Name }}
</label>
<div class="gblog-markdown--nested gblog-tabs__content">
{{ .Content | markdownify }}
</div>
{{ end }}
</div>

View File

@ -0,0 +1,5 @@
{{ $tocLevels := default (default 6 .Site.Params.GeekblogToC) .Page.Params.GeekblogToC }}
{{ if and $tocLevels .Page.TableOfContents }}
<div class="gblog-toc gblog-toc__level--{{$tocLevels}}">{{ .Page.TableOfContents }}<hr></div>
{{ end }}

7477
package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

34
package.json Normal file
View File

@ -0,0 +1,34 @@
{
"name": "geekblog",
"version": "1.0.0",
"description": "Hugo theme made for blogs",
"main": "gulpfile.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"repository": {
"type": "git",
"url": "https://github.com/xoxys/hugo-geekblog"
},
"author": "Robert Kaussow",
"license": "MIT",
"dependencies": {},
"devDependencies": {
"gulp": "^4.0.2",
"gulp-autoprefixer": "^7.0.1",
"gulp-clean-css": "^4.3.0",
"gulp-concat": "^2.6.1",
"gulp-iconfont": "^10.0.3",
"gulp-real-favicon": "^0.3.2",
"gulp-rename": "^2.0.0",
"gulp-sass": "^4.1.0",
"gulp-svg-sprite": "^1.5.0",
"run-sequence": "^2.2.1"
},
"browserslist": [
"last 2 version",
"> 5%",
"not dead",
"Firefox ESR"
]
}

View File

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="128.54926mm"
height="128.54977mm"
viewBox="0 0 128.54926 128.54977"
version="1.1"
id="svg8"
inkscape:version="0.92.4 (unknown)"
sodipodi:docname="geeklab.svg"
inkscape:export-filename="/home/rknet/rkau2905/Bilder/geeklab-favicon-32.png"
inkscape:export-xdpi="6.3200002"
inkscape:export-ydpi="6.3200002">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="0.70710678"
inkscape:cx="67.90943"
inkscape:cy="149.84628"
inkscape:document-units="mm"
inkscape:current-layer="layer1"
showgrid="false"
inkscape:snap-text-baseline="false"
showguides="true"
inkscape:window-width="1600"
inkscape:window-height="844"
inkscape:window-x="0"
inkscape:window-y="28"
inkscape:window-maximized="1">
<inkscape:grid
type="xygrid"
id="grid817"
originx="-33.356623"
originy="-126.48947" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Ebene 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-33.356621,-41.960747)">
<path
style="fill:#7dacda;fill-opacity:1;stroke-width:4.96496391"
d="M 369,158.5918 A 242.92856,242.92856 0 0 0 126.07227,401.51953 242.92856,242.92856 0 0 0 369,644.44922 242.92856,242.92856 0 0 0 611.92773,401.51953 242.92856,242.92856 0 0 0 369,158.5918 Z m 0,10 A 232.92857,232.92857 0 0 1 601.92773,401.51953 232.92857,232.92857 0 0 1 369,634.44922 232.92857,232.92857 0 0 1 136.07227,401.51953 232.92857,232.92857 0 0 1 369,168.5918 Z"
transform="scale(0.26458333)"
id="path10"
inkscape:connector-curvature="0" />
<path
style="fill:#4186c9;fill-opacity:1;stroke-width:4.76058388"
d="M 369,168.5918 A 232.92857,232.92857 0 0 0 136.07227,401.51953 232.92857,232.92857 0 0 0 369,634.44922 232.92857,232.92857 0 0 0 601.92773,401.51953 232.92857,232.92857 0 0 0 369,168.5918 Z m -33.40039,65.92773 h 66.80078 a 33.40004,33.40004 0 0 1 33.40039,33.40039 v 16.69922 a 16.70002,16.70002 0 0 1 -16.70117,16.70117 v 30.22657 l 91.84961,159.65234 c 5.34421,7.84936 8.35156,17.20065 8.35156,27.2207 a 50.10006,50.10006 0 0 1 -50.10156,50.09961 H 268.80078 a 50.10006,50.10006 0 0 1 -50.10156,-50.09961 c 0,-10.02005 3.00722,-19.37134 8.35156,-27.2207 l 91.84961,-159.65234 v -30.22657 a 16.70002,16.70002 0 0 1 -16.70117,-16.70117 v -16.69922 a 33.40004,33.40004 0 0 1 33.40039,-33.40039 z m 16.69922,33.40039 v 72.64453 l -97.19336,168.33594 c -1.83738,2.6699 -3.00586,6.00948 -3.00586,9.51953 a 16.70002,16.70002 0 0 0 16.70117,16.69922 h 200.39844 a 16.70002,16.70002 0 0 0 16.70117,-16.69922 c 0,-3.50937 -1.16848,-6.84771 -3.00586,-9.51953 L 385.69922,340.56445 v -72.64453 z m 25.05078,133.59961 a 8.3500101,8.3500101 0 0 1 8.34961,8.34961 8.3500101,8.3500101 0 0 1 -8.34961,8.34961 8.3500101,8.3500101 0 0 1 -8.34961,-8.34961 8.3500101,8.3500101 0 0 1 8.34961,-8.34961 z m -35.23633,23.21289 43.58594,43.58789 22.3789,-22.3789 32.23047,55.77929 H 297.69141 Z"
id="circle923"
transform="scale(0.26458333)"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

@ -0,0 +1 @@
{"result":{"status":"success"},"favicon":{"package_url":"https://realfavicongenerator.net/files/74c8786d13056d7f4ce06d00a68b8f908aefbcbc/favicon_package_v0.16.zip","files_urls":["https://realfavicongenerator.net/files/74c8786d13056d7f4ce06d00a68b8f908aefbcbc/package_files/android-chrome-192x192.png","https://realfavicongenerator.net/files/74c8786d13056d7f4ce06d00a68b8f908aefbcbc/package_files/android-chrome-512x512.png","https://realfavicongenerator.net/files/74c8786d13056d7f4ce06d00a68b8f908aefbcbc/package_files/apple-touch-icon.png","https://realfavicongenerator.net/files/74c8786d13056d7f4ce06d00a68b8f908aefbcbc/package_files/browserconfig.xml","https://realfavicongenerator.net/files/74c8786d13056d7f4ce06d00a68b8f908aefbcbc/package_files/favicon-16x16.png","https://realfavicongenerator.net/files/74c8786d13056d7f4ce06d00a68b8f908aefbcbc/package_files/favicon-32x32.png","https://realfavicongenerator.net/files/74c8786d13056d7f4ce06d00a68b8f908aefbcbc/package_files/favicon.ico","https://realfavicongenerator.net/files/74c8786d13056d7f4ce06d00a68b8f908aefbcbc/package_files/mstile-144x144.png","https://realfavicongenerator.net/files/74c8786d13056d7f4ce06d00a68b8f908aefbcbc/package_files/mstile-150x150.png","https://realfavicongenerator.net/files/74c8786d13056d7f4ce06d00a68b8f908aefbcbc/package_files/mstile-310x150.png","https://realfavicongenerator.net/files/74c8786d13056d7f4ce06d00a68b8f908aefbcbc/package_files/mstile-310x310.png","https://realfavicongenerator.net/files/74c8786d13056d7f4ce06d00a68b8f908aefbcbc/package_files/mstile-70x70.png","https://realfavicongenerator.net/files/74c8786d13056d7f4ce06d00a68b8f908aefbcbc/package_files/safari-pinned-tab.svg","https://realfavicongenerator.net/files/74c8786d13056d7f4ce06d00a68b8f908aefbcbc/package_files/site.webmanifest"],"html_code":"<link rel=\"apple-touch-icon\" sizes=\"180x180\" href=\"/apple-touch-icon.png\">\n<link rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/favicon-32x32.png\">\n<link rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/favicon-16x16.png\">\n<link rel=\"manifest\" href=\"/site.webmanifest\">\n<link rel=\"mask-icon\" href=\"/safari-pinned-tab.svg\" color=\"#5bbad5\">\n<meta name=\"msapplication-TileColor\" content=\"#2b5797\">\n<meta name=\"msapplication-TileImage\" content=\"/mstile-144x144.png\">\n<meta name=\"theme-color\" content=\"#ffffff\">","compression":"false","overlapping_markups":["link[rel=\"apple-touch-icon\"]","link[rel=\"shortcut\"]","link[rel=\"shortcut icon\"]","link[rel=\"icon\",sizes=\"16x16\"]","link[rel=\"icon\",sizes=\"32x32\"]","meta[name=\"msapplication-TileColor\"]","meta[name=\"msapplication-TileImage\"]","link[rel=\"manifest\"]","meta[name=\"theme-color\"]","link[rel=\"mask-icon\"]"]},"files_location":{"type":"path","path":"/"},"preview_picture_url":"https://realfavicongenerator.net/files/74c8786d13056d7f4ce06d00a68b8f908aefbcbc/favicon_preview.png","version":"0.16"}

View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<title>arrow_back</title>
<path d="M20.016 11.016v1.969h-12.188l5.578 5.625-1.406 1.406-8.016-8.016 8.016-8.016 1.406 1.406-5.578 5.625h12.188z"></path>
</svg>

After

Width:  |  Height:  |  Size: 291 B

View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<title>arrow_right_alt</title>
<path d="M16.031 11.016v-3l3.984 3.984-3.984 3.984v-3h-12.047v-1.969h12.047z"></path>
</svg>

After

Width:  |  Height:  |  Size: 255 B

View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<title>bookmark</title>
<path d="M15 5.016q0.797 0 1.406 0.586t0.609 1.383v16.031l-7.031-3-6.984 3v-16.031q0-0.797 0.609-1.383t1.406-0.586h9.984zM18.984 18v-12.984q0-0.797-0.586-1.406t-1.383-0.609h-10.031q0-0.797 0.609-1.406t1.406-0.609h9.984q0.797 0 1.406 0.609t0.609 1.406v15.984z"></path>
</svg>

After

Width:  |  Height:  |  Size: 430 B

View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 16 28">
<title>code</title>
<path d="M4.5 23c0-0.828-0.672-1.5-1.5-1.5s-1.5 0.672-1.5 1.5 0.672 1.5 1.5 1.5 1.5-0.672 1.5-1.5zM4.5 5c0-0.828-0.672-1.5-1.5-1.5s-1.5 0.672-1.5 1.5 0.672 1.5 1.5 1.5 1.5-0.672 1.5-1.5zM14.5 7c0-0.828-0.672-1.5-1.5-1.5s-1.5 0.672-1.5 1.5 0.672 1.5 1.5 1.5 1.5-0.672 1.5-1.5zM16 7c0 1.109-0.609 2.078-1.5 2.594-0.047 5.641-4.047 6.891-6.703 7.734-2.484 0.781-3.297 1.156-3.297 2.672v0.406c0.891 0.516 1.5 1.484 1.5 2.594 0 1.656-1.344 3-3 3s-3-1.344-3-3c0-1.109 0.609-2.078 1.5-2.594v-12.812c-0.891-0.516-1.5-1.484-1.5-2.594 0-1.656 1.344-3 3-3s3 1.344 3 3c0 1.109-0.609 2.078-1.5 2.594v7.766c0.797-0.391 1.641-0.656 2.406-0.891 2.906-0.922 4.562-1.609 4.594-4.875-0.891-0.516-1.5-1.484-1.5-2.594 0-1.656 1.344-3 3-3s3 1.344 3 3z"></path>
</svg>

After

Width:  |  Height:  |  Size: 897 B

View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<title>date</title>
<path d="M18.984 20.016v-11.016h-13.969v11.016h13.969zM18.984 3.984q0.797 0 1.406 0.609t0.609 1.406v14.016q0 0.797-0.609 1.383t-1.406 0.586h-13.969q-0.844 0-1.43-0.563t-0.586-1.406v-14.016q0-0.797 0.586-1.406t1.43-0.609h0.984v-1.969h2.016v1.969h7.969v-1.969h2.016v1.969h0.984zM17.016 11.016v1.969h-2.016v-1.969h2.016zM12.984 11.016v1.969h-1.969v-1.969h1.969zM9 11.016v1.969h-2.016v-1.969h2.016z"></path>
</svg>

After

Width:  |  Height:  |  Size: 562 B

View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<title>download</title>
<path d="M5.016 18h13.969v2.016h-13.969v-2.016zM18.984 9l-6.984 6.984-6.984-6.984h3.984v-6h6v6h3.984z"></path>
</svg>

After

Width:  |  Height:  |  Size: 273 B

View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<title>email</title>
<path d="M20.016 8.016v-2.016l-8.016 5.016-8.016-5.016v2.016l8.016 4.969zM20.016 3.984q0.797 0 1.383 0.609t0.586 1.406v12q0 0.797-0.586 1.406t-1.383 0.609h-16.031q-0.797 0-1.383-0.609t-0.586-1.406v-12q0-0.797 0.586-1.406t1.383-0.609h16.031z"></path>
</svg>

After

Width:  |  Height:  |  Size: 409 B

View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 24 28">
<title>github</title>
<path d="M12 2c6.625 0 12 5.375 12 12 0 5.297-3.437 9.797-8.203 11.391-0.609 0.109-0.828-0.266-0.828-0.578 0-0.391 0.016-1.687 0.016-3.297 0-1.125-0.375-1.844-0.812-2.219 2.672-0.297 5.484-1.313 5.484-5.922 0-1.313-0.469-2.375-1.234-3.219 0.125-0.313 0.531-1.531-0.125-3.187-1-0.313-3.297 1.234-3.297 1.234-0.953-0.266-1.984-0.406-3-0.406s-2.047 0.141-3 0.406c0 0-2.297-1.547-3.297-1.234-0.656 1.656-0.25 2.875-0.125 3.187-0.766 0.844-1.234 1.906-1.234 3.219 0 4.594 2.797 5.625 5.469 5.922-0.344 0.313-0.656 0.844-0.766 1.609-0.688 0.313-2.438 0.844-3.484-1-0.656-1.141-1.844-1.234-1.844-1.234-1.172-0.016-0.078 0.734-0.078 0.734 0.781 0.359 1.328 1.75 1.328 1.75 0.703 2.141 4.047 1.422 4.047 1.422 0 1 0.016 1.937 0.016 2.234 0 0.313-0.219 0.688-0.828 0.578-4.766-1.594-8.203-6.094-8.203-11.391 0-6.625 5.375-12 12-12zM4.547 19.234c0.031-0.063-0.016-0.141-0.109-0.187-0.094-0.031-0.172-0.016-0.203 0.031-0.031 0.063 0.016 0.141 0.109 0.187 0.078 0.047 0.172 0.031 0.203-0.031zM5.031 19.766c0.063-0.047 0.047-0.156-0.031-0.25-0.078-0.078-0.187-0.109-0.25-0.047-0.063 0.047-0.047 0.156 0.031 0.25 0.078 0.078 0.187 0.109 0.25 0.047zM5.5 20.469c0.078-0.063 0.078-0.187 0-0.297-0.063-0.109-0.187-0.156-0.266-0.094-0.078 0.047-0.078 0.172 0 0.281s0.203 0.156 0.266 0.109zM6.156 21.125c0.063-0.063 0.031-0.203-0.063-0.297-0.109-0.109-0.25-0.125-0.313-0.047-0.078 0.063-0.047 0.203 0.063 0.297 0.109 0.109 0.25 0.125 0.313 0.047zM7.047 21.516c0.031-0.094-0.063-0.203-0.203-0.25-0.125-0.031-0.266 0.016-0.297 0.109s0.063 0.203 0.203 0.234c0.125 0.047 0.266 0 0.297-0.094zM8.031 21.594c0-0.109-0.125-0.187-0.266-0.172-0.141 0-0.25 0.078-0.25 0.172 0 0.109 0.109 0.187 0.266 0.172 0.141 0 0.25-0.078 0.25-0.172zM8.937 21.438c-0.016-0.094-0.141-0.156-0.281-0.141-0.141 0.031-0.234 0.125-0.219 0.234 0.016 0.094 0.141 0.156 0.281 0.125s0.234-0.125 0.219-0.219z"></path>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28">
<title>heart</title>
<path d="M14 26c-0.25 0-0.5-0.094-0.688-0.281l-9.75-9.406c-0.125-0.109-3.563-3.25-3.563-7 0-4.578 2.797-7.313 7.469-7.313 2.734 0 5.297 2.156 6.531 3.375 1.234-1.219 3.797-3.375 6.531-3.375 4.672 0 7.469 2.734 7.469 7.313 0 3.75-3.437 6.891-3.578 7.031l-9.734 9.375c-0.187 0.187-0.438 0.281-0.688 0.281z"></path>
</svg>

After

Width:  |  Height:  |  Size: 472 B

View File

@ -0,0 +1,4 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<title>link</title>
<path d="M17.016 6.984q2.063 0 3.516 1.477t1.453 3.539-1.453 3.539-3.516 1.477h-4.031v-1.922h4.031q1.266 0 2.18-0.914t0.914-2.18-0.914-2.18-2.18-0.914h-4.031v-1.922h4.031zM8.016 12.984v-1.969h7.969v1.969h-7.969zM3.891 12q0 1.266 0.914 2.18t2.18 0.914h4.031v1.922h-4.031q-2.063 0-3.516-1.477t-1.453-3.539 1.453-3.539 3.516-1.477h4.031v1.922h-4.031q-1.266 0-2.18 0.914t-0.914 2.18z"></path></svg>

After

Width:  |  Height:  |  Size: 546 B

View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<title>menu</title>
<path d="M3 6h18v2.016h-18v-2.016zM3 12.984v-1.969h18v1.969h-18zM3 18v-2.016h18v2.016h-18z"></path>
</svg>

After

Width:  |  Height:  |  Size: 258 B

View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<title>notification</title>
<path d="M18 15.984l2.016 2.016v0.984h-16.031v-0.984l2.016-2.016v-4.969q0-2.344 1.195-4.078t3.305-2.25v-0.703q0-0.609 0.422-1.055t1.078-0.445 1.078 0.445 0.422 1.055v0.703q2.109 0.516 3.305 2.25t1.195 4.078v4.969zM12 21.984q-0.844 0-1.43-0.563t-0.586-1.406h4.031q0 0.797-0.609 1.383t-1.406 0.586z"></path>
</svg>

After

Width:  |  Height:  |  Size: 472 B

View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<title>path</title>
<path d="M21.984 11.016h-6.984v-3h-2.016v7.969h2.016v-3h6.984v8.016h-6.984v-3h-3.984v-9.984h-2.016v3h-6.984v-8.016h6.984v3h6v-3h6.984v8.016z"></path>
</svg>

After

Width:  |  Height:  |  Size: 308 B

View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<title>person</title>
<path d="M12 14.016q2.531 0 5.273 1.102t2.742 2.883v2.016h-16.031v-2.016q0-1.781 2.742-2.883t5.273-1.102zM12 12q-1.641 0-2.813-1.172t-1.172-2.813 1.172-2.836 2.813-1.195 2.813 1.195 1.172 2.836-1.172 2.813-2.813 1.172z"></path>
</svg>

After

Width:  |  Height:  |  Size: 388 B

View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<title>search</title>
<path d="M9.516 14.016q1.875 0 3.188-1.313t1.313-3.188-1.313-3.188-3.188-1.313-3.188 1.313-1.313 3.188 1.313 3.188 3.188 1.313zM15.516 14.016l4.969 4.969-1.5 1.5-4.969-4.969v-0.797l-0.281-0.281q-1.781 1.547-4.219 1.547-2.719 0-4.617-1.875t-1.898-4.594 1.898-4.617 4.617-1.898 4.594 1.898 1.875 4.617q0 0.984-0.469 2.227t-1.078 1.992l0.281 0.281h0.797z"></path>
</svg>

After

Width:  |  Height:  |  Size: 521 B

View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="28" viewBox="0 0 20 28">
<title>shield</title>
<path d="M17 15v-10h-7v17.766c0.797-0.422 2.078-1.156 3.328-2.141 1.672-1.313 3.672-3.359 3.672-5.625zM20 3v12c0 6.578-9.203 10.734-9.594 10.906-0.125 0.063-0.266 0.094-0.406 0.094s-0.281-0.031-0.406-0.094c-0.391-0.172-9.594-4.328-9.594-10.906v-12c0-0.547 0.453-1 1-1h18c0.547 0 1 0.453 1 1z"></path>
</svg>

After

Width:  |  Height:  |  Size: 461 B

View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<title>tags</title>
<path d="M5 5c-1.104 0-2 0.887-2 2v8l13.381 13.381c0.716 0.716 1.838 0.78 2.62 0.191l-14.001-14.072v-9.493c0-0.002 0-0.005 0-0.007h-0zM16 4l13.381 13.381c0.783 0.783 0.787 2.051 0.008 2.831l-7.177 7.177c-0.778 0.778-2.047 0.776-2.831-0.008l-13.381-13.381v-8c0-1.112 0.895-2 2-2h8zM11.5 11c0.828 0 1.5-0.672 1.5-1.5s-0.672-1.5-1.5-1.5c-0.828 0-1.5 0.672-1.5 1.5s0.672 1.5 1.5 1.5v0z"></path>
</svg>

After

Width:  |  Height:  |  Size: 549 B

View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 35 32">
<title>telescope</title>
<path d="M27.464 2.314c-0.053-0.132-0.159-0.235-0.292-0.284s-0.281-0.039-0.406 0.027l-11.906 6.282c-0.224 0.118-0.324 0.385-0.233 0.621l0.245 0.641-6.873 3.769c-0.225 0.123-0.32 0.395-0.222 0.63l0.228 0.549-7.299 3.488c-0.24 0.115-0.348 0.397-0.246 0.643l1.498 3.61c0.080 0.192 0.265 0.309 0.462 0.309 0.056 0 0.112-0.009 0.167-0.029l7.625-2.701 0.228 0.549c0.079 0.191 0.264 0.309 0.462 0.309 0.046 0 0.092-0.006 0.139-0.020l7.276-2.097 0.218 0.569c0.074 0.197 0.263 0.321 0.465 0.321 0.049 0 0.098-0.007 0.147-0.022l13-4c0.134-0.041 0.244-0.136 0.304-0.262s0.065-0.272 0.013-0.401l-5-12.501zM2.7 21.469l-1.134-2.734 6.823-3.261 1.439 3.47-7.128 2.525zM11.191 19.623l-0.238-0.574c0 0 0 0 0 0l-1.843-4.445c0 0 0 0 0 0l-0.238-0.573 6.336-3.475 2.374 6.134 0.375 0.981-6.766 1.952zM19.3 18.385l-0.203-0.531c-0.003-0.011-0.001-0.024-0.006-0.035l-0.618-1.597-2.754-7.206 11.023-5.815 4.592 11.48-12.034 3.704zM28.964 0.314c-0.103-0.257-0.395-0.381-0.65-0.279-0.256 0.103-0.381 0.394-0.279 0.65l6 15c0.079 0.196 0.267 0.315 0.465 0.315 0.062 0 0.125-0.011 0.186-0.036 0.256-0.103 0.381-0.394 0.279-0.65l-6.001-15zM18 21h-3c-1.14 0-2 0.86-2 2v1.315l-5.879 6.859c-0.18 0.209-0.156 0.525 0.054 0.705 0.094 0.081 0.21 0.121 0.325 0.121 0.141 0 0.281-0.059 0.379-0.175l5.851-6.825h2.27v6.5c0 0.276 0.224 0.5 0.5 0.5s0.5-0.224 0.5-0.5v-6.5h2.27l5.85 6.825c0.099 0.116 0.239 0.175 0.38 0.175 0.115 0 0.231-0.040 0.325-0.121 0.21-0.18 0.234-0.495 0.054-0.705l-5.879-6.859v-1.24c0-1.163-0.878-2.075-2-2.075zM19 24h-5v-1c0-0.589 0.411-1 1-1h3c0.57 0 1 0.462 1 1.075v0.925z"></path>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<title>arrow_right_alt</title>
<path transform="scale(-1,1) translate(-24,0)" d="M16.031 11.016v-3l3.984 3.984-3.984 3.984v-3h-12.047v-1.969h12.047z"></path>
</svg>

After

Width:  |  Height:  |  Size: 296 B

View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<title>clean</title>
<path d="M18.984 6.422l-5.578 5.578 5.578 5.578-1.406 1.406-5.578-5.578-5.578 5.578-1.406-1.406 5.578-5.578-5.578-5.578 1.406-1.406 5.578 5.578 5.578-5.578z"></path>
</svg>

After

Width:  |  Height:  |  Size: 325 B

5
src/icons/arrow_back.svg Normal file
View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<title>arrow_back</title>
<path d="M20.016 11.016v1.969h-12.188l5.578 5.625-1.406 1.406-8.016-8.016 8.016-8.016 1.406 1.406-5.578 5.625h12.188z"></path>
</svg>

After

Width:  |  Height:  |  Size: 291 B

View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<title>arrow_right_alt</title>
<path transform="scale(-1,1) translate(-24,0)" d="M16.031 11.016v-3l3.984 3.984-3.984 3.984v-3h-12.047v-1.969h12.047z"></path>
</svg>

After

Width:  |  Height:  |  Size: 296 B

View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<title>arrow_right_alt</title>
<path d="M16.031 11.016v-3l3.984 3.984-3.984 3.984v-3h-12.047v-1.969h12.047z"></path>
</svg>

After

Width:  |  Height:  |  Size: 255 B

5
src/icons/bookmark.svg Normal file
View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<title>bookmark</title>
<path d="M15 5.016q0.797 0 1.406 0.586t0.609 1.383v16.031l-7.031-3-6.984 3v-16.031q0-0.797 0.609-1.383t1.406-0.586h9.984zM18.984 18v-12.984q0-0.797-0.586-1.406t-1.383-0.609h-10.031q0-0.797 0.609-1.406t1.406-0.609h9.984q0.797 0 1.406 0.609t0.609 1.406v15.984z"></path>
</svg>

After

Width:  |  Height:  |  Size: 430 B

5
src/icons/clean.svg Normal file
View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<title>clean</title>
<path d="M18.984 6.422l-5.578 5.578 5.578 5.578-1.406 1.406-5.578-5.578-5.578 5.578-1.406-1.406 5.578-5.578-5.578-5.578 1.406-1.406 5.578 5.578 5.578-5.578z"></path>
</svg>

After

Width:  |  Height:  |  Size: 325 B

5
src/icons/code.svg Normal file
View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 16 28">
<title>code</title>
<path d="M4.5 23c0-0.828-0.672-1.5-1.5-1.5s-1.5 0.672-1.5 1.5 0.672 1.5 1.5 1.5 1.5-0.672 1.5-1.5zM4.5 5c0-0.828-0.672-1.5-1.5-1.5s-1.5 0.672-1.5 1.5 0.672 1.5 1.5 1.5 1.5-0.672 1.5-1.5zM14.5 7c0-0.828-0.672-1.5-1.5-1.5s-1.5 0.672-1.5 1.5 0.672 1.5 1.5 1.5 1.5-0.672 1.5-1.5zM16 7c0 1.109-0.609 2.078-1.5 2.594-0.047 5.641-4.047 6.891-6.703 7.734-2.484 0.781-3.297 1.156-3.297 2.672v0.406c0.891 0.516 1.5 1.484 1.5 2.594 0 1.656-1.344 3-3 3s-3-1.344-3-3c0-1.109 0.609-2.078 1.5-2.594v-12.812c-0.891-0.516-1.5-1.484-1.5-2.594 0-1.656 1.344-3 3-3s3 1.344 3 3c0 1.109-0.609 2.078-1.5 2.594v7.766c0.797-0.391 1.641-0.656 2.406-0.891 2.906-0.922 4.562-1.609 4.594-4.875-0.891-0.516-1.5-1.484-1.5-2.594 0-1.656 1.344-3 3-3s3 1.344 3 3z"></path>
</svg>

After

Width:  |  Height:  |  Size: 897 B

5
src/icons/date.svg Normal file
View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<title>date</title>
<path d="M18.984 20.016v-11.016h-13.969v11.016h13.969zM18.984 3.984q0.797 0 1.406 0.609t0.609 1.406v14.016q0 0.797-0.609 1.383t-1.406 0.586h-13.969q-0.844 0-1.43-0.563t-0.586-1.406v-14.016q0-0.797 0.586-1.406t1.43-0.609h0.984v-1.969h2.016v1.969h7.969v-1.969h2.016v1.969h0.984zM17.016 11.016v1.969h-2.016v-1.969h2.016zM12.984 11.016v1.969h-1.969v-1.969h1.969zM9 11.016v1.969h-2.016v-1.969h2.016z"></path>
</svg>

After

Width:  |  Height:  |  Size: 562 B

5
src/icons/download.svg Normal file
View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<title>download</title>
<path d="M5.016 18h13.969v2.016h-13.969v-2.016zM18.984 9l-6.984 6.984-6.984-6.984h3.984v-6h6v6h3.984z"></path>
</svg>

After

Width:  |  Height:  |  Size: 273 B

5
src/icons/email.svg Normal file
View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<title>email</title>
<path d="M20.016 8.016v-2.016l-8.016 5.016-8.016-5.016v2.016l8.016 4.969zM20.016 3.984q0.797 0 1.383 0.609t0.586 1.406v12q0 0.797-0.586 1.406t-1.383 0.609h-16.031q-0.797 0-1.383-0.609t-0.586-1.406v-12q0-0.797 0.586-1.406t1.383-0.609h16.031z"></path>
</svg>

After

Width:  |  Height:  |  Size: 409 B

5
src/icons/github.svg Normal file
View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 24 28">
<title>github</title>
<path d="M12 2c6.625 0 12 5.375 12 12 0 5.297-3.437 9.797-8.203 11.391-0.609 0.109-0.828-0.266-0.828-0.578 0-0.391 0.016-1.687 0.016-3.297 0-1.125-0.375-1.844-0.812-2.219 2.672-0.297 5.484-1.313 5.484-5.922 0-1.313-0.469-2.375-1.234-3.219 0.125-0.313 0.531-1.531-0.125-3.187-1-0.313-3.297 1.234-3.297 1.234-0.953-0.266-1.984-0.406-3-0.406s-2.047 0.141-3 0.406c0 0-2.297-1.547-3.297-1.234-0.656 1.656-0.25 2.875-0.125 3.187-0.766 0.844-1.234 1.906-1.234 3.219 0 4.594 2.797 5.625 5.469 5.922-0.344 0.313-0.656 0.844-0.766 1.609-0.688 0.313-2.438 0.844-3.484-1-0.656-1.141-1.844-1.234-1.844-1.234-1.172-0.016-0.078 0.734-0.078 0.734 0.781 0.359 1.328 1.75 1.328 1.75 0.703 2.141 4.047 1.422 4.047 1.422 0 1 0.016 1.937 0.016 2.234 0 0.313-0.219 0.688-0.828 0.578-4.766-1.594-8.203-6.094-8.203-11.391 0-6.625 5.375-12 12-12zM4.547 19.234c0.031-0.063-0.016-0.141-0.109-0.187-0.094-0.031-0.172-0.016-0.203 0.031-0.031 0.063 0.016 0.141 0.109 0.187 0.078 0.047 0.172 0.031 0.203-0.031zM5.031 19.766c0.063-0.047 0.047-0.156-0.031-0.25-0.078-0.078-0.187-0.109-0.25-0.047-0.063 0.047-0.047 0.156 0.031 0.25 0.078 0.078 0.187 0.109 0.25 0.047zM5.5 20.469c0.078-0.063 0.078-0.187 0-0.297-0.063-0.109-0.187-0.156-0.266-0.094-0.078 0.047-0.078 0.172 0 0.281s0.203 0.156 0.266 0.109zM6.156 21.125c0.063-0.063 0.031-0.203-0.063-0.297-0.109-0.109-0.25-0.125-0.313-0.047-0.078 0.063-0.047 0.203 0.063 0.297 0.109 0.109 0.25 0.125 0.313 0.047zM7.047 21.516c0.031-0.094-0.063-0.203-0.203-0.25-0.125-0.031-0.266 0.016-0.297 0.109s0.063 0.203 0.203 0.234c0.125 0.047 0.266 0 0.297-0.094zM8.031 21.594c0-0.109-0.125-0.187-0.266-0.172-0.141 0-0.25 0.078-0.25 0.172 0 0.109 0.109 0.187 0.266 0.172 0.141 0 0.25-0.078 0.25-0.172zM8.937 21.438c-0.016-0.094-0.141-0.156-0.281-0.141-0.141 0.031-0.234 0.125-0.219 0.234 0.016 0.094 0.141 0.156 0.281 0.125s0.234-0.125 0.219-0.219z"></path>
</svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

5
src/icons/heart.svg Normal file
View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="28" height="28" viewBox="0 0 28 28">
<title>heart</title>
<path d="M14 26c-0.25 0-0.5-0.094-0.688-0.281l-9.75-9.406c-0.125-0.109-3.563-3.25-3.563-7 0-4.578 2.797-7.313 7.469-7.313 2.734 0 5.297 2.156 6.531 3.375 1.234-1.219 3.797-3.375 6.531-3.375 4.672 0 7.469 2.734 7.469 7.313 0 3.75-3.437 6.891-3.578 7.031l-9.734 9.375c-0.187 0.187-0.438 0.281-0.688 0.281z"></path>
</svg>

After

Width:  |  Height:  |  Size: 472 B

4
src/icons/link.svg Normal file
View File

@ -0,0 +1,4 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<title>link</title>
<path d="M17.016 6.984q2.063 0 3.516 1.477t1.453 3.539-1.453 3.539-3.516 1.477h-4.031v-1.922h4.031q1.266 0 2.18-0.914t0.914-2.18-0.914-2.18-2.18-0.914h-4.031v-1.922h4.031zM8.016 12.984v-1.969h7.969v1.969h-7.969zM3.891 12q0 1.266 0.914 2.18t2.18 0.914h4.031v1.922h-4.031q-2.063 0-3.516-1.477t-1.453-3.539 1.453-3.539 3.516-1.477h4.031v1.922h-4.031q-1.266 0-2.18 0.914t-0.914 2.18z"></path></svg>

After

Width:  |  Height:  |  Size: 546 B

5
src/icons/menu.svg Normal file
View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<title>menu</title>
<path d="M3 6h18v2.016h-18v-2.016zM3 12.984v-1.969h18v1.969h-18zM3 18v-2.016h18v2.016h-18z"></path>
</svg>

After

Width:  |  Height:  |  Size: 258 B

View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<title>notification</title>
<path d="M18 15.984l2.016 2.016v0.984h-16.031v-0.984l2.016-2.016v-4.969q0-2.344 1.195-4.078t3.305-2.25v-0.703q0-0.609 0.422-1.055t1.078-0.445 1.078 0.445 0.422 1.055v0.703q2.109 0.516 3.305 2.25t1.195 4.078v4.969zM12 21.984q-0.844 0-1.43-0.563t-0.586-1.406h4.031q0 0.797-0.609 1.383t-1.406 0.586z"></path>
</svg>

After

Width:  |  Height:  |  Size: 472 B

5
src/icons/path.svg Normal file
View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<title>path</title>
<path d="M21.984 11.016h-6.984v-3h-2.016v7.969h2.016v-3h6.984v8.016h-6.984v-3h-3.984v-9.984h-2.016v3h-6.984v-8.016h6.984v3h6v-3h6.984v8.016z"></path>
</svg>

After

Width:  |  Height:  |  Size: 308 B

5
src/icons/person.svg Normal file
View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<title>person</title>
<path d="M12 14.016q2.531 0 5.273 1.102t2.742 2.883v2.016h-16.031v-2.016q0-1.781 2.742-2.883t5.273-1.102zM12 12q-1.641 0-2.813-1.172t-1.172-2.813 1.172-2.836 2.813-1.195 2.813 1.195 1.172 2.836-1.172 2.813-2.813 1.172z"></path>
</svg>

After

Width:  |  Height:  |  Size: 388 B

5
src/icons/search.svg Normal file
View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
<title>search</title>
<path d="M9.516 14.016q1.875 0 3.188-1.313t1.313-3.188-1.313-3.188-3.188-1.313-3.188 1.313-1.313 3.188 1.313 3.188 3.188 1.313zM15.516 14.016l4.969 4.969-1.5 1.5-4.969-4.969v-0.797l-0.281-0.281q-1.781 1.547-4.219 1.547-2.719 0-4.617-1.875t-1.898-4.594 1.898-4.617 4.617-1.898 4.594 1.898 1.875 4.617q0 0.984-0.469 2.227t-1.078 1.992l0.281 0.281h0.797z"></path>
</svg>

After

Width:  |  Height:  |  Size: 521 B

5
src/icons/shield.svg Normal file
View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="20" height="28" viewBox="0 0 20 28">
<title>shield</title>
<path d="M17 15v-10h-7v17.766c0.797-0.422 2.078-1.156 3.328-2.141 1.672-1.313 3.672-3.359 3.672-5.625zM20 3v12c0 6.578-9.203 10.734-9.594 10.906-0.125 0.063-0.266 0.094-0.406 0.094s-0.281-0.031-0.406-0.094c-0.391-0.172-9.594-4.328-9.594-10.906v-12c0-0.547 0.453-1 1-1h18c0.547 0 1 0.453 1 1z"></path>
</svg>

After

Width:  |  Height:  |  Size: 461 B

5
src/icons/tags.svg Normal file
View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
<title>tags</title>
<path d="M5 5c-1.104 0-2 0.887-2 2v8l13.381 13.381c0.716 0.716 1.838 0.78 2.62 0.191l-14.001-14.072v-9.493c0-0.002 0-0.005 0-0.007h-0zM16 4l13.381 13.381c0.783 0.783 0.787 2.051 0.008 2.831l-7.177 7.177c-0.778 0.778-2.047 0.776-2.831-0.008l-13.381-13.381v-8c0-1.112 0.895-2 2-2h8zM11.5 11c0.828 0 1.5-0.672 1.5-1.5s-0.672-1.5-1.5-1.5c-0.828 0-1.5 0.672-1.5 1.5s0.672 1.5 1.5 1.5v0z"></path>
</svg>

After

Width:  |  Height:  |  Size: 549 B

5
src/icons/telescope.svg Normal file
View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 35 32">
<title>telescope</title>
<path d="M27.464 2.314c-0.053-0.132-0.159-0.235-0.292-0.284s-0.281-0.039-0.406 0.027l-11.906 6.282c-0.224 0.118-0.324 0.385-0.233 0.621l0.245 0.641-6.873 3.769c-0.225 0.123-0.32 0.395-0.222 0.63l0.228 0.549-7.299 3.488c-0.24 0.115-0.348 0.397-0.246 0.643l1.498 3.61c0.080 0.192 0.265 0.309 0.462 0.309 0.056 0 0.112-0.009 0.167-0.029l7.625-2.701 0.228 0.549c0.079 0.191 0.264 0.309 0.462 0.309 0.046 0 0.092-0.006 0.139-0.020l7.276-2.097 0.218 0.569c0.074 0.197 0.263 0.321 0.465 0.321 0.049 0 0.098-0.007 0.147-0.022l13-4c0.134-0.041 0.244-0.136 0.304-0.262s0.065-0.272 0.013-0.401l-5-12.501zM2.7 21.469l-1.134-2.734 6.823-3.261 1.439 3.47-7.128 2.525zM11.191 19.623l-0.238-0.574c0 0 0 0 0 0l-1.843-4.445c0 0 0 0 0 0l-0.238-0.573 6.336-3.475 2.374 6.134 0.375 0.981-6.766 1.952zM19.3 18.385l-0.203-0.531c-0.003-0.011-0.001-0.024-0.006-0.035l-0.618-1.597-2.754-7.206 11.023-5.815 4.592 11.48-12.034 3.704zM28.964 0.314c-0.103-0.257-0.395-0.381-0.65-0.279-0.256 0.103-0.381 0.394-0.279 0.65l6 15c0.079 0.196 0.267 0.315 0.465 0.315 0.062 0 0.125-0.011 0.186-0.036 0.256-0.103 0.381-0.394 0.279-0.65l-6.001-15zM18 21h-3c-1.14 0-2 0.86-2 2v1.315l-5.879 6.859c-0.18 0.209-0.156 0.525 0.054 0.705 0.094 0.081 0.21 0.121 0.325 0.121 0.141 0 0.281-0.059 0.379-0.175l5.851-6.825h2.27v6.5c0 0.276 0.224 0.5 0.5 0.5s0.5-0.224 0.5-0.5v-6.5h2.27l5.85 6.825c0.099 0.116 0.239 0.175 0.38 0.175 0.115 0 0.231-0.040 0.325-0.121 0.21-0.18 0.234-0.495 0.054-0.705l-5.879-6.859v-1.24c0-1.163-0.878-2.075-2-2.075zM19 24h-5v-1c0-0.589 0.411-1 1-1h3c0.57 0 1 0.462 1 1.075v0.925z"></path>
</svg>

After

Width:  |  Height:  |  Size: 1.7 KiB

379
src/sass/_base.scss Normal file
View File

@ -0,0 +1,379 @@
html {
font-size: $font-size-base;
letter-spacing: 0.33px;
scroll-behavior: smooth;
}
html,
body {
min-width: $body-min-width;
overflow-x: hidden;
}
body {
color: $body-font-color;
background: $body-background;
font-weight: $body-font-weight;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
box-sizing: border-box;
* {
box-sizing: inherit;
}
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-weight: $body-font-weight;
display: flex;
align-items: center;
> code {
border-top: 3px solid $gray-300;
font-size: 0.75em !important;
}
}
h4,
h5,
h6 {
> code {
font-size: 0.8rem !important;
}
}
a {
text-decoration: underline;
color: $color-link;
&:hover {
background: $color-link;
color: $white!important;
text-decoration: none;
}
&:visited {
color: $color-link;
}
}
img {
vertical-align: middle;
}
.wrapper {
display: flex;
flex-direction: column;
min-height: 100vh;
}
.container {
width: 100%;
max-width: $container-max-width;
margin: 0 auto;
padding: $padding-16;
}
.icon {
display: inline-block;
width: 1em;
height: 1em;
vertical-align: middle;
stroke-width: 0;
stroke: currentColor;
fill: currentColor;
position: relative;
}
.gblog-header {
background: $main-color;
color: $white;
padding: $padding-16 0;
&__link,
&__link:visited {
color: inherit;
text-decoration: none;
}
&__link:hover {
background: none;
}
.icon {
width: $font-size-32;
height: $font-size-32;
}
}
.gblog-brand {
font-size: $font-size-32 * 1.5;
&__subtitle {
margin-top: $padding-16;
font-size: $font-size-16;
}
&__img {
margin-right: $padding-16;
}
}
.gblog-nav {
background: $second-color;
color: $white;
.container {
padding: $padding-8 $padding-16;
}
li {
display: inline-block;
}
&__entry {
color: $white;
text-decoration: none;
padding: $padding-4 $padding-8;
border: 1px solid;
border-radius: $border-radius;
display: inline-block;
margin: $padding-4;
&:hover,
&.is-active {
background: lighten($second-color, 10%);
}
&:visited {
color: inherit;
}
}
&__control {
display: none;
label {
&:hover {
cursor: pointer;
}
}
.icon {
width: 1.5rem;
height: 1.5rem;
top: 0;
padding-right: $padding-4;
}
.icon.menu {
display: inline-block;
}
.icon.clean {
display: none;
}
}
}
.gblog-page {
min-width: $body-min-width;
flex-grow: 1;
}
.gblog-post {
word-wrap: break-word;
border-top: 1px dashed $gray-600;
padding: $padding-32 0;
&__header {
h1 {
margin-top: 0;
}
a, a:visited {
color: inherit;
text-decoration: none;
}
a:hover {
background: none;
text-decoration: underline;
color: $body-font-color!important;
}
}
&:first-child {
border-top: 0;
}
&__readmore {
margin: 1.5rem 0 $padding-32 0;
a {
background-image: linear-gradient($color-link, $color-link);
background-position: 0 100%;
background-size: 100% 1px;
background-repeat: no-repeat;
text-decoration: none;
&:after {
font-family: GeekdocIcons;
content: "\ea02";
}
}
}
&__tag {
margin: $padding-4 0!important;
.gblog-button__link {
padding: $padding-4 $padding-8;
&:hover {
background: none;
}
}
}
&__anchorwrap {
&:hover .gblog-post__anchor {
background: none;
color: $gray-500!important;
}
}
&__anchor {
min-width: 30px;
color: transparent;
&--left {
position: absolute;
margin-left: -25px;
text-align: left;
}
&--right {
text-align: right;
}
.icon {
width: 1.4rem;
height: 1.4rem;
}
}
&__footer {
.icon {
width: 1.5rem;
height: 1.5rem;
}
}
}
.gblog-footer {
background: $second-color;
color: $white;
&__item {
margin-right: $padding-16;
line-height: 1.5rem;
}
&__link {
color: $color-link-footer;
&:hover {
background: $color-link-footer;
color: $body-font-color!important;
}
&:visited {
color: $color-link-footer;
}
}
}
.gblog-paging {
padding: $padding-16 0;
}
.gblog-toc {
// Classes to hide nested levels of ToC/Menu
&__level--1 ul ul,
&__level--2 ul ul ul,
&__level--3 ul ul ul ul,
&__level--4 ul ul ul ul ul,
&__level--5 ul ul ul ul ul ul,
&__level--6 ul ul ul ul ul ul ul {
display: none;
}
a,
a:visited {
color: $color-link;
}
}
@media screen and (max-width: $sm-breakpoint) {
.gblog-nav {
color: $white;
.container {
padding: 0;
}
&__list{
background: lighten($second-color, 10%);
flex-direction: column;
justify-content: center;
max-height: 0;
overflow: hidden;
}
&__entry {
color: $white;
text-decoration: none;
padding: $padding-16 0;
border: 0;
border-radius: 0;
display: block;
margin: 0;
text-align: center;
&:hover,
&.is-active {
background: lighten($second-color, 5%);
}
}
&__control {
display: block;
text-align: center;
label {
padding: $padding-16 0;
}
}
}
}
#menu-control:checked ~ .gblog-nav__list {
max-height: 100%;
}
#menu-control:checked ~ .gblog-nav__control {
.icon.menu {
display: none;
}
.icon.clean {
display: inline-block;
}
}

View File

@ -0,0 +1,377 @@
.chroma {
background-color: #ffffff;
color: #555;
margin: 1rem 0;
}
.chroma code {
background-color: $color-code;
display: block;
line-height: 1.45;
font-size: 0.85em;
border-radius: $border-radius;
}
.chroma .lntable td:first-child code {
border-radius: 0;
border-top-left-radius: $border-radius;
border-bottom-left-radius: $border-radius;
}
.chroma .lntable td:nth-child(2) code {
border-radius: 0;
border-top-right-radius: $border-radius;
border-bottom-right-radius: $border-radius;
padding-left: 0.5em;
}
.chroma .lntable td:nth-child(2) code .hl {
width: auto;
margin-left: -0.5em;
padding: 0 0.5em;
}
.highlight {
pre.chroma {
margin: 0;
}
> pre.chroma code {
padding: 1rem;
width: 100%;
overflow: auto;
}
}
/* Error */
.chroma .err {
color: #a61717;
background-color: #e3d2d2;
}
/* LineTableTD */
.chroma .lntd {
vertical-align: top;
padding: 0;
margin: 0;
border: 0;
}
/* LineTable */
.chroma .lntable {
border-spacing: 0;
padding: 0;
margin: 0;
border: 0;
width: 100%;
overflow: auto;
display: block;
}
.chroma .lntable td:first-child code {
background-color: $gray-200;
border-right: 1px solid #dcdfe3;
padding: 0.5em 0;
}
.chroma .lntable td code {
padding: 0.5em 0;
}
.chroma .lntable td:nth-child(2) {
width: 100%;
margin-left: 2em;
}
/* LineHighlight */
.chroma .hl {
display: block;
width: 100%;
background-color: #ffffcc;
}
/* LineNumbersTable */
.chroma .lnt {
padding: 0 0.8em;
}
/* LineNumbers */
.chroma .ln {
margin-right: 0.4em;
padding: 0 0.4em 0 0.4em;
}
/* Keyword */
.chroma .k {
color: #000000;
font-weight: bold;
}
/* KeywordConstant */
.chroma .kc {
color: #000000;
font-weight: bold;
}
/* KeywordDeclaration */
.chroma .kd {
color: #000000;
font-weight: bold;
}
/* KeywordNamespace */
.chroma .kn {
color: #000000;
font-weight: bold;
}
/* KeywordPseudo */
.chroma .kp {
color: #000000;
font-weight: bold;
}
/* KeywordReserved */
.chroma .kr {
color: #000000;
font-weight: bold;
}
/* KeywordType */
.chroma .kt {
color: #445588;
font-weight: bold;
}
/* NameAttribute */
.chroma .na {
color: #008080;
}
/* NameBuiltin */
.chroma .nb {
color: #0086b3;
}
/* NameBuiltinPseudo */
.chroma .bp {
color: #999999;
}
/* NameClass */
.chroma .nc {
color: #445588;
font-weight: bold;
}
/* NameConstant */
.chroma .no {
color: #008080;
}
/* NameDecorator */
.chroma .nd {
color: #3c5d5d;
font-weight: bold;
}
/* NameEntity */
.chroma .ni {
color: #800080;
}
/* NameException */
.chroma .ne {
color: #990000;
font-weight: bold;
}
/* NameFunction */
.chroma .nf {
color: #990000;
font-weight: bold;
}
/* NameLabel */
.chroma .nl {
color: #990000;
font-weight: bold;
}
/* NameNamespace */
.chroma .nn {
color: #555555;
}
/* NameTag */
.chroma .nt {
color: #000080;
}
/* NameVariable */
.chroma .nv {
color: #008080;
}
/* NameVariableClass */
.chroma .vc {
color: #008080;
}
/* NameVariableGlobal */
.chroma .vg {
color: #008080;
}
/* NameVariableInstance */
.chroma .vi {
color: #008080;
}
/* LiteralString */
.chroma .s {
color: #dd1144;
}
/* LiteralStringAffix */
.chroma .sa {
color: #dd1144;
}
/* LiteralStringBacktick */
.chroma .sb {
color: #dd1144;
}
/* LiteralStringChar */
.chroma .sc {
color: #dd1144;
}
/* LiteralStringDelimiter */
.chroma .dl {
color: #dd1144;
}
/* LiteralStringDoc */
.chroma .sd {
color: #dd1144;
}
/* LiteralStringDouble */
.chroma .s2 {
color: #dd1144;
}
/* LiteralStringEscape */
.chroma .se {
color: #dd1144;
}
/* LiteralStringHeredoc */
.chroma .sh {
color: #dd1144;
}
/* LiteralStringInterpol */
.chroma .si {
color: #dd1144;
}
/* LiteralStringOther */
.chroma .sx {
color: #dd1144;
}
/* LiteralStringRegex */
.chroma .sr {
color: #009926;
}
/* LiteralStringSingle */
.chroma .s1 {
color: #dd1144;
}
/* LiteralStringSymbol */
.chroma .ss {
color: #990073;
}
/* LiteralNumber */
.chroma .m {
color: #009999;
}
/* LiteralNumberBin */
.chroma .mb {
color: #009999;
}
/* LiteralNumberFloat */
.chroma .mf {
color: #009999;
}
/* LiteralNumberHex */
.chroma .mh {
color: #009999;
}
/* LiteralNumberInteger */
.chroma .mi {
color: #009999;
}
/* LiteralNumberIntegerLong */
.chroma .il {
color: #009999;
}
/* LiteralNumberOct */
.chroma .mo {
color: #009999;
}
/* Operator */
.chroma .o {
color: #000000;
font-weight: bold;
}
/* OperatorWord */
.chroma .ow {
color: #000000;
font-weight: bold;
}
/* Comment */
.chroma .c {
color: #999988;
font-style: italic;
}
/* CommentHashbang */
.chroma .ch {
color: #999988;
font-style: italic;
}
/* CommentMultiline */
.chroma .cm {
color: #999988;
font-style: italic;
}
/* CommentSingle */
.chroma .c1 {
color: #999988;
font-style: italic;
}
/* CommentSpecial */
.chroma .cs {
color: #999999;
font-weight: bold;
font-style: italic;
}
/* CommentPreproc */
.chroma .cp {
color: #999999;
font-weight: bold;
font-style: italic;
}
/* CommentPreprocFile */
.chroma .cpf {
color: #999999;
font-weight: bold;
font-style: italic;
}
/* GenericDeleted */
.chroma .gd {
color: #000000;
background-color: #ffdddd;
}
/* GenericEmph */
.chroma .ge {
color: #000000;
font-style: italic;
}
/* GenericError */
.chroma .gr {
color: #aa0000;
}
/* GenericHeading */
.chroma .gh {
color: #999999;
}
/* GenericInserted */
.chroma .gi {
color: #000000;
background-color: #ddffdd;
}
/* GenericOutput */
.chroma .go {
color: #888888;
}
/* GenericPrompt */
.chroma .gp {
color: #555555;
}
/* GenericStrong */
.chroma .gs {
font-weight: bold;
}
/* GenericSubheading */
.chroma .gu {
color: #aaaaaa;
}
/* GenericTraceback */
.chroma .gt {
color: #aa0000;
}
/* GenericUnderline */
.chroma .gl {
text-decoration: underline;
}
/* TextWhitespace */
.chroma .w {
color: #bbbbbb;
}

55
src/sass/_defaults.scss Normal file
View File

@ -0,0 +1,55 @@
// Used in layout
$padding-1: 1px !default;
$padding-4: 0.25rem !default;
$padding-8: 0.5rem !default;
$padding-16: 1rem !default;
$padding-32: 2rem !default;
$font-size-base: 16px !default;
$font-size-12: 0.75rem !default;
$font-size-14: 0.875rem !default;
$font-size-16: 1rem !default;
$font-size-32: 2rem !default;
$border-radius: 0.30rem !default;
// Grayscale
$white: rgba(255, 255, 255, 1) !default;
$gray-100: rgba(248, 249, 250, 1) !default;
$gray-200: rgba(233, 236, 239, 1) !default;
$gray-300: rgba(222, 226, 230, 1) !default;
$gray-400: rgba(206, 212, 218, 1) !default;
$gray-500: rgba(173, 181, 189, 1) !default;
$gray-600: rgba(134, 142, 150, 1) !default;
$gray-700: rgba(73, 80, 87, 1) !default;
$gray-800: rgba(52, 58, 64, 1) !default;
$gray-900: rgba(33, 37, 41, 1) !default;
$black: rgba(0, 0, 0, 1) !default;
$color-link: rgba(10, 83, 154, 1) !default;
$color-link-visited: rgba(119, 73, 191, 1) !default;
$color-link-footer: rgba(255,163,30,1.0) !default;
$color-code: rgba($gray-200, 0.5) !default;
$header-font-size: 2em;
$header-font-size-small: 1.5em;
$body-background: white !default;
$body-font-color: $gray-800 !default;
$body-font-weight: normal !default;
$body-min-width: 20rem !default;
$container-max-width: 60rem !default;
$main-color: rgba(65, 134, 201, 1) !default;
$second-color: rgba(47, 51, 62, 1) !default;
$sm-breakpoint: 45rem !default;
// Panel colors
$hint-colors: (
info: rgba(102, 187, 255, 1),
warning: rgba(255, 221, 102, 1),
danger: rgba(255, 102, 102, 1)
) !default;

77
src/sass/_fonts.scss Normal file
View File

@ -0,0 +1,77 @@
@font-face {
font-family: "Liberation Sans";
src: url("fonts/LiberationSans-Bold.woff2") format("woff2"), url("fonts/LiberationSans-Bold.woff") format("woff");
font-weight: bold;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Liberation Sans";
src: url("fonts/LiberationSans-BoldItalic.woff2") format("woff2"),
url("fonts/LiberationSans-BoldItalic.woff") format("woff");
font-weight: bold;
font-style: italic;
font-display: swap;
}
@font-face {
font-family: "Liberation Sans";
src: url("fonts/LiberationSans-Italic.woff2") format("woff2"), url("fonts/LiberationSans-Italic.woff") format("woff");
font-weight: normal;
font-style: italic;
font-display: swap;
}
@font-face {
font-family: "Liberation Sans";
src: url("fonts/LiberationSans.woff2") format("woff2"), url("fonts/LiberationSans.woff") format("woff");
font-weight: normal;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Liberation Mono";
src: url("fonts/LiberationMono.woff2") format("woff2"), url("fonts/LiberationMono.woff") format("woff");
font-weight: normal;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Droid Sans";
src: url("fonts/DroidSans.woff2") format("woff2"), url("fonts/DroidSans.woff") format("woff");
font-weight: normal;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Metropolis";
src: url("fonts/Metropolis.woff2") format("woff2"), url("fonts/Metropolis.woff") format("woff");
font-weight: normal;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "GeekblogIcons";
src: url("fonts/GeekblogIcons.woff2") format("woff2"), url("fonts/GeekblogIcons.woff") format("woff");
font-weight: normal;
font-style: normal;
font-display: swap;
}
body {
font-family: "Liberation Sans", sans-serif;
}
code,
.gblog-error__title {
font-family: "Liberation Mono", monospace;
}
.gblog-header {
font-family: "Metropolis", sans-serif;
}

126
src/sass/_markdown.scss Normal file
View File

@ -0,0 +1,126 @@
.gblog-markdown {
line-height: 1.6em;
> :first-child {
margin-top: 0;
}
&--nested {
:first-child {
margin-top: 0;
}
> :last-child {
margin-bottom: 0;
}
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-weight: normal;
line-height: 1em;
margin-top: 1.5em;
margin-bottom: $padding-16;
}
h4,
h5,
h6 {
font-weight: bolder;
}
h5 {
font-size: 0.875em;
}
h6 {
font-size: 0.75em;
}
b,
optgroup,
strong {
font-weight: bolder;
}
img {
max-width: 100%;
}
blockquote {
margin: $padding-16 0;
padding: $padding-8 $padding-16 $padding-8 ($padding-16 - $padding-4); //to keep total left space 16dp
border-left: $padding-4 solid $gray-200;
border-radius: $border-radius;
:first-child {
margin-top: 0;
}
:last-child {
margin-bottom: 0;
}
}
table {
overflow: auto;
display: block;
border-spacing: 0;
border-collapse: collapse;
margin-top: $padding-16;
margin-bottom: $padding-16;
tr th,
tr td {
padding: $padding-8 $padding-16;
border: $padding-1 solid $gray-200;
}
tr:nth-child(2n) {
background: $gray-100;
}
}
hr {
height: $padding-1;
border: none;
background: $gray-200;
}
ul,
ol {
padding-left: $padding-16 * 2;
}
dl {
dt {
font-weight: bolder;
margin-top: $padding-16;
}
dd {
margin-left: $padding-16 * 2;
}
}
pre {
margin: 1rem 0;
}
code {
background-color: $color-code;
font-size: 0.85em;
line-height: 1.45;
padding: 0.2em 0.4em;
}
> pre code {
display: block;
padding: 1rem;
width: 100%;
overflow: auto;
}
}

349
src/sass/_normalize.css Normal file
View File

@ -0,0 +1,349 @@
/*! 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.
*/
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-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-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-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;
}

19
src/sass/_print.scss Normal file
View File

@ -0,0 +1,19 @@
@media print {
.gblog-nav,
.gblog-footer {
display: none;
}
main {
flex-direction: column-reverse;
}
.gblog-toc {
flex: none;
nav {
position: relative;
width: auto;
}
}
}

119
src/sass/_shortcodes.scss Normal file
View File

@ -0,0 +1,119 @@
// {{< expand "Label" "icon" >}}
.gblog-expand {
margin-top: $padding-16;
margin-bottom: $padding-16;
border: $padding-1 solid $gray-200;
border-radius: $border-radius;
overflow: hidden;
&__head {
background: $gray-100;
padding: $padding-8 $padding-16;
cursor: pointer;
}
&__content {
display: none;
padding: $padding-16;
}
&__control:checked + &__content {
display: block;
}
.gblog-page__anchor {
display: none;
}
}
// {{< tabs >}}
.gblog-tabs {
margin-top: $padding-16;
margin-bottom: $padding-16;
border: $padding-1 solid $gray-200;
border-radius: $border-radius;
overflow: hidden;
display: flex;
flex-wrap: wrap;
&__label {
display: inline-block;
padding: $padding-8 $padding-16;
border-bottom: $padding-1 transparent;
cursor: pointer;
}
&__content {
order: 999; //Move content blocks to the end
width: 100%;
border-top: $padding-1 solid $gray-100;
padding: $padding-16;
display: none;
}
&__control:checked + &__label {
border-bottom: $padding-1 solid $color-link;
}
&__control:checked + &__label + &__content {
display: block;
}
}
// {{< columns >}}
.gblog-columns {
margin-left: -$padding-16;
margin-right: -$padding-16;
&__content {
margin: $padding-16 0;
min-width: $body-min-width * 0.66;
padding: 0 $padding-16;
}
.gblog-page__anchor {
display: none;
}
}
// {{< button >}}
.gblog-button {
display: inline-block;
color: $gray-700;
border: $padding-1 solid $gray-500;
border-radius: $border-radius;
margin: $padding-8 0;
cursor: pointer;
&__link {
display: inline-block;
color: inherit !important;
text-decoration: none !important;
padding: $padding-4 $padding-16;
}
&:hover {
background: rgba($main-color, 0.9);
border-color: $main-color;
color: $gray-100;
}
}
// {{< hint >}}
.gblog-hint {
@each $name, $color in $hint-colors {
&.#{$name} {
border-left-color: $color;
background-color: rgba($color, 0.1);
}
}
}
// {{< mermaid >}}
.gblog-mermaid {
font-family: "Liberation Sans", sans-serif;
}

55
src/sass/_utils.scss Normal file
View File

@ -0,0 +1,55 @@
.flex {
display: flex;
}
.flex-inline {
display: inline-flex;
}
.flex-auto {
flex: 1 1 auto;
}
.flex-even {
flex: 1 1;
}
.flex-wrap {
flex-wrap: wrap;
}
.justify-start {
justify-content: flex-start;
}
.justify-end {
justify-content: flex-end;
}
.justify-center {
justify-content: center;
}
.justify-between {
justify-content: space-between;
}
.align-center {
align-items: center;
}
.mx-auto {
margin: 0 auto;
}
.text-center {
text-align: center;
}
.no-wrap {
white-space: nowrap;
}
.hidden {
display: none;
}

11
src/sass/main.scss Normal file
View File

@ -0,0 +1,11 @@
@import "defaults";
@import "normalize";
@import "utils";
@import "fonts";
@import "base";
@import "print";
@import "markdown";
@import "chroma_github";
@import "shortcodes";

72
static/brand.svg Normal file
View File

@ -0,0 +1,72 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
inkscape:export-ydpi="6.3200002"
inkscape:export-xdpi="6.3200002"
inkscape:export-filename="/home/rknet/rkau2905/Bilder/geeklab-favicon-32.png"
sodipodi:docname="geeklab_invert.svg"
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
id="svg8"
version="1.1"
viewBox="0 0 128.54926 128.54977"
height="128.54977mm"
width="128.54926mm">
<defs
id="defs2" />
<sodipodi:namedview
inkscape:document-rotation="0"
inkscape:window-maximized="1"
inkscape:window-y="27"
inkscape:window-x="0"
inkscape:window-height="845"
inkscape:window-width="1600"
showguides="true"
inkscape:snap-text-baseline="false"
showgrid="false"
inkscape:current-layer="layer1"
inkscape:document-units="mm"
inkscape:cy="276.14727"
inkscape:cx="224.41157"
inkscape:zoom="0.9556962"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
borderopacity="1.0"
bordercolor="#666666"
pagecolor="#ffffff"
id="base">
<inkscape:grid
originy="-126.48947"
originx="-33.356623"
id="grid817"
type="xygrid" />
</sodipodi:namedview>
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
transform="translate(-33.356621,-41.960747)"
id="layer1"
inkscape:groupmode="layer"
inkscape:label="Ebene 1">
<path
inkscape:connector-curvature="0"
id="circle923"
d="M 97.631249,42.025425 A 64.609326,64.21017 0 0 0 33.022157,106.23536 64.609326,64.21017 0 0 0 97.631249,170.44584 64.609326,64.21017 0 0 0 162.24034,106.23536 64.609326,64.21017 0 0 0 97.631249,42.025425 Z m -9.264543,18.173944 h 18.529084 a 9.2644455,9.2072099 0 0 1 9.26454,9.207307 v 4.603384 a 4.6322228,4.603605 0 0 1 -4.63254,4.603922 v 8.332397 l 25.47709,44.010511 c 1.48237,2.16379 2.31654,4.7416 2.31654,7.50378 a 13.896668,13.810815 0 0 1 -13.89708,13.81069 H 69.838161 A 13.896668,13.810815 0 0 1 55.941077,138.46067 c 0,-2.76218 0.834138,-5.33999 2.316542,-7.50378 L 83.734706,86.946379 V 78.613982 A 4.6322228,4.603605 0 0 1 79.102163,74.01006 v -4.603384 a 9.2644455,9.2072099 0 0 1 9.264543,-9.207307 z m 4.632001,9.207307 V 89.432203 L 66.03938,135.83647 c -0.509649,0.736 -0.83376,1.6566 -0.83376,2.6242 a 4.6322228,4.603605 0 0 0 4.632541,4.60338 h 55.586179 a 4.6322228,4.603605 0 0 0 4.63254,-4.60338 c 0,-0.96741 -0.32412,-1.88767 -0.83376,-2.6242 L 102.26325,89.432203 V 69.406676 Z m 6.948542,36.828684 a 2.3161114,2.3018025 0 0 1 2.316001,2.30169 2.3161114,2.3018025 0 0 1 -2.316001,2.3017 2.3161114,2.3018025 0 0 1 -2.316,-2.3017 2.3161114,2.3018025 0 0 1 2.316,-2.30169 z m -9.773792,6.39898 12.089793,12.01564 6.20742,-6.16908 8.94003,15.37638 H 77.851794 Z"
style="fill:#ffffff;fill-opacity:1;stroke-width:1.3164" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
static/fonts/DroidSans.woff Normal file

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.

Some files were not shown because too many files have changed in this diff Show More