add basic page layout
@ -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
@ -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
@ -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
@ -0,0 +1,6 @@
|
||||
---
|
||||
default: True
|
||||
MD013: False
|
||||
MD041: False
|
||||
MD004:
|
||||
style: dash
|
6
exampleSite/archetypes/default.md
Normal file
@ -0,0 +1,6 @@
|
||||
---
|
||||
title: "{{ replace .Name "-" " " | title }}"
|
||||
date: {{ .Date }}
|
||||
draft: true
|
||||
---
|
||||
|
19
exampleSite/config.yml
Normal 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
|
3
exampleSite/content/contact.md
Normal file
@ -0,0 +1,3 @@
|
||||
---
|
||||
title: "Contact"
|
||||
---
|
3
exampleSite/content/legal-notice.md
Normal file
@ -0,0 +1,3 @@
|
||||
---
|
||||
title: "Legal Notice"
|
||||
---
|
18
exampleSite/content/posts/post-1.md
Normal 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.
|
10
exampleSite/content/posts/post-short.md
Normal 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.
|
14
exampleSite/content/posts/post-with-image/index.md
Normal 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.
|
2
exampleSite/data/authors/john-doe.yml
Normal file
@ -0,0 +1,2 @@
|
||||
name: John Doe
|
||||
email: john@example.com
|
2
exampleSite/data/authors/richard-roe.yml
Normal file
@ -0,0 +1,2 @@
|
||||
name: Richard Roe
|
||||
email: richard@example.com
|
173
gulpfile.js
Normal 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
@ -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>
|
23
layouts/_default/baseof.html
Normal 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>
|
6
layouts/_default/list.html
Normal file
@ -0,0 +1,6 @@
|
||||
{{ define "main" }}
|
||||
{{ range .Paginator.Pages }}
|
||||
{{ partial "list.html" . }}
|
||||
{{ end }}
|
||||
{{ partial "pagination.html" . }}
|
||||
{{ end }}
|
11
layouts/_default/single.html
Normal 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
@ -0,0 +1,8 @@
|
||||
{{ define "main" }}
|
||||
{{ $paginator := .Paginate (where .Site.RegularPages "Type" "posts") }}
|
||||
|
||||
{{ range $paginator.Pages }}
|
||||
{{ partial "list.html" . }}
|
||||
{{ end }}
|
||||
{{ partial "pagination.html" . }}
|
||||
{{ end }}
|
11
layouts/partials/content.html
Normal 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" }}
|
8
layouts/partials/foot.html
Normal 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 }}
|
17
layouts/partials/head.html
Normal 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 }}
|
56
layouts/partials/list.html
Normal 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>
|
15
layouts/partials/pagination.html
Normal 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 }}">← 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 →</a>
|
||||
{{ end }}
|
||||
</div>
|
||||
</nav>
|
18
layouts/partials/site-footer.html
Normal 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>
|
31
layouts/partials/site-header.html
Normal 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>
|
1
layouts/partials/svg-icon-symbols.html
Normal file
After Width: | Height: | Size: 8.0 KiB |
11
layouts/partials/title.html
Normal 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
@ -0,0 +1,8 @@
|
||||
{{ define "main" }}
|
||||
{{ $paginator := .Paginate (where .Site.RegularPages "Type" "posts") }}
|
||||
|
||||
{{ range $paginator.Pages }}
|
||||
{{ partial "list.html" . }}
|
||||
{{ end }}
|
||||
{{ partial "pagination.html" . }}
|
||||
{{ end }}
|
17
layouts/shortcodes/button.html
Normal 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>
|
7
layouts/shortcodes/columns.html
Normal 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>
|
11
layouts/shortcodes/expand.html
Normal 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>
|
3
layouts/shortcodes/hint.html
Normal file
@ -0,0 +1,3 @@
|
||||
<blockquote class="gblog-hint {{ .Get 0 }}">
|
||||
{{ .Inner | markdownify }}
|
||||
</blockquote>
|
16
layouts/shortcodes/mermaid.html
Normal 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>
|
12
layouts/shortcodes/tab.html
Normal 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}}
|
16
layouts/shortcodes/tabs.html
Normal 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>
|
5
layouts/shortcodes/toc.html
Normal 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
34
package.json
Normal 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"
|
||||
]
|
||||
}
|
80
src/favicon/favicon-master.svg
Normal 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 |
1
src/favicon/faviconData.json
Normal 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"}
|
5
src/iconfont/uEA01-arrow_back.svg
Normal 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 |
5
src/iconfont/uEA02-arrow_right_alt.svg
Normal 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/iconfont/uEA03-bookmark.svg
Normal 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/iconfont/uEA04-code.svg
Normal 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/iconfont/uEA05-date.svg
Normal 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/iconfont/uEA06-download.svg
Normal 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/iconfont/uEA07-email.svg
Normal 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/iconfont/uEA08-github.svg
Normal 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/iconfont/uEA09-heart.svg
Normal 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/iconfont/uEA0A-link.svg
Normal 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/iconfont/uEA0B-menu.svg
Normal 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 |
5
src/iconfont/uEA0C-notification.svg
Normal 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/iconfont/uEA0D-path.svg
Normal 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/iconfont/uEA0E-person.svg
Normal 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/iconfont/uEA0F-search.svg
Normal 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/iconfont/uEA10-shield.svg
Normal 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/iconfont/uEA11-tags.svg
Normal 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/iconfont/uEA12-telescope.svg
Normal 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 |
5
src/iconfont/uEA13-arrow_left_alt.svg
Normal 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 |
5
src/iconfont/uEA14-clean.svg
Normal 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
@ -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 |
5
src/icons/arrow_left_alt.svg
Normal 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 |
5
src/icons/arrow_right_alt.svg
Normal 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
@ -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
@ -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
@ -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
@ -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
@ -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
@ -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
@ -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
@ -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
@ -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
@ -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 |
5
src/icons/notification.svg
Normal 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
@ -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
@ -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
@ -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
@ -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
@ -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
@ -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
@ -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;
|
||||
}
|
||||
}
|
377
src/sass/_chroma_github.scss
Normal 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
@ -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
@ -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
@ -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
@ -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
@ -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
@ -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
@ -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
@ -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
@ -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 |