initial commit
21
.gitignore
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
# Hugo
|
||||
## Generated files by hugo
|
||||
/public/
|
||||
/resources/_gen/
|
||||
/assets/jsconfig.json
|
||||
hugo_stats.json
|
||||
|
||||
## Executable may be added to repository
|
||||
hugo.exe
|
||||
hugo.darwin
|
||||
hugo.linux
|
||||
|
||||
## Temporary lock file while building
|
||||
/.hugo_build.lock
|
||||
|
||||
## Misc
|
||||
.DS_Store
|
||||
geckodriver.log
|
||||
.idea/
|
||||
.hugo_build.lock
|
||||
|
14
archetypes/default.md
Normal file
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
title: "Hello, world!"
|
||||
date: 2021-01-01
|
||||
description: "A blog post"
|
||||
image: "/path/to/image.png"
|
||||
type: "post"
|
||||
tags: ["blog"]
|
||||
|
||||
|
||||
title: "Hello, world!"
|
||||
image: "/path/to/image.png"
|
||||
type: "page"
|
||||
showTableOfContents: true
|
||||
---
|
92
assets/css/dark.css
Normal file
|
@ -0,0 +1,92 @@
|
|||
:root {
|
||||
--dark-primary-color: 45, 42, 46;
|
||||
--dark-secondary-color: #665D40;
|
||||
--dark-tertiary-color: #ac9c6d;
|
||||
--dark-text-color: #f7f6f3;
|
||||
}
|
||||
|
||||
html {
|
||||
background-color: rgb(var(--dark-primary-color));
|
||||
color: var(--dark-text-color);
|
||||
fill: var(--dark-text-color);
|
||||
}
|
||||
|
||||
.header {
|
||||
background-color: rgba(var(--dark-primary-color), 0.95);
|
||||
}
|
||||
|
||||
.nav-hamburger-list {
|
||||
background: rgba(var(--dark-primary-color), 1);
|
||||
}
|
||||
|
||||
.nav-links .nav-icons-divider {
|
||||
color: var(--dark-secondary-color);
|
||||
}
|
||||
|
||||
a:hover .feather-moon {
|
||||
fill: var(--dark-text-color);
|
||||
color: var(--dark-text-color);
|
||||
}
|
||||
|
||||
.social-icons-list .social-icon,
|
||||
.social-icons-list .social-icon a:visited {
|
||||
fill: var(--dark-text-color);
|
||||
}
|
||||
|
||||
.social-icons-list .social-icon a:hover {
|
||||
fill: var(--accent-color);
|
||||
}
|
||||
|
||||
.post-tags .post-tag:hover {
|
||||
background-color: var(--dark-text-color);
|
||||
color: rgb(var(--dark-primary-color));
|
||||
}
|
||||
|
||||
.tags-list .post-tags .post-tag a .tag-posts-count {
|
||||
background-color: var(--dark-secondary-color);
|
||||
}
|
||||
|
||||
.tags-list .post-tags .post-tag:hover a .tag-posts-count {
|
||||
background-color: var(--dark-text-color);
|
||||
color: rgb(var(--dark-primary-color));
|
||||
}
|
||||
|
||||
.footer {
|
||||
border-top-color: var(--dark-header-bg-color);
|
||||
}
|
||||
|
||||
blockquote {
|
||||
color: darkgrey;
|
||||
border-left-color: var(--dark-secondary-color);
|
||||
}
|
||||
|
||||
hr {
|
||||
color: var(--dark-secondary-color);
|
||||
}
|
||||
|
||||
table thead {
|
||||
background-color: var(--dark-secondary-color);
|
||||
}
|
||||
|
||||
table td,
|
||||
table th {
|
||||
border-bottom-color: var(--dark-secondary-color);
|
||||
}
|
||||
|
||||
code,
|
||||
pre {
|
||||
background-color: var(--dark-secondary-color) !important;
|
||||
}
|
||||
|
||||
:not(pre) > code {
|
||||
background-color: var(--dark-tertiary-color) !important;
|
||||
color: var(--dark-text-color);
|
||||
}
|
||||
|
||||
.header-shadow {
|
||||
box-shadow: rgb(33, 38, 45) 0px -1px 0px 0px inset;
|
||||
}
|
||||
|
||||
.arrow-logo {
|
||||
background-color: var(--dark-secondary-color);
|
||||
}
|
671
assets/css/main.css
Normal file
|
@ -0,0 +1,671 @@
|
|||
:root {
|
||||
--content-width: 1120px;
|
||||
--container-width: 810px;
|
||||
|
||||
--light-primary-color: 247,246,243;
|
||||
--light-secondary-color: #dddddd;
|
||||
--light-tertiary-color: #272822;
|
||||
--light-text-color: #4a5152;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: Lato;
|
||||
font-weight: 400;
|
||||
src: url("/fonts/Lato-Regular.ttf");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: Lato;
|
||||
font-weight: 700;
|
||||
src: url("/fonts/Lato-Bold.ttf");
|
||||
}
|
||||
|
||||
html {
|
||||
background-color: rgb(var(--light-primary-color));
|
||||
color: var(--light-text-color);
|
||||
font-family: "GFS Didot";
|
||||
font-size: 17.5px;
|
||||
min-height: 100%;
|
||||
position: relative;
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
body {
|
||||
margin-bottom: 170px;
|
||||
}
|
||||
|
||||
b,
|
||||
strong {
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
/* This is set in partials/head.html and is populated via config */
|
||||
a:hover {
|
||||
color: var(--accent-color);
|
||||
fill: var(--accent-color);
|
||||
}
|
||||
|
||||
main#content {
|
||||
margin: 90px auto 0;
|
||||
width: var(--content-width);
|
||||
}
|
||||
|
||||
main#content > .container {
|
||||
margin: auto;
|
||||
width: 75%;
|
||||
max-width: var(--container-width);
|
||||
}
|
||||
|
||||
.post.container {
|
||||
box-sizing: border-box;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.post-toc {
|
||||
box-sizing: border-box;
|
||||
display: inline-block;
|
||||
padding-left: 50px;
|
||||
vertical-align: top;
|
||||
/* Would be 25% had there been no margins or border box on all inline blocks */
|
||||
width: 24%;
|
||||
}
|
||||
|
||||
#toc {
|
||||
position: fixed;
|
||||
top: 80px;
|
||||
bottom: 20px;
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
|
||||
#toc ul {
|
||||
list-style: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
#toc ul li {
|
||||
margin-top: 12px;
|
||||
}
|
||||
|
||||
#toc ul li a.level-1 {
|
||||
padding-left: 0;
|
||||
}
|
||||
|
||||
#toc ul li a.level-2 {
|
||||
padding-left: 10px;
|
||||
}
|
||||
|
||||
#toc ul li a.level-3 {
|
||||
padding-left: 20px;
|
||||
}
|
||||
|
||||
#toc ul li a.level-4 {
|
||||
padding-left: 30px;
|
||||
}
|
||||
|
||||
#toc ul li a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
#toc ul li a.active {
|
||||
color: var(--accent-color);
|
||||
}
|
||||
|
||||
img {
|
||||
height: auto;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
/* HEADER */
|
||||
.header {
|
||||
background-color: rgba(var(--light-primary-color), 0.95);
|
||||
color: inherit;
|
||||
height: 50px;
|
||||
left: 0;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
transition: box-shadow 0.3s ease-in-out;
|
||||
width: 100%;
|
||||
z-index: 5;
|
||||
}
|
||||
|
||||
.header a {
|
||||
text-decoration: none;
|
||||
}
|
||||
.header .header-nav {
|
||||
height: 50px;
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.header-nav .avatar {
|
||||
border-radius: 18px;
|
||||
float: left;
|
||||
height: 100%;
|
||||
margin-left: 15px;
|
||||
}
|
||||
.header-nav .avatar img {
|
||||
border-radius: 100%;
|
||||
display: block;
|
||||
height: 38px;
|
||||
margin-top: 5px;
|
||||
overflow: hidden;
|
||||
width: 38px;
|
||||
}
|
||||
.header-nav .nav-title {
|
||||
display: inline-block;
|
||||
height: 100%;
|
||||
line-height: 50px;
|
||||
padding-left: 15px;
|
||||
}
|
||||
.nav-title a {
|
||||
height: 50px;
|
||||
}
|
||||
.header-nav .nav-links {
|
||||
float: right;
|
||||
line-height: 50px;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.nav-links .nav-link {
|
||||
display: inline-block;
|
||||
padding: 0 2px;
|
||||
}
|
||||
.nav-links .nav-link a {
|
||||
display: block;
|
||||
padding: 0 6px;
|
||||
}
|
||||
.nav-link a svg {
|
||||
height: 20px;
|
||||
margin: -3px auto;
|
||||
stroke-width: 2;
|
||||
width: 20px;
|
||||
}
|
||||
.nav-item a svg {
|
||||
height: 20px;
|
||||
margin: -3px auto;
|
||||
stroke-width: 2;
|
||||
width: 20px;
|
||||
}
|
||||
.nav-links .nav-link.icon a {
|
||||
padding: 0 8px;
|
||||
}
|
||||
.nav-links .nav-icons-divider {
|
||||
border-color: inherit;
|
||||
border-left: 1.5px solid;
|
||||
color: var(--light-secondary-color);
|
||||
margin: 0 10px;
|
||||
}
|
||||
.nav-links .dark-theme-toggle:hover {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
a:hover .feather-sun {
|
||||
fill: black;
|
||||
color: black;
|
||||
}
|
||||
|
||||
.dark-theme-toggle .feather {
|
||||
height: 22px;
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
width: 22px;
|
||||
}
|
||||
#hamburger-menu-toggle {
|
||||
display: none;
|
||||
}
|
||||
#hamburger-menu-toggle .feather {
|
||||
height: 24px;
|
||||
stroke-linecap: round;
|
||||
stroke-linejoin: round;
|
||||
width: 24px;
|
||||
}
|
||||
.nav-hamburger-list {
|
||||
background: rgb(var(--light-primary-color));
|
||||
border-bottom: solid 1.5px var(--light-secondary-color);
|
||||
border-top: solid 1.5px var(--light-secondary-color);
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
text-align: center;
|
||||
width: 100%;
|
||||
z-index: 5;
|
||||
}
|
||||
.nav-hamburger-list a:hover {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
/* FOOTER */
|
||||
.footer {
|
||||
bottom: 0;
|
||||
color: inherit;
|
||||
left: 0;
|
||||
margin-left: 30%;
|
||||
overflow: hidden;
|
||||
padding: 40px 0;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
width: 40%;
|
||||
}
|
||||
|
||||
.footer span {
|
||||
display: block;
|
||||
font-size: 0.85em;
|
||||
font-weight: 300;
|
||||
padding: 1px 0;
|
||||
}
|
||||
|
||||
/** COMMON **/
|
||||
.flex-break {
|
||||
flex-basis: 100%;
|
||||
height: 0;
|
||||
display: none;
|
||||
}
|
||||
|
||||
.visibility-hidden {
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.header-shadow {
|
||||
box-shadow: rgb(220, 220, 220) 0px 1px 5px;
|
||||
}
|
||||
|
||||
/* TAGS */
|
||||
.post-tags {
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
}
|
||||
.post-tags .post-tag {
|
||||
border: 1.5px solid;
|
||||
border-radius: 4px;
|
||||
box-sizing: border-box;
|
||||
color: inherit;
|
||||
display: inline-block;
|
||||
font-size: 14px;
|
||||
}
|
||||
.post-tags .post-tag:hover {
|
||||
background-color: var(--light-text-color);
|
||||
color: rgb(var(--light-primary-color));
|
||||
}
|
||||
.post-tag a {
|
||||
color: inherit;
|
||||
display: block;
|
||||
padding: 6px 12px;
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* CODE BLOCKS */
|
||||
code,
|
||||
pre {
|
||||
background-color: var(--light-tertiary-color);
|
||||
box-sizing: border-box;
|
||||
color: white;
|
||||
}
|
||||
|
||||
pre {
|
||||
font-size: 0.95rem;
|
||||
overflow: auto;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
code {
|
||||
box-decoration-break: clone;
|
||||
word-wrap: break-word;
|
||||
font-size: 0.8em;
|
||||
}
|
||||
|
||||
:not(pre) > code {
|
||||
background-color: var(--light-secondary-color) !important;
|
||||
color: var(--light-text-color);
|
||||
padding: 1px 4px;
|
||||
}
|
||||
|
||||
pre code {
|
||||
font-size: 0.9em;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
border-left: 2px solid var(--light-secondary-color);
|
||||
color: grey;
|
||||
padding-left: 1rem;
|
||||
margin-left: 0;
|
||||
}
|
||||
|
||||
hr {
|
||||
color: var(--light-secondary-color);
|
||||
margin: 50px auto;
|
||||
}
|
||||
|
||||
table {
|
||||
border-collapse: collapse;
|
||||
margin: 30px 0;
|
||||
text-align: left;
|
||||
display: block;
|
||||
overflow-x: auto;
|
||||
}
|
||||
|
||||
table thead {
|
||||
background-color: var(--light-secondary-color);
|
||||
}
|
||||
|
||||
table td,
|
||||
table th {
|
||||
padding: 1.4rem;
|
||||
}
|
||||
|
||||
table td {
|
||||
border-bottom: 1px solid var(--light-secondary-color);
|
||||
}
|
||||
|
||||
/* HOME PAGE */
|
||||
.home-about {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.home-about .avatar img {
|
||||
border-radius: 50%;
|
||||
height: auto;
|
||||
object-fit: cover;
|
||||
}
|
||||
|
||||
/* Avatar sizes (default is M) - XS, S, M, L, XL */
|
||||
.home-about .avatar img.size-xs {
|
||||
height: 7rem;
|
||||
width: 7rem;
|
||||
}
|
||||
|
||||
.home-about .avatar img.size-s {
|
||||
height: 9rem;
|
||||
width: 9rem;
|
||||
}
|
||||
|
||||
.home-about .avatar img.size-m {
|
||||
height: 11rem;
|
||||
width: 11rem;
|
||||
}
|
||||
|
||||
.home-about .avatar img.size-l {
|
||||
height: 13rem;
|
||||
width: 13rem;
|
||||
}
|
||||
|
||||
.home-about .avatar img.size-xl {
|
||||
height: 15rem;
|
||||
width: 15rem;
|
||||
}
|
||||
|
||||
.home-about h1 {
|
||||
font-size: 2em;
|
||||
}
|
||||
|
||||
.social-icons {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.social-icons .social-icons-list {
|
||||
display: inline-block;
|
||||
list-style-type: none;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.social-icons-list .social-icon {
|
||||
box-sizing: border-box;
|
||||
display: inline-block;
|
||||
fill: var(--light-text-color);
|
||||
height: 24px;
|
||||
margin: 0 6px;
|
||||
width: 24px;
|
||||
}
|
||||
|
||||
.social-icon a svg path {
|
||||
transition: fill 0.15s ease;
|
||||
}
|
||||
|
||||
.markdown-content {
|
||||
line-height: 1.25;
|
||||
width: 80%;
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.home-posts {
|
||||
margin: 0 auto;
|
||||
padding-top: 10px;
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
/* SINGLE */
|
||||
.post [role="doc-subtitle"] {
|
||||
font-size: 1.1em;
|
||||
font-style: italic;
|
||||
}
|
||||
.post {
|
||||
/* Prevent long strings from overflowing */
|
||||
overflow-wrap: break-word;
|
||||
}
|
||||
.post .post-date, .prev-post-date, .next-post-date {
|
||||
color: gray;
|
||||
}
|
||||
.post .post-content {
|
||||
line-height: 1.7;
|
||||
margin-top: 50px;
|
||||
letter-spacing: 0.5px;
|
||||
}
|
||||
.post-content h1, .post-content h2, .post-content h3, .post-content h4 {
|
||||
scroll-margin-top: 55px;
|
||||
}
|
||||
.post-content h1 {
|
||||
margin-top: 40px;
|
||||
}
|
||||
.post-content h2 {
|
||||
margin-top: 35px;
|
||||
}
|
||||
.post-content h3 {
|
||||
margin-top: 30px;
|
||||
}
|
||||
.post-content h4 {
|
||||
margin-top: 25px;
|
||||
}
|
||||
.post-content h5 {
|
||||
margin-top: 20px;
|
||||
}
|
||||
.post-content img {
|
||||
display: block;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
/* LIST */
|
||||
.list-posts .list-title {
|
||||
text-align: center;
|
||||
}
|
||||
.list-posts .posts-year {
|
||||
margin-top: 70px;
|
||||
}
|
||||
.list-posts .post-title {
|
||||
margin: 18px 0 0 15px;
|
||||
}
|
||||
.list-posts a {
|
||||
text-decoration: none;
|
||||
}
|
||||
.post-title .post-link,
|
||||
.post-title .post-date {
|
||||
display: inline-block;
|
||||
}
|
||||
.post-title .post-link {
|
||||
/* This magic number is the largest width that keeps the post-date div from
|
||||
* causing the line to wrap with the longest possible date string
|
||||
* "September 22, 2022"
|
||||
*/
|
||||
width: 73%;
|
||||
}
|
||||
.tags-list .post-tags {
|
||||
margin-top: 50px;
|
||||
}
|
||||
.tags-list .post-tags .post-tag {
|
||||
margin: 2px 5px;
|
||||
padding: 0;
|
||||
}
|
||||
.tags-list .post-tags .post-tag a {
|
||||
border-radius: inherit;
|
||||
padding: 0;
|
||||
}
|
||||
.tags-list .post-tags .post-tag a div {
|
||||
display: inline-block;
|
||||
}
|
||||
.tags-list .post-tags .post-tag a .tag-name {
|
||||
padding: 5px 8px;
|
||||
}
|
||||
.tags-list .post-tags .post-tag a .tag-posts-count {
|
||||
background-color: var(--light-secondary-color);
|
||||
border-radius: inherit;
|
||||
color: inherit;
|
||||
opacity: 0.8;
|
||||
padding: 6px;
|
||||
position: relative;
|
||||
z-index: 0;
|
||||
}
|
||||
.tags-list .post-tags .post-tag:hover a .tag-posts-count {
|
||||
background-color: var(--light-text-color);
|
||||
color: rgb(var(--light-primary-color));
|
||||
}
|
||||
|
||||
.text-404 {
|
||||
margin-top: 125px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1120px) {
|
||||
main#content {
|
||||
width: auto;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 820px) {
|
||||
body {
|
||||
font-size: 0.95rem;
|
||||
}
|
||||
|
||||
.flex-break {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.home-about .avatar img {
|
||||
border-radius: 50%;
|
||||
height: 7rem;
|
||||
width: 7rem;
|
||||
}
|
||||
|
||||
.nav-links .nav-link,
|
||||
.nav-icons-divider {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#hamburger-menu-toggle {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
main#content {
|
||||
box-sizing: border-box;
|
||||
padding: 0 1.5rem;
|
||||
width: auto;
|
||||
}
|
||||
|
||||
.markdown-content, .home-posts {
|
||||
width: auto;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
main#content .container {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.home-about {
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
#toc {
|
||||
display:none;
|
||||
}
|
||||
|
||||
.list-posts {
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.list-posts .post-date {
|
||||
color: gray;
|
||||
}
|
||||
|
||||
.footer {
|
||||
margin-left: 0;
|
||||
width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 820px) {
|
||||
.nav-hamburger-list {
|
||||
visibility: hidden !important;
|
||||
}
|
||||
}
|
||||
|
||||
/*Accessibility*/
|
||||
.sr-only {
|
||||
position: absolute;
|
||||
left: -10000px;
|
||||
top: auto;
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.prev-post {
|
||||
float: left;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.next-post {
|
||||
float: right;
|
||||
text-align: right;
|
||||
}
|
||||
|
||||
.prev-post, .next-post {
|
||||
max-width: 33%;
|
||||
}
|
||||
|
||||
/* back to top button */
|
||||
.arrow-logo {
|
||||
background-color: transparent;
|
||||
border-radius: 50%;
|
||||
bottom: 20px;
|
||||
cursor: pointer;
|
||||
display: none;
|
||||
font-size: 24px;
|
||||
padding: 10px;
|
||||
padding-right: 8px;
|
||||
position: fixed;
|
||||
right: 20px;
|
||||
z-index: 5;
|
||||
background-color: var(--light-tertiary-color);
|
||||
width: 25px;
|
||||
height: 25px;
|
||||
}
|
||||
|
||||
.arrow-logo path{
|
||||
fill: var(--light-secondary-color)
|
||||
}
|
||||
|
||||
.arrow-logo:hover {
|
||||
fill: var(--accent-color);
|
||||
}
|
||||
|
||||
@media screen and (max-width: 600px) {
|
||||
#btt-button {
|
||||
visibility: hidden;
|
||||
}
|
||||
}
|
2
assets/css/normalize.min.css
vendored
Normal file
|
@ -0,0 +1,2 @@
|
|||
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:transparent}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{border-style:none;padding:0}[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring,button:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}
|
||||
/*# sourceMappingURL=normalize.min.css.map */
|
13
assets/js/feather-icons.min.js
vendored
Normal file
119
assets/js/main.js
Normal file
|
@ -0,0 +1,119 @@
|
|||
document.addEventListener('DOMContentLoaded', ready, false);
|
||||
|
||||
const THEME_PREF_STORAGE_KEY = "theme-preference";
|
||||
const THEME_TO_ICON_CLASS = {
|
||||
'dark': 'feather-moon',
|
||||
'light':'feather-sun'
|
||||
};
|
||||
const THEME_TO_ICON_TEXT_CLASS = {
|
||||
'dark': 'Dark mode',
|
||||
'light':'Light mode'
|
||||
};
|
||||
let toggleIcon = '';
|
||||
let darkThemeCss = '';
|
||||
|
||||
const HEADING_TO_TOC_CLASS = {
|
||||
'H1': 'level-1',
|
||||
'H2': 'level-2',
|
||||
'H3': 'level-3',
|
||||
'H4': 'level-4'
|
||||
}
|
||||
|
||||
function ready() {
|
||||
feather.replace({ 'stroke-width': 1, width: 20, height: 20 });
|
||||
setThemeByUserPref();
|
||||
|
||||
if (document.querySelector('main#content > .container') !== null &&
|
||||
document.querySelector('main#content > .container').classList.contains('post')) {
|
||||
if (document.getElementById('TableOfContents') !== null) {
|
||||
fixTocItemsIndent();
|
||||
createScrollSpy();
|
||||
} else {
|
||||
document.querySelector('main#content > .container.post').style.display = "block";
|
||||
}
|
||||
}
|
||||
|
||||
// Elements to inject
|
||||
const svgsToInject = document.querySelectorAll('img.svg-inject');
|
||||
// Do the injection
|
||||
SVGInjector(svgsToInject);
|
||||
|
||||
document.getElementById('hamburger-menu-toggle').addEventListener('click', () => {
|
||||
const hamburgerMenu = document.getElementsByClassName('nav-hamburger-list')[0]
|
||||
if (hamburgerMenu.classList.contains('visibility-hidden')) {
|
||||
hamburgerMenu.classList.remove('visibility-hidden');
|
||||
} else {
|
||||
hamburgerMenu.classList.add('visibility-hidden');
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
window.addEventListener('scroll', () => {
|
||||
if (window.innerWidth <= 820) {
|
||||
// For smaller screen, show shadow earlier
|
||||
toggleHeaderShadow(50);
|
||||
} else {
|
||||
toggleHeaderShadow(100);
|
||||
}
|
||||
});
|
||||
|
||||
function fixTocItemsIndent() {
|
||||
document.querySelectorAll('#TableOfContents a').forEach($tocItem => {
|
||||
const itemId = $tocItem.getAttribute("href").substring(1)
|
||||
$tocItem.classList.add(HEADING_TO_TOC_CLASS[document.getElementById(itemId).tagName]);
|
||||
});
|
||||
}
|
||||
|
||||
function createScrollSpy() {
|
||||
var elements = document.querySelectorAll('#toc a');
|
||||
document.addEventListener('scroll', function () {
|
||||
elements.forEach(function (element) {
|
||||
const boundingRect = document.getElementById(element.getAttribute('href').substring(1)).getBoundingClientRect();
|
||||
if (boundingRect.top <= 55 && boundingRect.bottom >= 0) {
|
||||
elements.forEach(function (elem) {
|
||||
elem.classList.remove('active');
|
||||
});
|
||||
element.classList.add('active');
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function toggleHeaderShadow(scrollY) {
|
||||
if (window.scrollY > scrollY) {
|
||||
document.querySelectorAll('.header').forEach(function(item) {
|
||||
item.classList.add('header-shadow')
|
||||
})
|
||||
} else {
|
||||
document.querySelectorAll('.header').forEach(function(item) {
|
||||
item.classList.remove('header-shadow')
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
function setThemeByUserPref() {
|
||||
darkThemeCss = document.getElementById("dark-theme");
|
||||
const savedTheme = localStorage.getItem(THEME_PREF_STORAGE_KEY) ||
|
||||
(window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark': 'light');
|
||||
const darkThemeToggles = document.querySelectorAll('.dark-theme-toggle');
|
||||
setTheme(savedTheme, darkThemeToggles);
|
||||
darkThemeToggles.forEach(el => el.addEventListener('click', toggleTheme, {capture: true}))
|
||||
}
|
||||
|
||||
function toggleTheme(event) {
|
||||
toggleIcon = event.currentTarget.querySelector("a svg.feather");
|
||||
if (toggleIcon.classList[1] === THEME_TO_ICON_CLASS.dark) {
|
||||
setTheme('light', [event.currentTarget]);
|
||||
} else if (toggleIcon.classList[1] === THEME_TO_ICON_CLASS.light) {
|
||||
setTheme('dark', [event.currentTarget]);
|
||||
}
|
||||
}
|
||||
|
||||
function setTheme(themeToSet, targets) {
|
||||
localStorage.setItem(THEME_PREF_STORAGE_KEY, themeToSet);
|
||||
darkThemeCss.disabled = themeToSet === 'light';
|
||||
targets.forEach((target) => {
|
||||
target.querySelector('a').innerHTML = feather.icons[THEME_TO_ICON_CLASS[themeToSet].split('-')[1]].toSvg();
|
||||
target.querySelector("#dark-theme-toggle-screen-reader-target").textContent = [THEME_TO_ICON_TEXT_CLASS[themeToSet]];
|
||||
});
|
||||
}
|
9
assets/js/svg-injector.min.js
vendored
Normal file
|
@ -0,0 +1,9 @@
|
|||
/**
|
||||
* SVGInjector v1.1.3 - Fast, caching, dynamic inline SVG DOM injection library
|
||||
* https://github.com/iconic/SVGInjector
|
||||
*
|
||||
* Copyright (c) 2014-2015 Waybury <hello@waybury.com>
|
||||
* @license MIT
|
||||
*/
|
||||
!function(t,e){"use strict";function r(t){t=t.split(" ");for(var e={},r=t.length,n=[];r--;)e.hasOwnProperty(t[r])||(e[t[r]]=1,n.unshift(t[r]));return n.join(" ")}var n="file:"===t.location.protocol,i=e.implementation.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1"),o=Array.prototype.forEach||function(t,e){if(void 0===this||null===this||"function"!=typeof t)throw new TypeError;var r,n=this.length>>>0;for(r=0;n>r;++r)r in this&&t.call(e,this[r],r,this)},a={},l=0,s=[],u=[],c={},f=function(t){return t.cloneNode(!0)},p=function(t,e){u[t]=u[t]||[],u[t].push(e)},d=function(t){for(var e=0,r=u[t].length;r>e;e++)!function(e){setTimeout(function(){u[t][e](f(a[t]))},0)}(e)},v=function(e,r){if(void 0!==a[e])a[e]instanceof SVGSVGElement?r(f(a[e])):p(e,r);else{if(!t.XMLHttpRequest)return r("Browser does not support XMLHttpRequest"),!1;a[e]={},p(e,r);var i=new XMLHttpRequest;i.onreadystatechange=function(){if(4===i.readyState){if(404===i.status||null===i.responseXML)return r("Unable to load SVG file: "+e),n&&r("Note: SVG injection ajax calls do not work locally without adjusting security setting in your browser. Or consider using a local webserver."),r(),!1;if(!(200===i.status||n&&0===i.status))return r("There was a problem injecting the SVG: "+i.status+" "+i.statusText),!1;if(i.responseXML instanceof Document)a[e]=i.responseXML.documentElement;else if(DOMParser&&DOMParser instanceof Function){var t;try{var o=new DOMParser;t=o.parseFromString(i.responseText,"text/xml")}catch(l){t=void 0}if(!t||t.getElementsByTagName("parsererror").length)return r("Unable to parse SVG file: "+e),!1;a[e]=t.documentElement}d(e)}},i.open("GET",e),i.overrideMimeType&&i.overrideMimeType("text/xml"),i.send()}},h=function(e,n,a,u){var f=e.getAttribute("data-src")||e.getAttribute("src");if(!/\.svg/i.test(f))return void u("Attempted to inject a file with a non-svg extension: "+f);if(!i){var p=e.getAttribute("data-fallback")||e.getAttribute("data-png");return void(p?(e.setAttribute("src",p),u(null)):a?(e.setAttribute("src",a+"/"+f.split("/").pop().replace(".svg",".png")),u(null)):u("This browser does not support SVG and no PNG fallback was defined."))}-1===s.indexOf(e)&&(s.push(e),e.setAttribute("src",""),v(f,function(i){if("undefined"==typeof i||"string"==typeof i)return u(i),!1;var a=e.getAttribute("id");a&&i.setAttribute("id",a);var p=e.getAttribute("title");p&&i.setAttribute("title",p);var d=[].concat(i.getAttribute("class")||[],"injected-svg",e.getAttribute("class")||[]).join(" ");i.setAttribute("class",r(d));var v=e.getAttribute("style");v&&i.setAttribute("style",v);var h=[].filter.call(e.attributes,function(t){return/^data-\w[\w\-]*$/.test(t.name)});o.call(h,function(t){t.name&&t.value&&i.setAttribute(t.name,t.value)});var g,m,b,y,A,w={clipPath:["clip-path"],"color-profile":["color-profile"],cursor:["cursor"],filter:["filter"],linearGradient:["fill","stroke"],marker:["marker","marker-start","marker-mid","marker-end"],mask:["mask"],pattern:["fill","stroke"],radialGradient:["fill","stroke"]};Object.keys(w).forEach(function(t){g=t,b=w[t],m=i.querySelectorAll("defs "+g+"[id]");for(var e=0,r=m.length;r>e;e++){y=m[e].id,A=y+"-"+l;var n;o.call(b,function(t){n=i.querySelectorAll("["+t+'*="'+y+'"]');for(var e=0,r=n.length;r>e;e++)n[e].setAttribute(t,"url(#"+A+")")}),m[e].id=A}}),i.removeAttribute("xmlns:a");for(var x,S,k=i.querySelectorAll("script"),j=[],G=0,T=k.length;T>G;G++)S=k[G].getAttribute("type"),S&&"application/ecmascript"!==S&&"application/javascript"!==S||(x=k[G].innerText||k[G].textContent,j.push(x),i.removeChild(k[G]));if(j.length>0&&("always"===n||"once"===n&&!c[f])){for(var M=0,V=j.length;V>M;M++)new Function(j[M])(t);c[f]=!0}var E=i.querySelectorAll("style");o.call(E,function(t){t.textContent+=""}),e.parentNode.replaceChild(i,e),delete s[s.indexOf(e)],e=null,l++,u(i)}))},g=function(t,e,r){e=e||{};var n=e.evalScripts||"always",i=e.pngFallback||!1,a=e.each;if(void 0!==t.length){var l=0;o.call(t,function(e){h(e,n,i,function(e){a&&"function"==typeof a&&a(e),r&&t.length===++l&&r(l)})})}else t?h(t,n,i,function(e){a&&"function"==typeof a&&a(e),r&&r(1),t=null}):r&&r(0)};"object"==typeof module&&"object"==typeof module.exports?module.exports=exports=g:"function"==typeof define&&define.amd?define(function(){return g}):"object"==typeof t&&(t.SVGInjector=g)}(window,document);
|
||||
//# sourceMappingURL=svg-injector.map.js
|
28
content/about.md
Normal file
|
@ -0,0 +1,28 @@
|
|||
---
|
||||
title: "about"
|
||||
type: "page"
|
||||
showTableOfContents: true
|
||||
---
|
||||
|
||||
## this project
|
||||
|
||||
apothēke is a showcase of my limited capability to understand the world.
|
||||
|
||||
I will be wrong more times than not, and I am content with this.
|
||||
|
||||
## I, the person
|
||||
Out of want to disinclude any bias that may arise from the connection between myself and my ideas, I try to maintain as much separation as possible between the metaphysical entity that is this project and my self.
|
||||
|
||||
Out of idealism, the code for the website where this project is hosted, is available [here](https://git.sr.ht/~aethrvmn/apotheke), which hints as to the rest of my socials.
|
||||
|
||||
## language
|
||||
|
||||
Every person speaks and understands their own version of any language(s) (or communication system for that matter) they may know, and this creates a gap between author and reader.
|
||||
|
||||
Since this a public project, i.e. an express of opinion in a public forum (even if I will never track visitors and therefore never know if there is any traction to this place), the above mean that if I use language with which I am more comfortable, but is more open to interpretation, I allow myself and my work to be misrepresented, to be misjudged and to be misunderstood. I do realise this will most probably happen anyway, but the attempt is to decrease the effect, as it is impossible to stop. Another thing that must be said about the language I use is that, whenever I'm discussing something for which nomenclature already exists, I intend to use the terminology offered.
|
||||
|
||||
I do not, and hopefully never will, claim to know the truth. In fact, I [claim the opposite](/theses/axioms/).
|
||||
|
||||
## contact
|
||||
|
||||
If you wish to reach out, contact me: info ~at~ apotheke ~dot~ earth
|
14
content/donate.md
Normal file
|
@ -0,0 +1,14 @@
|
|||
---
|
||||
title: "donations"
|
||||
type: "page"
|
||||
// showTableOfContents: true
|
||||
---
|
||||
|
||||
# thank you for considering supporting
|
||||
Below exist some options
|
||||
|
||||
|Monero|Bitcoin|
|
||||
|:--:|:--:|
|
||||
|![](/imgs/xmr-qrcode.png)|![](/imgs/btc-qrcode.png)|
|
||||
|
||||
|
4
content/index-about.md
Normal file
|
@ -0,0 +1,4 @@
|
|||
|
||||
# apothēke (n).
|
||||
- [/a.po.tʰɛ̌ː.kɛː/] (αποθήκη)
|
||||
### A place designated for storing or preserving items of value or importance.
|
41
content/theses/axioms.md
Normal file
|
@ -0,0 +1,41 @@
|
|||
---
|
||||
title: "On the nature of faith"
|
||||
description: "A thesis on the axiomatic foundation of reality"
|
||||
date: 2024-04-02
|
||||
type: "post"
|
||||
tags: ["religion", "science", "philosophy"]
|
||||
---
|
||||
|
||||
The words "logic" and "knowledge" are often connected in the minds of humans. In the sciences, logic is used religiously, in an attempt to obtain knowledge, in the same way that it is used in religions.
|
||||
|
||||
In truth, logic is unable to lead to complete, general knowledge inside of a system, which fully describes the Truth.
|
||||
|
||||
Every logical system, by definition, must exist within some constraints, to prevent it from collapsing onto itself, and these constraints must be considered true and fixed, without the need of proof, since otherwise the initial system should have to begin under new, different, unalterable truths.
|
||||
|
||||
Such truths, which can define a logical system on their own, are called *axioms*.
|
||||
|
||||
The need for axioms is simultaneously the strength and weakness of logic. On the one hand, through well defined axioms, one can fully comprehend the system under study, while on the other, axioms are a poison in the minds of humans, since humans will inevitably use them and will define them in systems where logic is unable to work.
|
||||
|
||||
One of these systems is reality.
|
||||
|
||||
It is undeniable that we now know more about the world we live in than our ancestors, but this knowledge is superficial.
|
||||
|
||||
The proof for that statement is simple. If someone asks an authoritative figure in physics a simple question such as "What is a magnet? How do magnets work?" they will receive many plausible answers, none of which will truly satisfy the responder, even if they satisfy the questioner. The responder knows that the provided answers are nothing but approximations of the truth, each varying in complexity, with some being closer to reality than others, but none of them being the actual truth of the matter.
|
||||
|
||||
At the same time there are a lot of zealously religious persons, that neither know the axiomatic system nor the knowledge base of the system, that stand for scientific truth, without understanding that in essence, they make a conscious choice to **believe** in its truth.
|
||||
|
||||
These people have, therefore, as an axiomatic system for their personal truth the words of scientists, not knowing that with this choice, they are similar to any other religious group that exists in our time.
|
||||
|
||||
To paraphrase a quote
|
||||
>Are you not a hypocrite?
|
||||
>
|
||||
>Do you not trust the chemicals in your brain to tell you that they are chemicals?
|
||||
>
|
||||
>All knowledge ultimately comes from that which is unprovable.
|
||||
>
|
||||
>Will you fight? Or will you perish like a dog?
|
||||
|
||||
Given then that one can never know the Truth *a priori*, and all axiomatic systems are unable to describe the entirety of reality, what can one do?
|
||||
|
||||
The only way that exists is faith, which is the principal decision one makes before even choosing an axiomatic system, and which occurs due to the fact that, before you can study the system, you need to belive that it is well defined and founded, and also that to some extent it is capable of representing the Truth.
|
||||
|
33
content/theses/evolution.md
Normal file
|
@ -0,0 +1,33 @@
|
|||
---
|
||||
title: "Evolutionary leftovers"
|
||||
date: 2024-04-26
|
||||
description: "A thesis on the societal role of men and women."
|
||||
type: "post"
|
||||
tags: ["society"]
|
||||
|
||||
draft: true
|
||||
---
|
||||
|
||||
It makes intuitive sense to consider an evolutionary process for society alongside the evolution of the human race and so, in order to figure out how the modern societal roles came to be, one must look at the societal roles of the past and move forwards in time to the present day.
|
||||
|
||||
The earliest one can go is around the birth of the anatomically modern humans, and the great migration out of Africa and into the rest of Afroeurasia, Oceania and the American continent.
|
||||
|
||||
From even back then, the societal roles were defined. In hunter-gatherer societies such as the ones of early humans, the male would traditionally go on long expeditions to hunt for meat, while the female would stay around a safe area, gathering herbs and tending to the young. The biology was also already emphasized at the time, with males already showing human male characteristics such as increased bone and muscle density. This means that one must explore even before that, and probably reach the time when the first social groups were formed with the intent of raising the young as tightly knit communities.
|
||||
|
||||
In such a scenario, the idea of a role distinction between biological genders starts to make sense.
|
||||
|
||||
Imagine a small group of ten males and ten females, living together and fending for themselves in a hostile environment. Now assume that all males but one die, leaving eleven members to the group, one male and ten females. Assuming a human gestation period of nine months, a year after the social group will have twenty one members, one male, ten female, and ten children.
|
||||
|
||||
Were the opposite to happen, one female left with ten males, a year after the group would have twelve members, ten male, one female, and one child.
|
||||
|
||||
From a biological and evolutionary standpoint therefore, there is a glaring distinction between the genders. Males are *expendable*, whilst females are not.
|
||||
|
||||
It makes sense in this situation to send the expendable males to hunt for food in a hostile environment, as their deaths are not as significant for the well being of the group as the death of a single female.
|
||||
|
||||
This however brought the caveat that women became indispencible to the group, meaning that the males, becoming stronger and more aggressive in time, could deprive females from their liberties, with the pretext of defending them from dangers, seen and unseen.
|
||||
|
||||
Once more complex societies started forming, and different smaller groups started to form bigger ones, this notion of protection then transformed from protecting the females from a hostile environment, to safeguarding the females from other members of other groups/tribes, since the hostile environment had been conquered. Around this idea we see the exact behaviour of cities being formed, which would frequently go to war with each other, with males being the warrior caste and the females being forced to stay at home, with strict societal rules and an expectation to care for the children. Once again, the same biological idea presents itself. Males are expendable, so females must sacrifice their liberties for the greater good.
|
||||
|
||||
Looking at the modern age, we see the same patterns emerge. In societies where life is still harsh and survival is not guaranteed, we still see harsh and strict codes of behaviour for women, under the pretext of protection, whilst for men we see their expendability.
|
||||
|
||||
In societies where the effort to fulfill basic needs becomes trivial, we see a more egalitarian approach. Since there is no seen or unseen threat to the well being of the group, males have less of a biological excuse to force their ideals on females, who in turn strive and demand the same liberties as males.
|
11
content/theses/free-will.md
Normal file
|
@ -0,0 +1,11 @@
|
|||
---
|
||||
title: "Defining free will "
|
||||
date: 2024-04-16
|
||||
description: "An attempt to justify why we aren't souless automata"
|
||||
type: "post"
|
||||
tags: ["philosophy", "religion"]
|
||||
|
||||
draft: true
|
||||
---
|
||||
|
||||
|
10
content/theses/logic.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
title: "Concerning logic"
|
||||
description: "Most appeals to logic are appeals to authority"
|
||||
date: 2024-04-11
|
||||
type: "post"
|
||||
tags: ["science", "philosophy"]
|
||||
|
||||
draft: true
|
||||
---
|
||||
|
23
content/theses/self.md
Normal file
|
@ -0,0 +1,23 @@
|
|||
---
|
||||
title: "A proper introduction"
|
||||
date: 2024-05-03
|
||||
description: "Who am I? How did I get here?"
|
||||
type: "post"
|
||||
tags: ["religion", "philosophy"]
|
||||
---
|
||||
|
||||
The axiomatic system of faith that I choose to believe in is the dogma of the Orthodox Catholic Church, as it was established in the First Ecumenical Council of Nicaea.
|
||||
|
||||
This for most people who know me personally oftentimes comes as a surprise, especially to those that know me from a young age, during which I was an atheist; I rejected the axiomatic system I currently believe in, and I followed the system of "pure scientific truth", ignoring the gaps and weaknesses it presents.
|
||||
|
||||
The first cracks in my absolute devotion to science occurred during my first years in university, when I came into contact with friends which I will forever hold dear to my heart, as well as with various psychedelic substances, both of which caused me to reevaluate the relationship between faith and science. The substances, psylocybin, lysergic acid diethylamide, and 2C-B, (in this order) created in me, or rather, forced me to demolish the idea of absoluteness of reality and of the nature of truth, and start from the beginning
|
||||
|
||||
Through the above, I became exposed to new ideas, new means by which humans have interpreted nature throughout the millenia of human experience, and for years I delved into the different religions of humanity, as well as the philosophical ideas that rise from them.
|
||||
|
||||
These journeys, mental and physical, led me to many questions which no religion, philosophy, or axiomatic system could answer, except for the one I believe in now.
|
||||
|
||||
The fact that God is, rather than not, and specifically as he is described in the Orthodox dogma, is a necessity for the system of reality as I see it and understand it to be self-consistent. Not only does it close the gaps that are left open by other axiomatic systems, but also eclipses and explains why these other systems occur.
|
||||
|
||||
Assuming someone knows, or is near to, the Truth, and modifies it, by removing sections, or by adding new ones, then they are able to create every "truthfull" system we have discovered as humans. As a result of these modifications though, it is impossible to trace back the original Truth, without the Truth itself, and the modifications and the modifiers become lost in history.
|
||||
|
||||
After all, the best lie is that which wholly contains the Truth, except for a single point, a detail that nobody can recognize as false, without first knowing the Truth.
|
73
hugo.toml
Normal file
|
@ -0,0 +1,73 @@
|
|||
baseURL = 'https://apotheke.earth/'
|
||||
|
||||
title = 'apothēke'
|
||||
|
||||
languageCode = 'en-us'
|
||||
DefaultContentLanguage = "en"
|
||||
pygmentsStyle = "monokai"
|
||||
|
||||
enableEmoji = false
|
||||
enableRobotsTXT = true
|
||||
|
||||
[menu]
|
||||
[[menu.main]]
|
||||
url="/about/"
|
||||
name="about"
|
||||
weight = 1
|
||||
|
||||
[[menu.main]]
|
||||
url="/theses/"
|
||||
name="theses"
|
||||
weight = 2
|
||||
|
||||
[[menu.main]]
|
||||
url="/tags/"
|
||||
name="tags"
|
||||
weight = 3
|
||||
|
||||
[[menu.main]]
|
||||
identifier = "rss"
|
||||
pre = "<span data-feather='rss' />"
|
||||
url = "/index.xml"
|
||||
weight = 7
|
||||
[menu.main.params]
|
||||
newPage = true
|
||||
|
||||
[markup]
|
||||
[markup.tableOfContents]
|
||||
startLevel = 1
|
||||
endLevel = 4
|
||||
ordered = false
|
||||
|
||||
[sitemap]
|
||||
changefreq = "monthly"
|
||||
priority = 0.5
|
||||
filename = "sitemap.xml"
|
||||
|
||||
[params]
|
||||
|
||||
ShowBackToTopButton=true
|
||||
|
||||
# Accent color is displayed when you hover over <a> tags
|
||||
accentColor = "#AC9C6D"
|
||||
|
||||
text_color = ""
|
||||
author = ""
|
||||
favicon = ""
|
||||
site_logo = ""
|
||||
|
||||
customHeadHTML = '''
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/katex.min.css" integrity="sha384-Xi8rHCmBmhbuyyhbI88391ZKP2dmfnOl4rT9ZfRI7mLTdk1wblIUnrIq35nqwEvC" crossorigin="anonymous">
|
||||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/katex.min.js" integrity="sha384-X/XCfMm41VSsqRNQgDerQczD69XqmjOOOwYQvr/uuC+j4OPoNhVgjdGFwhvN02Ja" crossorigin="anonymous"></script>
|
||||
<script defer src="https://cdn.jsdelivr.net/npm/katex@0.16.0/dist/contrib/auto-render.min.js" integrity="sha384-+XBljXPPiv+OzfbB3cVmLHf4hdUFHlWNZN5spNQ7rmHTXpd7WvJum6fIACpNNfIR" crossorigin="anonymous"></script>
|
||||
'''
|
||||
|
||||
customFooterHTML= """
|
||||
<span>
|
||||
You can support this project by <a href="/donate">donating</a>
|
||||
</span>
|
||||
"""
|
||||
|
||||
showPostsOnHomePage = "recent"
|
||||
togglePreviousAndNextButtons = "true"
|
||||
|
14
i18n/en.toml
Normal file
|
@ -0,0 +1,14 @@
|
|||
[Recent]
|
||||
other = 'decent'
|
||||
[error404]
|
||||
other = 'this page does not exist, go'
|
||||
[home]
|
||||
other = 'home'
|
||||
[nothing]
|
||||
other = 'nothing to see here, yet'
|
||||
[previous]
|
||||
other = 'previous'
|
||||
[next]
|
||||
other = 'next'
|
||||
[tags]
|
||||
other = 'tags'
|
19
layouts/404.html
Normal file
|
@ -0,0 +1,19 @@
|
|||
{{ define "main"}}
|
||||
|
||||
<div class="text-404">
|
||||
<h1 class="error-emoji"></h1>
|
||||
<h2>
|
||||
404 ... {{ i18n "error404" . }} <a href="{{ .Site.BaseURL }}">{{ i18n "home" }}</a>
|
||||
</h2>
|
||||
</div>
|
||||
<script>
|
||||
const errorEmojiContainer = document.getElementsByClassName('error-emoji')[0];
|
||||
const emojiArray = [
|
||||
'\\(o_o)/', '(o^^)o', '(˚Δ˚)b', '(^-^*)', '(≥o≤)', '(^_^)b', '(·_·)',
|
||||
'(=\'X\'=)', '(>_<)', '(;-;)', '\\(^Д^)/',
|
||||
];
|
||||
const errorEmoji = emojiArray[Math.floor(Math.random() * emojiArray.length)];
|
||||
errorEmojiContainer.appendChild(document.createTextNode(errorEmoji));
|
||||
</script>
|
||||
|
||||
{{ end }}
|
21
layouts/_default/baseof.html
Normal file
|
@ -0,0 +1,21 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
{{- $avatarImgSrc := .Site.Params.AvatarURL -}}
|
||||
{{- if and (isset site.Params "avatarURL") (not (hasPrefix $avatarImgSrc "http")) -}}
|
||||
{{- $avatarImgSrc = (urls.JoinPath $.Site.BaseURL ($.Site.Params.AvatarURL | default "")) -}}
|
||||
{{- end -}}
|
||||
{{- .Scratch.Set "avatarImgSrc" $avatarImgSrc -}}
|
||||
|
||||
{{- partial "head.html" . -}}
|
||||
<body>
|
||||
<script type="text/javascript">
|
||||
// Immediately set theme on page load
|
||||
setThemeByUserPref();
|
||||
</script>
|
||||
{{- partial "header.html" . -}}
|
||||
<main id="content">
|
||||
{{- block "main" . }}{{- end }}
|
||||
</main>
|
||||
{{- partial "footer.html" . -}}
|
||||
</body>
|
||||
</html>
|
7
layouts/_default/list.html
Normal file
|
@ -0,0 +1,7 @@
|
|||
{{ define "main" }}
|
||||
{{ if eq .Type "page" }}
|
||||
{{- partial "page.html" . -}}
|
||||
{{ else }}
|
||||
{{- partial "list.html" . -}}
|
||||
{{ end }}
|
||||
{{ end }}
|
11
layouts/_default/single.html
Normal file
|
@ -0,0 +1,11 @@
|
|||
{{ define "main" }}
|
||||
{{ if eq .Type "post" }}
|
||||
{{- partial "post.html" . -}}
|
||||
{{- partial "toc.html" . -}}
|
||||
{{ end }}
|
||||
|
||||
{{ if eq .Type "page" }}
|
||||
{{- partial "page.html" . -}}
|
||||
{{- partial "toc.html" . -}}
|
||||
{{ end }}
|
||||
{{ end }}
|
21
layouts/_default/terms.html
Normal file
|
@ -0,0 +1,21 @@
|
|||
{{ define "main" }}
|
||||
<div class="container tags-list">
|
||||
|
||||
<h1 class="list-title">{{ lower "tags" }}</h1>
|
||||
{{if eq (len $.Site.Taxonomies.tags) 0}}
|
||||
{{ i18n "nothing" }}
|
||||
{{else}}
|
||||
<ul class="post-tags">
|
||||
{{ range $.Site.Taxonomies.tags.ByCount }}
|
||||
<li class="post-tag">
|
||||
<a href="/tags/{{ .Name | urlize }}/">
|
||||
<div class="tag-name">{{ .Name }}</div>
|
||||
<div class="tag-posts-count">{{ .Count }}</div>
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
{{ end }}
|
||||
|
||||
</div>
|
||||
{{ end }}
|
64
layouts/index.html
Normal file
|
@ -0,0 +1,64 @@
|
|||
{{ define "main" }}
|
||||
<section class="home-about">
|
||||
|
||||
<!-- These should exist if index-about.md doesn't exist
|
||||
<div class="avatar">
|
||||
{{ if isset .Site.Params "avatarurl" }}
|
||||
<img class={{ .Site.Params.AvatarSize | default "size-m" }} src='{{ .Scratch.Get "avatarImgSrc" }}' alt="{{ .Site.Params.AvatarAltText|default "avatar" }}" />
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
<h1 align="left">{{ .Site.Title }} (n).</h1>
|
||||
|
||||
{{ if isset .Site.Params "subtitle" }}
|
||||
<h3 align="left">{{ .Site.Params.Subtitle }}</h3>
|
||||
{{ end }}
|
||||
|
||||
{{ if isset .Site.Params "description" }}
|
||||
<h3 align="left">{{ .Site.Params.Description }}</h3>
|
||||
{{ end }}
|
||||
-->
|
||||
</section>
|
||||
|
||||
<div class="flex-break"></div>
|
||||
|
||||
{{ if isset .Site.Params "socialicons" }}
|
||||
<section class="social-icons">
|
||||
<ul class="social-icons-list">
|
||||
{{ range .Site.Params.SocialIcons }}
|
||||
<li class="social-icon">
|
||||
<a href="{{ .url }}" {{ if .rel }}rel="{{ .rel }}"{{ end }} aria-label="Learn more on {{ .name }}">
|
||||
<img class="svg-inject" src="/svg/icons/{{ .name }}.svg" />
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</section>
|
||||
{{ end }}
|
||||
|
||||
{{ if os.FileExists "index-about.md" }}
|
||||
<div class="markdown-content">
|
||||
{{ readFile "index-about.md" | markdownify }}
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
{{ if isset .Site.Params "showpostsonhomepage" }}
|
||||
|
||||
<div class="home-posts list-posts">
|
||||
<h2>{{ lower (.Site.Params.ShowPostsOnHomePage | humanize) }} theses</h2>
|
||||
|
||||
{{ $posts := where .Site.Pages "Params.type" "post" }}
|
||||
|
||||
{{ if eq .Site.Params.ShowPostsOnHomePage "popular" }}
|
||||
{{ range $posts.ByWeight | first 4 }}
|
||||
{{- partial "list-posts.html" . -}}
|
||||
{{ end }}
|
||||
{{ else if eq .Site.Params.ShowPostsOnHomePage "recent" }}
|
||||
{{ range $posts.ByDate.Reverse | first 4 }}
|
||||
{{- partial "list-posts.html" . -}}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
{{ end }}
|
||||
{{ end }}
|
8
layouts/partials/footer.html
Normal file
|
@ -0,0 +1,8 @@
|
|||
<footer class="footer">
|
||||
<!-- Option for user to inject custom html -->
|
||||
{{ if .Site.Params.CustomFooterHTML }}
|
||||
{{ .Site.Params.CustomFooterHTML | safeHTML }}
|
||||
{{ end }}
|
||||
|
||||
<span>© {{ now.Year }} </span>
|
||||
</footer>
|
65
layouts/partials/head.html
Normal file
|
@ -0,0 +1,65 @@
|
|||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<style>
|
||||
:root {
|
||||
--accent-color: {{ .Site.Params.AccentColor | default "#FF4D4D" }};
|
||||
}
|
||||
</style>
|
||||
|
||||
{{ $title := .Title | default .Site.Title }}
|
||||
{{ $description := .Description | default .Site.Params.Description }}
|
||||
{{ $image := .Params.image | default (.Scratch.Get "avatarImgSrc") }}
|
||||
{{ $siteKeywords := .Site.Params.MetaKeywords | default (slice) }}
|
||||
{{ $postKeywords := .Params.tags | default (slice) }}
|
||||
{{ $keywords := union $siteKeywords $postKeywords }}
|
||||
|
||||
<!-- SEO titles & descriptions -->
|
||||
{{ if .IsHome }}
|
||||
<title>{{ lower .Site.Title }} | home</title>
|
||||
{{else}}
|
||||
<title> {{ lower .Site.Title }} | {{ lower $title}} </title>
|
||||
{{ end }}
|
||||
|
||||
<meta name="description" content="{{ $description }}">
|
||||
<meta name="keywords" content='{{ delimit $keywords ", "}}'>
|
||||
|
||||
<meta property="og:url" content="{{ .Permalink }}">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:title" content="{{ $title }}">
|
||||
<meta property="og:description" content="{{ $description }}">
|
||||
<meta property="og:image" content="{{ absURL $image }}">
|
||||
<meta property="og:image:secure_url" content="{{ absURL $image }}">
|
||||
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:title" content="{{ $title }}">
|
||||
<meta name="twitter:description" content="{{ $description }}">
|
||||
<meta property="twitter:domain" content="{{ .Permalink }}">
|
||||
<meta property="twitter:url" content="{{ .Permalink }}">
|
||||
<meta name="twitter:image" content="{{ absURL $image }}">
|
||||
|
||||
<!-- GFS Didot font -->
|
||||
<link href="https://fonts.googleapis.com/css2?family=GFS+Didot&display=swap" rel="stylesheet" type="text/css">
|
||||
|
||||
<!-- SEO canonicals: helps Google understand your site better when using marketing campaign tagging etc -->
|
||||
|
||||
<link rel="canonical" href="{{ .Permalink }}" />
|
||||
|
||||
{{ $cssNormalize := resources.Get "css/normalize.min.css" }}
|
||||
<link rel="stylesheet" type="text/css" href="{{ $cssNormalize.RelPermalink }}" media="print">
|
||||
|
||||
{{ $cssMain := resources.Get "css/main.css" | minify }}
|
||||
<link rel="stylesheet" type="text/css" href="{{ $cssMain.RelPermalink }}">
|
||||
|
||||
{{ $cssDark := resources.Get "css/dark.css" | minify }}
|
||||
<link id="dark-theme" rel="stylesheet" href="{{ $cssDark.RelPermalink }}">
|
||||
|
||||
{{ $jsBundle := resources.Match "js/**.js" | resources.Concat "js/bundle.js" | minify | resources.Fingerprint "sha256" }}
|
||||
<script src="{{ $jsBundle.RelPermalink }}" integrity="{{ $jsBundle.Data.Integrity }}"></script>
|
||||
|
||||
<!-- Option for user to inject custom html -->
|
||||
{{ if .Site.Params.CustomHeadHTML }}
|
||||
{{ .Site.Params.CustomHeadHTML | safeHTML }}
|
||||
{{ end }}
|
||||
</head>
|
59
layouts/partials/header.html
Normal file
|
@ -0,0 +1,59 @@
|
|||
<header class="header">
|
||||
<nav class="header-nav">
|
||||
|
||||
{{ if isset .Site.Params "avatarurl" }}
|
||||
<div class="avatar">
|
||||
<a href="{{ .Site.BaseURL }}">
|
||||
<img src='{{ .Scratch.Get "avatarImgSrc" }}' alt="{{ .Site.Params.AvatarAltText|default "avatar" }}" />
|
||||
</a>
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
<div class="nav-title">
|
||||
<a class="nav-brand" href="{{ .Site.BaseURL }}">{{ .Site.Title }}</a>
|
||||
</div>
|
||||
|
||||
<div class="nav-links">
|
||||
{{ range .Site.Menus.main }}
|
||||
<div class="nav-link">
|
||||
<a href="{{ .URL | absURL }}" {{- if .Params.NewPage -}}target="_blank"{{- end -}}>
|
||||
{{- .Pre | safeHTML }} {{ .Name }} {{ .Post | safeHTML -}}
|
||||
</a>
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
<span class="nav-icons-divider"></span>
|
||||
<div class="nav-link dark-theme-toggle">
|
||||
<span id="dark-theme-toggle-screen-reader-target" class="sr-only"></span>
|
||||
<a>
|
||||
<span id="theme-toggle-icon" data-feather="moon"></span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<div class="nav-link" id="hamburger-menu-toggle">
|
||||
<span id="hamburger-menu-toggle-screen-reader-target" class="sr-only">menu</span>
|
||||
<a>
|
||||
<span data-feather="menu"></span>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
<!-- For mobile -->
|
||||
<ul class="nav-hamburger-list visibility-hidden">
|
||||
{{ range .Site.Menus.main }}
|
||||
<li class="nav-item">
|
||||
<a href="{{ .URL | absURL }}" {{- if .Params.NewPage -}}target="_blank"{{- end -}}>
|
||||
{{- .Pre | safeHTML }} {{ .Name }} {{ .Post | safeHTML -}}
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
<li class="nav-item dark-theme-toggle">
|
||||
<span id="dark-theme-toggle-screen-reader-target" class="sr-only">theme</span>
|
||||
<a>
|
||||
<span id="theme-toggle-icon" data-feather="moon"></span>
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
</div>
|
||||
</nav>
|
||||
</header>
|
5
layouts/partials/list-posts.html
Normal file
|
@ -0,0 +1,5 @@
|
|||
<article class="post-title">
|
||||
<a href="{{ .Permalink }}" class="post-link">{{ .Title }}</a>
|
||||
<div class="flex-break"></div>
|
||||
<span class="post-date">{{ dateFormat (or .Site.Params.dateFormat "January 2, 2006") .Date}}</span>
|
||||
</article>
|
20
layouts/partials/list.html
Normal file
|
@ -0,0 +1,20 @@
|
|||
<div class="container list-posts">
|
||||
|
||||
<h1 class="list-title">{{ lower .Name }}</h1>
|
||||
|
||||
{{ range (where .Pages "Params.type" "post" ).GroupByDate "2006" }}
|
||||
|
||||
<!-- Display text here
|
||||
Date
|
||||
<h2 class="posts-year">{{ .Key }}</h2>
|
||||
|
||||
Other text
|
||||
<h2 class="posts-year"></h2>
|
||||
-->
|
||||
|
||||
{{- range .Pages -}}
|
||||
{{- partial "list-posts.html" . -}}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
</div>
|
11
layouts/partials/page.html
Normal file
|
@ -0,0 +1,11 @@
|
|||
<div class="post container">
|
||||
|
||||
<div class="post-header-section">
|
||||
<h1>{{ .Title }}</h1>
|
||||
</div>
|
||||
|
||||
<div class="post-content">
|
||||
{{ .Content }}
|
||||
</div>
|
||||
</div>
|
||||
|
75
layouts/partials/post.html
Normal file
|
@ -0,0 +1,75 @@
|
|||
<div class="post container">
|
||||
<div class="post-header-section">
|
||||
<h1>{{ .Title }}</h1>
|
||||
<small role="doc-subtitle">{{ .Description }}</small>
|
||||
<p class="post-date">{{ dateFormat (or .Site.Params.dateFormat "January 2, 2006") .Date}}
|
||||
{{ if lt .Date .Lastmod }} | Updated {{ dateFormat .Site.Params.dateFormat .Lastmod }}{{ end }}
|
||||
</p>
|
||||
|
||||
<ul class="post-tags">
|
||||
{{ range .Params.tags }}
|
||||
<li class="post-tag"><a href="{{ "tags/" | absLangURL }}{{ . | urlize }}">{{ . }}</a></li>
|
||||
{{ end }}
|
||||
</ul>
|
||||
</div>
|
||||
|
||||
<div class="post-content">
|
||||
{{ .Content }}
|
||||
{{ if .Site.DisqusShortname }}
|
||||
<div class="post-comments">
|
||||
{{ template "_internal/disqus.html" . }}
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
<div class="prev-next">
|
||||
{{ if eq .Site.Params.TogglePreviousAndNextButtons "true" }}
|
||||
{{ if or .PrevInSection .NextInSection }}
|
||||
{{ partial "prev-next.html" . }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
<!-- Back to top button -->
|
||||
{{ if .Site.Params.ShowBackToTopButton }}
|
||||
<svg id="btt-button" class="arrow-logo" xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 0 384 512" onclick="topFunction()" title="Go to top">
|
||||
<!-- Your arrow SVG path or elements go here -->
|
||||
<path d="M177 159.7l136 136c9.4 9.4 9.4 24.6 0 33.9l-22.6 22.6c-9.4 9.4-24.6 9.4-33.9 0L160 255.9l-96.4 96.4c-9.4 9.4-24.6 9.4-33.9 0L7 329.7c-9.4-9.4-9.4-24.6 0-33.9l136-136c9.4-9.5 24.6-9.5 34-.1z"/>
|
||||
</svg>
|
||||
<script>
|
||||
let backToTopButton = document.getElementById("btt-button");
|
||||
|
||||
window.onscroll = function() {
|
||||
scrollFunction()
|
||||
};
|
||||
|
||||
function scrollFunction() {
|
||||
if (document.body.scrollTop > 20 || document.documentElement.scrollTop > 20) {
|
||||
backToTopButton.style.display = "block";
|
||||
} else {
|
||||
backToTopButton.style.display = "none";
|
||||
}
|
||||
}
|
||||
|
||||
function topFunction() {
|
||||
smoothScrollToTop();
|
||||
}
|
||||
|
||||
function smoothScrollToTop() {
|
||||
const scrollToTop = () => {
|
||||
const c = document.documentElement.scrollTop || document.body.scrollTop;
|
||||
if (c > 0) {
|
||||
window.requestAnimationFrame(scrollToTop);
|
||||
window.scrollTo(0, c - c / 8);
|
||||
}
|
||||
};
|
||||
scrollToTop();
|
||||
}
|
||||
</script>
|
||||
{{ end }}
|
||||
{{ if .Site.Params.CustomCommentHTML }}
|
||||
<div id="comments">
|
||||
{{ .Site.Params.CustomCommentHTML | safeHTML }}
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
29
layouts/partials/prev-next.html
Normal file
|
@ -0,0 +1,29 @@
|
|||
{{ with .PrevInSection }}
|
||||
<div class="prev-post">
|
||||
<p>
|
||||
<a href="{{ .RelPermalink }}">
|
||||
←
|
||||
{{ i18n "previous" }}:
|
||||
{{ .Title }}
|
||||
</a>
|
||||
</p>
|
||||
<p class="prev-post-date">
|
||||
{{ dateFormat "January 2, 2006" .Date }}
|
||||
</p>
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
{{ with .NextInSection }}
|
||||
<div class="next-post">
|
||||
<p>
|
||||
<a href="{{ .RelPermalink }}">
|
||||
{{ i18n "next" }}:
|
||||
{{ .Title }}
|
||||
→
|
||||
</a>
|
||||
</p>
|
||||
<p class="next-post-date">
|
||||
{{ dateFormat "January 2, 2006" .Date }}
|
||||
</p>
|
||||
</div>
|
||||
{{ end }}
|
7
layouts/partials/toc.html
Normal file
|
@ -0,0 +1,7 @@
|
|||
{{ if .Params.ShowTableOfContents }}
|
||||
<aside class="post-toc">
|
||||
<nav id="toc">
|
||||
{{ .TableOfContents }}
|
||||
</nav>
|
||||
</aside>
|
||||
{{ end }}
|
BIN
static/fonts/Lato-Bold.ttf
Normal file
BIN
static/fonts/Lato-Regular.ttf
Normal file
BIN
static/imgs/btc-qrcode.png
Normal file
After Width: | Height: | Size: 6.5 KiB |
BIN
static/imgs/xmr-qrcode.png
Normal file
After Width: | Height: | Size: 7.4 KiB |
1
static/svg/icons/angellist.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>AngelList</title><path d="M16.467 9.956c.736-2 1.31-3.651 1.723-4.953.412-1.302.618-2.102.618-2.399 0-.318-.069-.565-.206-.741a.683.683 0 0 0-.569-.264c-.308 0-.62.255-.94.766-.318.511-.67 1.333-1.055 2.465L14.39 9.593zm-2.192 4.434c-.473-.022-.92-.071-1.344-.148a7.126 7.126 0 0 1-1.211-.33c.175.352.332.703.47 1.055.137.352.25.698.337 1.039.264-.33.542-.63.833-.899a6.93 6.93 0 0 1 .915-.717zm-1.863-4.994l-1.78-5.143C10.17 2.945 9.813 2.09 9.56 1.69c-.253-.402-.527-.602-.824-.602a.688.688 0 0 0-.56.264c-.143.175-.215.412-.215.708 0 .506.193 1.385.577 2.638.385 1.253.962 2.895 1.731 4.928a.55.55 0 0 1 .28-.255 1.33 1.33 0 0 1 .495-.074c.066 0 .198.005.396.016.197.011.521.039.972.083zm-1.615 7.961c.186 0 .357-.085.51-.255a.81.81 0 0 0 .231-.552c0-.209-.15-.695-.453-1.46a14.623 14.623 0 0 0-1.129-2.25c-.33-.549-.654-.963-.973-1.244-.318-.28-.62-.42-.906-.42-.23 0-.486.146-.767.437-.28.291-.42.563-.42.816 0 .263.137.66.412 1.187.275.527.643 1.087 1.105 1.68.483.65.94 1.155 1.368 1.517.428.363.769.544 1.022.544zm-4.945-.395c.153.187.368.461.642.824.726 1 1.396 1.5 2.011 1.5a.874.874 0 0 0 .56-.198c.166-.132.248-.27.248-.412 0-.165-.11-.44-.33-.824-.22-.385-.522-.819-.906-1.302-.44-.56-.805-.97-1.096-1.228-.291-.258-.525-.388-.7-.388-.386 0-.74.206-1.064.618-.324.412-.486.899-.486 1.46 0 .45.112.953.338 1.507.225.555.552 1.113.98 1.673a6.543 6.543 0 0 0 2.415 2.003c.962.467 2.025.7 3.19.7 2.143 0 3.937-.799 5.382-2.398 1.445-1.599 2.167-3.601 2.167-6.008 0-.736-.055-1.321-.165-1.755-.11-.434-.29-.75-.544-.948-.45-.374-1.326-.709-2.629-1.006a18.315 18.315 0 0 0-4.08-.445c-.395 0-.675.066-.84.198-.165.132-.247.357-.247.676 0 .747.417 1.288 1.253 1.623.834.336 2.186.503 4.055.503h.675c.154 0 .278.058.371.173.093.116.157.289.19.52-.187.175-.572.376-1.154.601-.583.225-1.028.448-1.335.668a5.92 5.92 0 0 0-1.59 1.722c-.402.665-.603 1.294-.603 1.888 0 .362.085.8.256 1.31.17.511.255.827.255.948v.115l-.033.149c-.483-.033-.865-.316-1.145-.85-.28-.532-.42-1.244-.42-2.134v-.148a.912.912 0 0 1-.256.165.726.726 0 0 1-.272.05c-.099 0-.192-.009-.28-.026a2.869 2.869 0 0 1-.297-.074 2.917 2.917 0 0 1 .099.627c0 .406-.16.755-.478 1.046a1.63 1.63 0 0 1-1.137.437c-.693 0-1.396-.338-2.11-1.014-.715-.675-1.072-1.337-1.072-1.986 0-.12.014-.228.041-.321a.552.552 0 0 1 .14-.24zm11.802-6.726c.989.187 1.687.605 2.093 1.253.407.649.61 1.67.61 3.066 0 2.77-.832 5.036-2.497 6.8C16.195 23.118 14.066 24 11.473 24a8.254 8.254 0 0 1-2.976-.552 7.368 7.368 0 0 1-2.48-1.541c-.792-.726-1.385-1.492-1.78-2.3a5.58 5.58 0 0 1-.594-2.48c0-.946.203-1.676.61-2.193.406-.516 1.049-.868 1.928-1.055a8.824 8.824 0 0 1-.362-.972c-.077-.264-.116-.467-.116-.61 0-.495.261-1 .783-1.517.522-.516 1.014-.774 1.475-.774.198 0 .407.035.627.107.22.071.472.19.758.354C8.5 8.071 7.885 6.223 7.5 4.92c-.385-1.302-.577-2.2-.577-2.695 0-.681.176-1.222.528-1.623C7.802.2 8.28 0 8.885 0c1.032 0 2.34 2.308 3.923 6.923.274.791.483 1.401.626 1.83l.511-1.45C15.527 2.73 16.89.444 18.033.444c.56 0 1.008.19 1.343.569.336.379.503.887.503 1.524 0 .484-.184 1.369-.552 2.654-.368 1.286-.926 2.967-1.673 5.044"/></svg>
|
After Width: | Height: | Size: 3.1 KiB |
4
static/svg/icons/bitcoin.svg
Normal file
|
@ -0,0 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg width="800px" height="800px" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M13.52 13.67C13.25 14.76 11.42 14.17 10.82 14.02L11.3 12.09C11.9 12.24 13.8 12.53 13.52 13.67ZM11.96 9.45003L11.52 11.2C12.02 11.32 13.55 11.83 13.8 10.84C14.05 9.81003 12.46 9.57003 11.96 9.45003ZM19.76 13.93C18.69 18.21 14.35 20.82 10.06 19.76C5.78 18.69 3.16 14.35 4.23 10.07C5.3 5.78003 9.64 3.18003 13.93 4.24003C18.21 5.31003 20.83 9.65003 19.76 13.93ZM9.37 13.34C9.33 13.45 9.22 13.61 8.97 13.55C8.93 13.55 8.33 13.39 8.33 13.39L7.89 14.39L9.03 14.67C9.25 14.73 9.45 14.78 9.66 14.84L9.3 16.29L10.17 16.51L10.53 15.07C10.77 15.14 11 15.19 11.23 15.25L10.87 16.68L11.75 16.9L12.11 15.45C13.61 15.73 14.74 15.62 15.21 14.26C15.59 13.17 15.19 12.54 14.4 12.13C14.97 12 15.4 11.62 15.52 10.84C15.68 9.78003 14.87 9.20003 13.76 8.83003L14.12 7.38003L13.24 7.16003L12.89 8.56003C12.66 8.50003 12.42 8.45003 12.18 8.39003L12.53 6.98003L11.66 6.76003L11.3 8.20003C11.11 8.16003 10.92 8.11003 10.74 8.07003L9.53 7.76003L9.3 8.70003C9.3 8.70003 9.94 8.85003 9.94 8.86003C10.29 8.95003 10.35 9.18003 10.35 9.37003L9.36 13.32L9.37 13.34Z" fill="#000000"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.3 KiB |
1
static/svg/icons/buymeacoffee.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Buy Me A Coffee</title><path d="M20.216 6.415l-.132-.666c-.119-.598-.388-1.163-1.001-1.379-.197-.069-.42-.098-.57-.241-.152-.143-.196-.366-.231-.572-.065-.378-.125-.756-.192-1.133-.057-.325-.102-.69-.25-.987-.195-.4-.597-.634-.996-.788a5.723 5.723 0 00-.626-.194c-1-.263-2.05-.36-3.077-.416a25.834 25.834 0 00-3.7.062c-.915.083-1.88.184-2.75.5-.318.116-.646.256-.888.501-.297.302-.393.77-.177 1.146.154.267.415.456.692.58.36.162.737.284 1.123.366 1.075.238 2.189.331 3.287.37 1.218.05 2.437.01 3.65-.118.299-.033.598-.073.896-.119.352-.054.578-.513.474-.834-.124-.383-.457-.531-.834-.473-.466.074-.96.108-1.382.146-1.177.08-2.358.082-3.536.006a22.228 22.228 0 01-1.157-.107c-.086-.01-.18-.025-.258-.036-.243-.036-.484-.08-.724-.13-.111-.027-.111-.185 0-.212h.005c.277-.06.557-.108.838-.147h.002c.131-.009.263-.032.394-.048a25.076 25.076 0 013.426-.12c.674.019 1.347.067 2.017.144l.228.031c.267.04.533.088.798.145.392.085.895.113 1.07.542.055.137.08.288.111.431l.319 1.484a.237.237 0 01-.199.284h-.003c-.037.006-.075.01-.112.015a36.704 36.704 0 01-4.743.295 37.059 37.059 0 01-4.699-.304c-.14-.017-.293-.042-.417-.06-.326-.048-.649-.108-.973-.161-.393-.065-.768-.032-1.123.161-.29.16-.527.404-.675.701-.154.316-.199.66-.267 1-.069.34-.176.707-.135 1.056.087.753.613 1.365 1.37 1.502a39.69 39.69 0 0011.343.376.483.483 0 01.535.53l-.071.697-1.018 9.907c-.041.41-.047.832-.125 1.237-.122.637-.553 1.028-1.182 1.171-.577.131-1.165.2-1.756.205-.656.004-1.31-.025-1.966-.022-.699.004-1.556-.06-2.095-.58-.475-.458-.54-1.174-.605-1.793l-.731-7.013-.322-3.094c-.037-.351-.286-.695-.678-.678-.336.015-.718.3-.678.679l.228 2.185.949 9.112c.147 1.344 1.174 2.068 2.446 2.272.742.12 1.503.144 2.257.156.966.016 1.942.053 2.892-.122 1.408-.258 2.465-1.198 2.616-2.657.34-3.332.683-6.663 1.024-9.995l.215-2.087a.484.484 0 01.39-.426c.402-.078.787-.212 1.074-.518.455-.488.546-1.124.385-1.766zm-1.478.772c-.145.137-.363.201-.578.233-2.416.359-4.866.54-7.308.46-1.748-.06-3.477-.254-5.207-.498-.17-.024-.353-.055-.47-.18-.22-.236-.111-.71-.054-.995.052-.26.152-.609.463-.646.484-.057 1.046.148 1.526.22.577.088 1.156.159 1.737.212 2.48.226 5.002.19 7.472-.14.45-.06.899-.13 1.345-.21.399-.072.84-.206 1.08.206.166.281.188.657.162.974a.544.544 0 01-.169.364zm-6.159 3.9c-.862.37-1.84.788-3.109.788a5.884 5.884 0 01-1.569-.217l.877 9.004c.065.78.717 1.38 1.5 1.38 0 0 1.243.065 1.658.065.447 0 1.786-.065 1.786-.065.783 0 1.434-.6 1.499-1.38l.94-9.95a3.996 3.996 0 00-1.322-.238c-.826 0-1.491.284-2.26.613z"/></svg>
|
After Width: | Height: | Size: 2.5 KiB |
1
static/svg/icons/discord.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg role="img" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><title>Discord</title><path d="M13.545 2.907a13.227 13.227 0 0 0-3.257-1.011.05.05 0 0 0-.052.025c-.141.25-.297.577-.406.833a12.19 12.19 0 0 0-3.658 0 8.258 8.258 0 0 0-.412-.833.051.051 0 0 0-.052-.025c-1.125.194-2.22.534-3.257 1.011a.041.041 0 0 0-.021.018C.356 6.024-.213 9.047.066 12.032c.001.014.01.028.021.037a13.276 13.276 0 0 0 3.995 2.02.05.05 0 0 0 .056-.019c.308-.42.582-.863.818-1.329a.05.05 0 0 0-.01-.059.051.051 0 0 0-.018-.011 8.875 8.875 0 0 1-1.248-.595.05.05 0 0 1-.02-.066.051.051 0 0 1 .015-.019c.084-.063.168-.129.248-.195a.05.05 0 0 1 .051-.007c2.619 1.196 5.454 1.196 8.041 0a.052.052 0 0 1 .053.007c.08.066.164.132.248.195a.051.051 0 0 1-.004.085 8.254 8.254 0 0 1-1.249.594.05.05 0 0 0-.03.03.052.052 0 0 0 .003.041c.24.465.515.909.817 1.329a.05.05 0 0 0 .056.019 13.235 13.235 0 0 0 4.001-2.02.049.049 0 0 0 .021-.037c.334-3.451-.559-6.449-2.366-9.106a.034.034 0 0 0-.02-.019Zm-8.198 7.307c-.789 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.45.73 1.438 1.613 0 .888-.637 1.612-1.438 1.612Zm5.316 0c-.788 0-1.438-.724-1.438-1.612 0-.889.637-1.613 1.438-1.613.807 0 1.451.73 1.438 1.613 0 .888-.631 1.612-1.438 1.612Z"/></svg>
|
After Width: | Height: | Size: 1.2 KiB |
1
static/svg/icons/dribbble.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Dribbble</title><path d="M12 24C5.385 24 0 18.615 0 12S5.385 0 12 0s12 5.385 12 12-5.385 12-12 12zm10.12-10.358c-.35-.11-3.17-.953-6.384-.438 1.34 3.684 1.887 6.684 1.992 7.308 2.3-1.555 3.936-4.02 4.395-6.87zm-6.115 7.808c-.153-.9-.75-4.032-2.19-7.77l-.066.02c-5.79 2.015-7.86 6.025-8.04 6.4 1.73 1.358 3.92 2.166 6.29 2.166 1.42 0 2.77-.29 4-.814zm-11.62-2.58c.232-.4 3.045-5.055 8.332-6.765.135-.045.27-.084.405-.12-.26-.585-.54-1.167-.832-1.74C7.17 11.775 2.206 11.71 1.756 11.7l-.004.312c0 2.633.998 5.037 2.634 6.855zm-2.42-8.955c.46.008 4.683.026 9.477-1.248-1.698-3.018-3.53-5.558-3.8-5.928-2.868 1.35-5.01 3.99-5.676 7.17zM9.6 2.052c.282.38 2.145 2.914 3.822 6 3.645-1.365 5.19-3.44 5.373-3.702-1.81-1.61-4.19-2.586-6.795-2.586-.825 0-1.63.1-2.4.285zm10.335 3.483c-.218.29-1.935 2.493-5.724 4.04.24.49.47.985.68 1.486.08.18.15.36.22.53 3.41-.43 6.8.26 7.14.33-.02-2.42-.88-4.64-2.31-6.38z"/></svg>
|
After Width: | Height: | Size: 984 B |
1
static/svg/icons/email.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg viewBox="0 0 128 128" xmlns="http://www.w3.org/2000/svg"><path d="M 0,27.283 V 24 a 8,8 0 0 1 8,-8 h 112 a 8,8 0 0 1 8,8 v 3.283 l -64,40 z m 66.12,48.11 a 4.004,4.004 0 0 1 -4.24,0 L 0,36.717 V 104 a 8,8 0 0 0 8,8 h 112 a 8,8 0 0 0 8,-8 V 36.717 Z" data-name="Layer 2"/></svg>
|
After Width: | Height: | Size: 282 B |
1
static/svg/icons/facebook.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Facebook</title><path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/></svg>
|
After Width: | Height: | Size: 398 B |
1
static/svg/icons/github.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg>
|
After Width: | Height: | Size: 822 B |
1
static/svg/icons/gmail.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Gmail</title><path d="M24 5.457v13.909c0 .904-.732 1.636-1.636 1.636h-3.819V11.73L12 16.64l-6.545-4.91v9.273H1.636A1.636 1.636 0 0 1 0 19.366V5.457c0-2.023 2.309-3.178 3.927-1.964L5.455 4.64 12 9.548l6.545-4.91 1.528-1.145C21.69 2.28 24 3.434 24 5.457z"/></svg>
|
After Width: | Height: | Size: 339 B |
1
static/svg/icons/google.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Google</title><path d="M12.48 10.92v3.28h7.84c-.24 1.84-.853 3.187-1.787 4.133-1.147 1.147-2.933 2.4-6.053 2.4-4.827 0-8.6-3.893-8.6-8.72s3.773-8.72 8.6-8.72c2.6 0 4.507 1.027 5.907 2.347l2.307-2.307C18.747 1.44 16.133 0 12.48 0 5.867 0 .307 5.387.307 12s5.56 12 12.173 12c3.573 0 6.267-1.173 8.373-3.36 2.16-2.16 2.84-5.213 2.84-7.667 0-.76-.053-1.467-.173-2.053H12.48z"/></svg>
|
After Width: | Height: | Size: 457 B |
1
static/svg/icons/instagram.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Instagram</title><path d="M12 0C8.74 0 8.333.015 7.053.072 5.775.132 4.905.333 4.14.63c-.789.306-1.459.717-2.126 1.384S.935 3.35.63 4.14C.333 4.905.131 5.775.072 7.053.012 8.333 0 8.74 0 12s.015 3.667.072 4.947c.06 1.277.261 2.148.558 2.913.306.788.717 1.459 1.384 2.126.667.666 1.336 1.079 2.126 1.384.766.296 1.636.499 2.913.558C8.333 23.988 8.74 24 12 24s3.667-.015 4.947-.072c1.277-.06 2.148-.262 2.913-.558.788-.306 1.459-.718 2.126-1.384.666-.667 1.079-1.335 1.384-2.126.296-.765.499-1.636.558-2.913.06-1.28.072-1.687.072-4.947s-.015-3.667-.072-4.947c-.06-1.277-.262-2.149-.558-2.913-.306-.789-.718-1.459-1.384-2.126C21.319 1.347 20.651.935 19.86.63c-.765-.297-1.636-.499-2.913-.558C15.667.012 15.26 0 12 0zm0 2.16c3.203 0 3.585.016 4.85.071 1.17.055 1.805.249 2.227.415.562.217.96.477 1.382.896.419.42.679.819.896 1.381.164.422.36 1.057.413 2.227.057 1.266.07 1.646.07 4.85s-.015 3.585-.074 4.85c-.061 1.17-.256 1.805-.421 2.227-.224.562-.479.96-.899 1.382-.419.419-.824.679-1.38.896-.42.164-1.065.36-2.235.413-1.274.057-1.649.07-4.859.07-3.211 0-3.586-.015-4.859-.074-1.171-.061-1.816-.256-2.236-.421-.569-.224-.96-.479-1.379-.899-.421-.419-.69-.824-.9-1.38-.165-.42-.359-1.065-.42-2.235-.045-1.26-.061-1.649-.061-4.844 0-3.196.016-3.586.061-4.861.061-1.17.255-1.814.42-2.234.21-.57.479-.96.9-1.381.419-.419.81-.689 1.379-.898.42-.166 1.051-.361 2.221-.421 1.275-.045 1.65-.06 4.859-.06l.045.03zm0 3.678c-3.405 0-6.162 2.76-6.162 6.162 0 3.405 2.76 6.162 6.162 6.162 3.405 0 6.162-2.76 6.162-6.162 0-3.405-2.76-6.162-6.162-6.162zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm7.846-10.405c0 .795-.646 1.44-1.44 1.44-.795 0-1.44-.646-1.44-1.44 0-.794.646-1.439 1.44-1.439.793-.001 1.44.645 1.44 1.439z"/></svg>
|
After Width: | Height: | Size: 1.8 KiB |
1
static/svg/icons/iota.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 50 50" width="24px" height="24px"><path d="M28.5 19A1.5 1.5 0 1 0 28.5 22 1.5 1.5 0 1 0 28.5 19zM29.75 15.5A1.25 1.25 0 1 0 29.75 18 1.25 1.25 0 1 0 29.75 15.5zM24.5 18A1.5 1.5 0 1 0 24.5 21 1.5 1.5 0 1 0 24.5 18zM26.5 13.125A1.375 1.375 0 1 0 26.5 15.875 1.375 1.375 0 1 0 26.5 13.125zM22.5 12A1.5 1.5 0 1 0 22.5 15 1.5 1.5 0 1 0 22.5 12zM22 7A1.5 1.5 0 1 0 22 10 1.5 1.5 0 1 0 22 7zM26 8A1.5 1.5 0 1 0 26 11 1.5 1.5 0 1 0 26 8zM29 10A1 1 0 1 0 29 12 1 1 0 1 0 29 10zM31 12A1 1 0 1 0 31 14 1 1 0 1 0 31 12zM20 17.5A1.75 1.75 0 1 0 20 21 1.75 1.75 0 1 0 20 17.5zM18 11.5A1.75 1.75 0 1 0 18 15 1.75 1.75 0 1 0 18 11.5zM17.25 6.5A1.75 1.75 0 1 0 17.25 10 1.75 1.75 0 1 0 17.25 6.5zM15 18A2 2 0 1 0 15 22 2 2 0 1 0 15 18zM13 12A2 2 0 1 0 13 16 2 2 0 1 0 13 12zM12 7A2 2 0 1 0 12 11 2 2 0 1 0 12 7zM9.5 20A2.5 2.5 0 1 0 9.5 25 2.5 2.5 0 1 0 9.5 20zM7.5 14A2.5 2.5 0 1 0 7.5 19 2.5 2.5 0 1 0 7.5 14zM3 24c-1.657 0-3 1.343-3 3s1.343 3 3 3 3-1.343 3-3S4.657 24 3 24L3 24zM21.12 23.813A1.5 1.5 0 1 0 21.12 26.813 1.5 1.5 0 1 0 21.12 23.813zM17.248 24.856A1.25 1.25 0 1 0 17.248 27.356 1.25 1.25 0 1 0 17.248 24.856zM22.254 27.777A1.5 1.5 0 1 0 22.254 30.777 1.5 1.5 0 1 0 22.254 27.777zM16.924 28.67A1.375 1.375 0 1 0 16.924 31.42 1.375 1.375 0 1 0 16.924 28.67zM18.058 32.509A1.5 1.5 0 1 0 18.058 35.509 1.5 1.5 0 1 0 18.058 32.509zM13.978 35.442A1.5 1.5 0 1 0 13.978 38.442 1.5 1.5 0 1 0 13.978 35.442zM12.844 31.478A1.5 1.5 0 1 0 12.844 34.478 1.5 1.5 0 1 0 12.844 31.478zM12.643 28.63A1 1 0 1 0 12.643 30.63 1 1 0 1 0 12.643 28.63zM13.375 25.898A1 1 0 1 0 13.375 27.898 1 1 0 1 0 13.375 25.898zM24.288 31.549A1.75 1.75 0 1 0 24.288 35.049 1.75 1.75 0 1 0 24.288 31.549zM20.092 36.281A1.75 1.75 0 1 0 20.092 39.781 1.75 1.75 0 1 0 20.092 36.281zM16.137 39.431A1.75 1.75 0 1 0 16.137 42.931 1.75 1.75 0 1 0 16.137 39.431zM27.437 35.254A2 2 0 1 0 27.437 39.254 2 2 0 1 0 27.437 35.254zM23.241 39.986A2 2 0 1 0 23.241 43.986 2 2 0 1 0 23.241 39.986zM19.411 43.352A2 2 0 1 0 19.411 47.352 2 2 0 1 0 19.411 43.352zM32.352 38.268A2.5 2.5 0 1 0 32.352 43.268 2.5 2.5 0 1 0 32.352 38.268zM28.156 43A2.5 2.5 0 1 0 28.156 48 2.5 2.5 0 1 0 28.156 43zM38.997 40.28c-.509 0-1.025.13-1.497.402-1.435.828-1.927 2.663-1.098 4.098.556.962 1.564 1.5 2.601 1.5.509 0 1.025-.13 1.497-.402 1.435-.828 1.927-2.663 1.098-4.098C41.042 40.818 40.034 40.28 38.997 40.28L38.997 40.28zM28.79 27.96A1.5 1.5 0 1 0 28.79 30.96 1.5 1.5 0 1 0 28.79 27.96zM31.413 31.167A1.25 1.25 0 1 0 31.413 33.667 1.25 1.25 0 1 0 31.413 31.167zM31.656 24.996A1.5 1.5 0 1 0 31.656 27.996 1.5 1.5 0 1 0 31.656 24.996zM34.987 29.353A1.375 1.375 0 1 0 34.987 32.103 1.375 1.375 0 1 0 34.987 29.353zM37.853 26.264A1.5 1.5 0 1 0 37.853 29.264 1.5 1.5 0 1 0 37.853 26.264zM42.433 28.331A1.5 1.5 0 1 0 42.433 31.331 1.5 1.5 0 1 0 42.433 28.331zM39.567 31.295A1.5 1.5 0 1 0 39.567 34.295 1.5 1.5 0 1 0 39.567 31.295zM36.768 33.643A1 1 0 1 0 36.768 35.643 1 1 0 1 0 36.768 33.643zM34.036 34.375A1 1 0 1 0 34.036 36.375 1 1 0 1 0 34.036 34.375zM34.123 20.974A1.75 1.75 0 1 0 34.123 24.474 1.75 1.75 0 1 0 34.123 20.974zM40.319 22.242A1.75 1.75 0 1 0 40.319 25.742 1.75 1.75 0 1 0 40.319 22.242zM45.024 24.092A1.75 1.75 0 1 0 45.024 27.592 1.75 1.75 0 1 0 45.024 24.092zM35.973 16.018A2 2 0 1 0 35.973 20.018 2 2 0 1 0 35.973 16.018zM42.17 17.286A2 2 0 1 0 42.17 21.286 2 2 0 1 0 42.17 17.286zM47 18.92A2 2 0 1 0 47 22.92 2 2 0 1 0 47 18.92zM36.558 9.505A2.5 2.5 0 1 0 36.558 14.505 2.5 2.5 0 1 0 36.558 9.505zM42.754 10.773A2.5 2.5 0 1 0 42.754 15.773 2.5 2.5 0 1 0 42.754 10.773zM34.414 1.992c-1.037 0-2.045.538-2.601 1.5-.828 1.435-.337 3.27 1.098 4.098.472.273.988.402 1.497.402 1.037 0 2.045-.538 2.601-1.5.828-1.435.337-3.27-1.098-4.098C35.439 2.121 34.923 1.992 34.414 1.992L34.414 1.992z"/></svg>
|
After Width: | Height: | Size: 3.7 KiB |
1
static/svg/icons/kofi.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Ko-fi</title><path d="M23.881 8.948c-.773-4.085-4.859-4.593-4.859-4.593H.723c-.604 0-.679.798-.679.798s-.082 7.324-.022 11.822c.164 2.424 2.586 2.672 2.586 2.672s8.267-.023 11.966-.049c2.438-.426 2.683-2.566 2.658-3.734 4.352.24 7.422-2.831 6.649-6.916zm-11.062 3.511c-1.246 1.453-4.011 3.976-4.011 3.976s-.121.119-.31.023c-.076-.057-.108-.09-.108-.09-.443-.441-3.368-3.049-4.034-3.954-.709-.965-1.041-2.7-.091-3.71.951-1.01 3.005-1.086 4.363.407 0 0 1.565-1.782 3.468-.963 1.904.82 1.832 3.011.723 4.311zm6.173.478c-.928.116-1.682.028-1.682.028V7.284h1.77s1.971.551 1.971 2.638c0 1.913-.985 2.667-2.059 3.015z"/></svg>
|
After Width: | Height: | Size: 697 B |
1
static/svg/icons/linkedin.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>LinkedIn</title><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg>
|
After Width: | Height: | Size: 610 B |
1
static/svg/icons/mastodon.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Mastodon</title><path d="M23.193 7.88c0-5.207-3.411-6.733-3.411-6.733C18.062.357 15.108.025 12.041 0h-.076c-3.069.025-6.02.357-7.74 1.147 0 0-3.412 1.526-3.412 6.732 0 1.193-.023 2.619.015 4.13.124 5.092.934 10.11 5.641 11.355 2.17.574 4.034.695 5.536.612 2.722-.15 4.25-.972 4.25-.972l-.09-1.975s-1.945.613-4.13.54c-2.165-.075-4.449-.234-4.799-2.892a5.5 5.5 0 0 1-.048-.745s2.125.52 4.818.643c1.646.075 3.19-.097 4.758-.283 3.007-.359 5.625-2.212 5.954-3.905.517-2.665.475-6.508.475-6.508zm-4.024 6.709h-2.497v-6.12c0-1.29-.543-1.944-1.628-1.944-1.2 0-1.802.776-1.802 2.313v3.349h-2.484v-3.35c0-1.537-.602-2.313-1.802-2.313-1.085 0-1.628.655-1.628 1.945v6.119H4.831V8.285c0-1.29.328-2.314.987-3.07.68-.759 1.57-1.147 2.674-1.147 1.278 0 2.246.491 2.886 1.474L12 6.585l.622-1.043c.64-.983 1.608-1.474 2.886-1.474 1.104 0 1.994.388 2.674 1.146.658.757.986 1.781.986 3.07v6.305z"/></svg>
|
After Width: | Height: | Size: 963 B |
2
static/svg/icons/monero.svg
Normal file
|
@ -0,0 +1,2 @@
|
|||
<?xml version="1.0" encoding="utf-8"?><!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg fill="#000000" width="800px" height="800px" viewBox="0 0 24 24" role="img" xmlns="http://www.w3.org/2000/svg"><title>Monero icon</title><path d="M12 0C5.365 0 0 5.373 0 12.015c0 1.335.228 2.607.618 3.81h3.577V5.729L12 13.545l7.805-7.815v10.095h3.577c.389-1.203.618-2.475.618-3.81C24 5.375 18.635 0 12 0zm-1.788 15.307l-3.417-3.421v6.351H1.758C3.87 21.689 7.678 24 12 24s8.162-2.311 10.245-5.764h-5.04v-6.351l-3.386 3.421-1.788 1.79-1.814-1.79h-.005z"/></svg>
|
After Width: | Height: | Size: 582 B |
1
static/svg/icons/mozilla.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Mozilla</title><path d="M0 0v24h24V0zm10.13 6.706c1.481 0 2.858.706 3.352 2.224.565-1.377 1.73-2.224 3.353-2.224 1.87 0 3.565 1.13 3.565 3.564v4.765h1.412v2.26h-4.341v-5.86c0-1.8-.6-2.47-1.765-2.47-1.412 0-1.976 1.024-1.976 2.435V15h1.376v2.259h-4.341v-5.824c0-1.8-.6-2.47-1.765-2.47-1.412 0-1.976 1.024-1.976 2.435V15H9v2.259H2.647V15h1.377V9.176H2.647V6.918H6.99V8.47c.635-1.095 1.693-1.765 3.14-1.765z"/></svg>
|
After Width: | Height: | Size: 491 B |
19
static/svg/icons/paypal.svg
Normal file
|
@ -0,0 +1,19 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
|
||||
<svg width="800px" height="800px" viewBox="-1.5 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
||||
|
||||
<title>paypal [#140]</title>
|
||||
<desc>Created with Sketch.</desc>
|
||||
<defs>
|
||||
|
||||
</defs>
|
||||
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
|
||||
<g id="Dribbble-Light-Preview" transform="translate(-222.000000, -7559.000000)" fill="#000000">
|
||||
<g id="icons" transform="translate(56.000000, 160.000000)">
|
||||
<path d="M182.475463,7404.9 C181.260804,7410.117 177.555645,7411 172.578656,7411 L171.078137,7419 L173.825411,7419 C174.325918,7419 174.53555,7418.659 174.627828,7418.179 C175.312891,7413.848 175.216601,7414.557 175.278788,7413.879 C175.337966,7413.501 175.664951,7413 176.049108,7413 C179.698098,7413 182.118387,7411.945 182.857614,7408.158 C183.120405,7406.811 183.034145,7405.772 182.475463,7404.9 M171.134306,7410.86 L170.011926,7417 L166.535456,7417 C166.206465,7417 165.954707,7416.598 166.006864,7416.274 L168.602682,7399.751 C168.670887,7399.319 169.045014,7399 169.484337,7399 L175.718111,7399 C179.409228,7399 181.894714,7400.401 181.319983,7404.054 C180.313953,7410.56 174.737157,7410 172.199514,7410 C171.760191,7410 171.203515,7410.428 171.134306,7410.86" id="paypal-[#140]">
|
||||
|
||||
</path>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 1.5 KiB |
1
static/svg/icons/reddit.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Reddit</title><path d="M12 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0zm5.01 4.744c.688 0 1.25.561 1.25 1.249a1.25 1.25 0 0 1-2.498.056l-2.597-.547-.8 3.747c1.824.07 3.48.632 4.674 1.488.308-.309.73-.491 1.207-.491.968 0 1.754.786 1.754 1.754 0 .716-.435 1.333-1.01 1.614a3.111 3.111 0 0 1 .042.52c0 2.694-3.13 4.87-7.004 4.87-3.874 0-7.004-2.176-7.004-4.87 0-.183.015-.366.043-.534A1.748 1.748 0 0 1 4.028 12c0-.968.786-1.754 1.754-1.754.463 0 .898.196 1.207.49 1.207-.883 2.878-1.43 4.744-1.487l.885-4.182a.342.342 0 0 1 .14-.197.35.35 0 0 1 .238-.042l2.906.617a1.214 1.214 0 0 1 1.108-.701zM9.25 12C8.561 12 8 12.562 8 13.25c0 .687.561 1.248 1.25 1.248.687 0 1.248-.561 1.248-1.249 0-.688-.561-1.249-1.249-1.249zm5.5 0c-.687 0-1.248.561-1.248 1.25 0 .687.561 1.248 1.249 1.248.688 0 1.249-.561 1.249-1.249 0-.687-.562-1.249-1.25-1.249zm-5.466 3.99a.327.327 0 0 0-.231.094.33.33 0 0 0 0 .463c.842.842 2.484.913 2.961.913.477 0 2.105-.056 2.961-.913a.361.361 0 0 0 .029-.463.33.33 0 0 0-.464 0c-.547.533-1.684.73-2.512.73-.828 0-1.979-.196-2.512-.73a.326.326 0 0 0-.232-.095z"/></svg>
|
After Width: | Height: | Size: 1.2 KiB |
1
static/svg/icons/rss.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>RSS</title><path d="M19.199 24C19.199 13.467 10.533 4.8 0 4.8V0c13.165 0 24 10.835 24 24h-4.801zM3.291 17.415c1.814 0 3.293 1.479 3.293 3.295 0 1.813-1.485 3.29-3.301 3.29C1.47 24 0 22.526 0 20.71s1.475-3.294 3.291-3.295zM15.909 24h-4.665c0-6.169-5.075-11.245-11.244-11.245V8.09c8.727 0 15.909 7.184 15.909 15.91z"/></svg>
|
After Width: | Height: | Size: 400 B |
1
static/svg/icons/spotify.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Spotify</title><path d="M12 0C5.4 0 0 5.4 0 12s5.4 12 12 12 12-5.4 12-12S18.66 0 12 0zm5.521 17.34c-.24.359-.66.48-1.021.24-2.82-1.74-6.36-2.101-10.561-1.141-.418.122-.779-.179-.899-.539-.12-.421.18-.78.54-.9 4.56-1.021 8.52-.6 11.64 1.32.42.18.479.659.301 1.02zm1.44-3.3c-.301.42-.841.6-1.262.3-3.239-1.98-8.159-2.58-11.939-1.38-.479.12-1.02-.12-1.14-.6-.12-.48.12-1.021.6-1.141C9.6 9.9 15 10.561 18.72 12.84c.361.181.54.78.241 1.2zm.12-3.36C15.24 8.4 8.82 8.16 5.16 9.301c-.6.179-1.2-.181-1.38-.721-.18-.601.18-1.2.72-1.381 4.26-1.26 11.28-1.02 15.721 1.621.539.3.719 1.02.419 1.56-.299.421-1.02.599-1.559.3z"/></svg>
|
After Width: | Height: | Size: 697 B |
1
static/svg/icons/stackoverflow.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Stack Overflow</title><path d="M15.725 0l-1.72 1.277 6.39 8.588 1.716-1.277L15.725 0zm-3.94 3.418l-1.369 1.644 8.225 6.85 1.369-1.644-8.225-6.85zm-3.15 4.465l-.905 1.94 9.702 4.517.904-1.94-9.701-4.517zm-1.85 4.86l-.44 2.093 10.473 2.201.44-2.092-10.473-2.203zM1.89 15.47V24h19.19v-8.53h-2.133v6.397H4.021v-6.396H1.89zm4.265 2.133v2.13h10.66v-2.13H6.154Z"/></svg>
|
After Width: | Height: | Size: 441 B |
1
static/svg/icons/tiktok.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>TikTok</title><path d="M12.525.02c1.31-.02 2.61-.01 3.91-.02.08 1.53.63 3.09 1.75 4.17 1.12 1.11 2.7 1.62 4.24 1.79v4.03c-1.44-.05-2.89-.35-4.2-.97-.57-.26-1.1-.59-1.62-.93-.01 2.92.01 5.84-.02 8.75-.08 1.4-.54 2.79-1.35 3.94-1.31 1.92-3.58 3.17-5.91 3.21-1.43.08-2.86-.31-4.08-1.03-2.02-1.19-3.44-3.37-3.65-5.71-.02-.5-.03-1-.01-1.49.18-1.9 1.12-3.72 2.58-4.96 1.66-1.44 3.98-2.13 6.15-1.72.02 1.48-.04 2.96-.04 4.44-.99-.32-2.15-.23-3.02.37-.63.41-1.11 1.04-1.36 1.75-.21.51-.15 1.07-.14 1.61.24 1.64 1.82 3.02 3.5 2.87 1.12-.01 2.19-.66 2.77-1.61.19-.33.4-.67.41-1.06.1-1.79.06-3.57.07-5.36.01-4.03-.01-8.05.02-12.07z"/></svg>
|
After Width: | Height: | Size: 707 B |
1
static/svg/icons/twitch.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitch</title><path d="M11.571 4.714h1.715v5.143H11.57zm4.715 0H18v5.143h-1.714zM6 0L1.714 4.286v15.428h5.143V24l4.286-4.286h3.428L22.286 12V0zm14.571 11.143l-3.428 3.428h-3.429l-3 3v-3H6.857V1.714h13.714Z"/></svg>
|
After Width: | Height: | Size: 292 B |
1
static/svg/icons/twitter.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Twitter</title><path d="M23.953 4.57a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.69 8.095 4.067 6.13 1.64 3.162a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.06a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.936 4.936 0 004.604 3.417 9.867 9.867 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.053 0 13.998-7.496 13.998-13.985 0-.21 0-.42-.015-.63A9.935 9.935 0 0024 4.59z"/></svg>
|
After Width: | Height: | Size: 602 B |
1
static/svg/icons/vimeo.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Vimeo</title><path d="M23.9765 6.4168c-.105 2.338-1.739 5.5429-4.894 9.6088-3.2679 4.247-6.0258 6.3699-8.2898 6.3699-1.409 0-2.578-1.294-3.553-3.881l-1.9179-7.1138c-.719-2.584-1.488-3.878-2.312-3.878-.179 0-.806.378-1.8809 1.132l-1.129-1.457a315.06 315.06 0 003.501-3.1279c1.579-1.368 2.765-2.085 3.5539-2.159 1.867-.18 3.016 1.1 3.447 3.838.465 2.953.789 4.789.971 5.5069.5389 2.45 1.1309 3.674 1.7759 3.674.502 0 1.256-.796 2.265-2.385 1.004-1.589 1.54-2.797 1.612-3.628.144-1.371-.395-2.061-1.614-2.061-.574 0-1.167.121-1.777.391 1.186-3.8679 3.434-5.7568 6.7619-5.6368 2.4729.06 3.6279 1.664 3.4929 4.7969z"/></svg>
|
After Width: | Height: | Size: 697 B |
1
static/svg/icons/xing.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Xing</title><path d="M18.188 0c-.517 0-.741.325-.927.66 0 0-7.455 13.224-7.702 13.657.015.024 4.919 9.023 4.919 9.023.17.308.436.66.967.66h3.454c.211 0 .375-.078.463-.22.089-.151.089-.346-.009-.536l-4.879-8.916c-.004-.006-.004-.016 0-.022L22.139.756c.095-.191.097-.387.006-.535C22.056.078 21.894 0 21.686 0h-3.498zM3.648 4.74c-.211 0-.385.074-.473.216-.09.149-.078.339.02.531l2.34 4.05c.004.01.004.016 0 .021L1.86 16.051c-.099.188-.093.381 0 .529.085.142.239.234.45.234h3.461c.518 0 .766-.348.945-.667l3.734-6.609-2.378-4.155c-.172-.315-.434-.659-.962-.659H3.648v.016z"/></svg>
|
After Width: | Height: | Size: 655 B |
1
static/svg/icons/ycombinator.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Y Combinator</title><path d="M0 24V0h24v24H0zM6.951 5.896l4.112 7.708v5.064h1.583v-4.972l4.148-7.799h-1.749l-2.457 4.875c-.372.745-.688 1.434-.688 1.434s-.297-.708-.651-1.434L8.831 5.896h-1.88z"/></svg>
|
After Width: | Height: | Size: 280 B |
1
static/svg/icons/youtube.svg
Normal file
|
@ -0,0 +1 @@
|
|||
<svg role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>YouTube</title><path d="M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z"/></svg>
|
After Width: | Height: | Size: 459 B |