Initial commit
This commit is contained in:
commit
5d64b353bf
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
public
|
10
LICENSE-0BSD
Normal file
10
LICENSE-0BSD
Normal file
|
@ -0,0 +1,10 @@
|
|||
Permission to use, copy, modify, and/or distribute this software for
|
||||
any purpose with or without fee is hereby granted.
|
||||
|
||||
THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL
|
||||
WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
|
||||
OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE
|
||||
FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY
|
||||
DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
|
||||
AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
|
||||
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
121
LICENSE-CC0
Normal file
121
LICENSE-CC0
Normal file
|
@ -0,0 +1,121 @@
|
|||
Creative Commons Legal Code
|
||||
|
||||
CC0 1.0 Universal
|
||||
|
||||
CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE
|
||||
LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN
|
||||
ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS
|
||||
INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES
|
||||
REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS
|
||||
PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM
|
||||
THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED
|
||||
HEREUNDER.
|
||||
|
||||
Statement of Purpose
|
||||
|
||||
The laws of most jurisdictions throughout the world automatically confer
|
||||
exclusive Copyright and Related Rights (defined below) upon the creator
|
||||
and subsequent owner(s) (each and all, an "owner") of an original work of
|
||||
authorship and/or a database (each, a "Work").
|
||||
|
||||
Certain owners wish to permanently relinquish those rights to a Work for
|
||||
the purpose of contributing to a commons of creative, cultural and
|
||||
scientific works ("Commons") that the public can reliably and without fear
|
||||
of later claims of infringement build upon, modify, incorporate in other
|
||||
works, reuse and redistribute as freely as possible in any form whatsoever
|
||||
and for any purposes, including without limitation commercial purposes.
|
||||
These owners may contribute to the Commons to promote the ideal of a free
|
||||
culture and the further production of creative, cultural and scientific
|
||||
works, or to gain reputation or greater distribution for their Work in
|
||||
part through the use and efforts of others.
|
||||
|
||||
For these and/or other purposes and motivations, and without any
|
||||
expectation of additional consideration or compensation, the person
|
||||
associating CC0 with a Work (the "Affirmer"), to the extent that he or she
|
||||
is an owner of Copyright and Related Rights in the Work, voluntarily
|
||||
elects to apply CC0 to the Work and publicly distribute the Work under its
|
||||
terms, with knowledge of his or her Copyright and Related Rights in the
|
||||
Work and the meaning and intended legal effect of CC0 on those rights.
|
||||
|
||||
1. Copyright and Related Rights. A Work made available under CC0 may be
|
||||
protected by copyright and related or neighboring rights ("Copyright and
|
||||
Related Rights"). Copyright and Related Rights include, but are not
|
||||
limited to, the following:
|
||||
|
||||
i. the right to reproduce, adapt, distribute, perform, display,
|
||||
communicate, and translate a Work;
|
||||
ii. moral rights retained by the original author(s) and/or performer(s);
|
||||
iii. publicity and privacy rights pertaining to a person's image or
|
||||
likeness depicted in a Work;
|
||||
iv. rights protecting against unfair competition in regards to a Work,
|
||||
subject to the limitations in paragraph 4(a), below;
|
||||
v. rights protecting the extraction, dissemination, use and reuse of data
|
||||
in a Work;
|
||||
vi. database rights (such as those arising under Directive 96/9/EC of the
|
||||
European Parliament and of the Council of 11 March 1996 on the legal
|
||||
protection of databases, and under any national implementation
|
||||
thereof, including any amended or successor version of such
|
||||
directive); and
|
||||
vii. other similar, equivalent or corresponding rights throughout the
|
||||
world based on applicable law or treaty, and any national
|
||||
implementations thereof.
|
||||
|
||||
2. Waiver. To the greatest extent permitted by, but not in contravention
|
||||
of, applicable law, Affirmer hereby overtly, fully, permanently,
|
||||
irrevocably and unconditionally waives, abandons, and surrenders all of
|
||||
Affirmer's Copyright and Related Rights and associated claims and causes
|
||||
of action, whether now known or unknown (including existing as well as
|
||||
future claims and causes of action), in the Work (i) in all territories
|
||||
worldwide, (ii) for the maximum duration provided by applicable law or
|
||||
treaty (including future time extensions), (iii) in any current or future
|
||||
medium and for any number of copies, and (iv) for any purpose whatsoever,
|
||||
including without limitation commercial, advertising or promotional
|
||||
purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each
|
||||
member of the public at large and to the detriment of Affirmer's heirs and
|
||||
successors, fully intending that such Waiver shall not be subject to
|
||||
revocation, rescission, cancellation, termination, or any other legal or
|
||||
equitable action to disrupt the quiet enjoyment of the Work by the public
|
||||
as contemplated by Affirmer's express Statement of Purpose.
|
||||
|
||||
3. Public License Fallback. Should any part of the Waiver for any reason
|
||||
be judged legally invalid or ineffective under applicable law, then the
|
||||
Waiver shall be preserved to the maximum extent permitted taking into
|
||||
account Affirmer's express Statement of Purpose. In addition, to the
|
||||
extent the Waiver is so judged Affirmer hereby grants to each affected
|
||||
person a royalty-free, non transferable, non sublicensable, non exclusive,
|
||||
irrevocable and unconditional license to exercise Affirmer's Copyright and
|
||||
Related Rights in the Work (i) in all territories worldwide, (ii) for the
|
||||
maximum duration provided by applicable law or treaty (including future
|
||||
time extensions), (iii) in any current or future medium and for any number
|
||||
of copies, and (iv) for any purpose whatsoever, including without
|
||||
limitation commercial, advertising or promotional purposes (the
|
||||
"License"). The License shall be deemed effective as of the date CC0 was
|
||||
applied by Affirmer to the Work. Should any part of the License for any
|
||||
reason be judged legally invalid or ineffective under applicable law, such
|
||||
partial invalidity or ineffectiveness shall not invalidate the remainder
|
||||
of the License, and in such case Affirmer hereby affirms that he or she
|
||||
will not (i) exercise any of his or her remaining Copyright and Related
|
||||
Rights in the Work or (ii) assert any associated claims and causes of
|
||||
action with respect to the Work, in either case contrary to Affirmer's
|
||||
express Statement of Purpose.
|
||||
|
||||
4. Limitations and Disclaimers.
|
||||
|
||||
a. No trademark or patent rights held by Affirmer are waived, abandoned,
|
||||
surrendered, licensed or otherwise affected by this document.
|
||||
b. Affirmer offers the Work as-is and makes no representations or
|
||||
warranties of any kind concerning the Work, express, implied,
|
||||
statutory or otherwise, including without limitation warranties of
|
||||
title, merchantability, fitness for a particular purpose, non
|
||||
infringement, or the absence of latent or other defects, accuracy, or
|
||||
the present or absence of errors, whether or not discoverable, all to
|
||||
the greatest extent permissible under applicable law.
|
||||
c. Affirmer disclaims responsibility for clearing rights of other persons
|
||||
that may apply to the Work or any use thereof, including without
|
||||
limitation any person's Copyright and Related Rights in the Work.
|
||||
Further, Affirmer disclaims responsibility for obtaining any necessary
|
||||
consents, permissions or other rights required for any use of the
|
||||
Work.
|
||||
d. Affirmer understands and acknowledges that Creative Commons is not a
|
||||
party to this document and has no duty or obligation with respect to
|
||||
this CC0 or use of the Work.
|
26
README.md
Normal file
26
README.md
Normal file
|
@ -0,0 +1,26 @@
|
|||
|
||||
# site
|
||||
|
||||
My personal website.
|
||||
|
||||
<https://einsof.org>
|
||||
|
||||
## Build
|
||||
|
||||
Install [zola](https://www.getzola.org).
|
||||
|
||||
```sh
|
||||
zola build
|
||||
```
|
||||
|
||||
For development:
|
||||
|
||||
```sh
|
||||
zola serve --drafts
|
||||
```
|
||||
|
||||
## License
|
||||
|
||||
All the content is licensed under [CC0](https://creativecommons.org/public-domain/cc0/) and all the code is under [0BSD](https://opensource.org/license/0bsd) unless noted otherwise.
|
||||
|
||||
This means you can use the contents of this repo as you see fit.
|
26
config.toml
Normal file
26
config.toml
Normal file
|
@ -0,0 +1,26 @@
|
|||
base_url = "https://einsof.org"
|
||||
|
||||
# title = "einsof.org"
|
||||
# description = ""
|
||||
|
||||
default_language = "en"
|
||||
author = "Andrii Hetman"
|
||||
|
||||
generate_feeds = true
|
||||
feed_filenames = [ "atom.xml", "rss.xml" ]
|
||||
|
||||
compile_sass = false
|
||||
build_search_index = false
|
||||
|
||||
generate_sitemap = true
|
||||
generate_robots_txt = true
|
||||
|
||||
taxonomies = [
|
||||
{ name = "tag", feed = true }
|
||||
]
|
||||
|
||||
[markdown]
|
||||
highlight_code = true
|
||||
|
||||
[extra]
|
||||
# Put all your custom variables here
|
3
content/_index.md
Normal file
3
content/_index.md
Normal file
|
@ -0,0 +1,3 @@
|
|||
+++
|
||||
title = "einsof.org"
|
||||
+++
|
39
content/about.md
Normal file
39
content/about.md
Normal file
|
@ -0,0 +1,39 @@
|
|||
+++
|
||||
title = "About"
|
||||
+++
|
||||
|
||||
Andrii Hetman.
|
||||
|
||||
Programmer. Idiot. Anime enjoyer.
|
||||
|
||||
I use `magackame` as my username whenever I can.
|
||||
|
||||
## Language
|
||||
|
||||
- 🇬🇧 English: B2?
|
||||
- 🇺🇦 Ukrainian: Native
|
||||
- 🇷🇺 Russian: Native
|
||||
- 🇯🇵 Japanese: I wish 😭
|
||||
|
||||
## Contact Me
|
||||
|
||||
I prefer Signal, but you do you.
|
||||
|
||||
- mail: [1@einsof.org](mailto://1@einsof.org)
|
||||
- telegram: [magackame](https://t.me/magackame)
|
||||
- matrix: [@magackame:matrix.org](https://matrix.to/#/@magackame:matrix.org)
|
||||
- signal: [magackame.99](https://signal.me/#eu/nlalf8hKSsMH_cd_3NzyNtvlewbtIGutXO4Haw-kkDuCiqKt71xMF4iSXai0OfNP)
|
||||
- discord: magackame
|
||||
|
||||
## Profiles
|
||||
|
||||
- GitHub: [magackame](https://github.com/magackame)
|
||||
- Reddit: [magackame](https://www.reddit.com/user/Magackame/)
|
||||
|
||||
## Meta
|
||||
|
||||
All the content on this website is licensed under [CC0](https://creativecommons.org/public-domain/cc0/) and all the code is under [0BSD](https://opensource.org/license/0bsd) unless noted otherwise. This means you can use the contents of this website as you see fit.
|
||||
|
||||
This website is powered by [Zola](https://www.getzola.org) on top of [NixOS](https://nixos.org).
|
||||
|
||||
You can find the source code [here](https://src.einsof.org/magackame/site.git).
|
6
content/blog/_index.md
Normal file
6
content/blog/_index.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
+++
|
||||
title = "Blog"
|
||||
sort_by = "date"
|
||||
template = "blog.html"
|
||||
page_template = "post.html"
|
||||
+++
|
27
flake.lock
Normal file
27
flake.lock
Normal file
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
"nodes": {
|
||||
"nixpkgs": {
|
||||
"locked": {
|
||||
"lastModified": 1731386116,
|
||||
"narHash": "sha256-lKA770aUmjPHdTaJWnP3yQ9OI1TigenUqVC3wweqZuI=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "689fed12a013f56d4c4d3f612489634267d86529",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-24.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"nixpkgs": "nixpkgs"
|
||||
}
|
||||
}
|
||||
},
|
||||
"root": "root",
|
||||
"version": 7
|
||||
}
|
18
flake.nix
Normal file
18
flake.nix
Normal file
|
@ -0,0 +1,18 @@
|
|||
{
|
||||
description = "einsof.org site";
|
||||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixos-24.05";
|
||||
};
|
||||
|
||||
outputs = { self, nixpkgs, ... }@inputs:
|
||||
let
|
||||
pkgs = nixpkgs.legacyPackages.x86_64-linux;
|
||||
in
|
||||
{
|
||||
packages.x86_64-linux = rec {
|
||||
site = pkgs.callPackage ./site.nix {};
|
||||
default = site;
|
||||
};
|
||||
};
|
||||
}
|
27
site.nix
Normal file
27
site.nix
Normal file
|
@ -0,0 +1,27 @@
|
|||
{
|
||||
pkgs
|
||||
}:
|
||||
|
||||
pkgs.stdenv.mkDerivation {
|
||||
name = "site";
|
||||
version = "0.1.0";
|
||||
|
||||
src = ./.;
|
||||
# src = pkgs.fetchgit {
|
||||
# url = "git@einsof.org:/srv/git/repo/magackame/site.git";
|
||||
# rev = "";
|
||||
# sha256 = lib.fakeSha256;
|
||||
# };
|
||||
|
||||
buildInputs = with pkgs; [
|
||||
zola
|
||||
];
|
||||
|
||||
buildPhase = ''
|
||||
zola build
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
cp -r public $out
|
||||
'';
|
||||
}
|
65
static/favicon.svg
Normal file
65
static/favicon.svg
Normal file
|
@ -0,0 +1,65 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
width="200mm"
|
||||
height="200mm"
|
||||
viewBox="0 0 200 200"
|
||||
version="1.1"
|
||||
id="svg1"
|
||||
sodipodi:docname="favicon.svg"
|
||||
inkscape:version="1.4 (e7c3feb100, 2024-10-09)"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:svg="http://www.w3.org/2000/svg">
|
||||
<sodipodi:namedview
|
||||
id="namedview1"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#000000"
|
||||
borderopacity="0.25"
|
||||
inkscape:showpageshadow="2"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pagecheckerboard="0"
|
||||
inkscape:deskcolor="#d1d1d1"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:zoom="0.70710678"
|
||||
inkscape:cx="386.78741"
|
||||
inkscape:cy="400.92955"
|
||||
inkscape:window-width="1916"
|
||||
inkscape:window-height="1028"
|
||||
inkscape:window-x="1920"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="layer1" />
|
||||
<defs
|
||||
id="defs1">
|
||||
<rect
|
||||
x="212.29949"
|
||||
y="232.37784"
|
||||
width="526.93611"
|
||||
height="513.35008"
|
||||
id="rect1" />
|
||||
</defs>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-20.352251,-40.298835)">
|
||||
<circle
|
||||
style="fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:#000000;stroke-width:0;stroke-linecap:butt;stroke-linejoin:miter;stroke-dasharray:none;stroke-opacity:1;paint-order:normal"
|
||||
id="path2"
|
||||
cx="120.35225"
|
||||
cy="140.29883"
|
||||
r="100" />
|
||||
<text
|
||||
xml:space="preserve"
|
||||
transform="matrix(0.30179878,0,0,0.30179878,-8.1030652,-4.4530572)"
|
||||
id="text1"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:426.667px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;white-space:pre;shape-inside:url(#rect1);display:inline;fill:#ffffff;fill-opacity:1;stroke:#ffffff;stroke-width:0;stroke-dasharray:none"
|
||||
inkscape:label="text1"><tspan
|
||||
x="212.29883"
|
||||
y="641.5506"
|
||||
id="tspan1">永</tspan></text>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 2.3 KiB |
BIN
static/font/BerkeleyMono/BerkeleyMono-Bold.woff2
Normal file
BIN
static/font/BerkeleyMono/BerkeleyMono-Bold.woff2
Normal file
Binary file not shown.
BIN
static/font/BerkeleyMono/BerkeleyMono-BoldItalic.woff2
Normal file
BIN
static/font/BerkeleyMono/BerkeleyMono-BoldItalic.woff2
Normal file
Binary file not shown.
BIN
static/font/BerkeleyMono/BerkeleyMono-Italic.woff2
Normal file
BIN
static/font/BerkeleyMono/BerkeleyMono-Italic.woff2
Normal file
Binary file not shown.
BIN
static/font/BerkeleyMono/BerkeleyMono-Regular.woff2
Normal file
BIN
static/font/BerkeleyMono/BerkeleyMono-Regular.woff2
Normal file
Binary file not shown.
BIN
static/font/BerkeleyMono/LICENSE.pdf
Normal file
BIN
static/font/BerkeleyMono/LICENSE.pdf
Normal file
Binary file not shown.
BIN
static/image/cirno-fumo.png
Normal file
BIN
static/image/cirno-fumo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 33 KiB |
106
static/style.css
Normal file
106
static/style.css
Normal file
|
@ -0,0 +1,106 @@
|
|||
@font-face {
|
||||
font-family: "Berkeley Mono";
|
||||
|
||||
src:
|
||||
local("Berkeley Mono"),
|
||||
url("/font/BerkeleyMono/BerkeleyMono-Regular.woff2") format("woff2");
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Berkeley Mono";
|
||||
|
||||
src:
|
||||
local("Berkeley Mono:style=Bold"),
|
||||
url("/font/BerkeleyMono/BerkeleyMono-Bold.woff2") format("woff2");
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Berkeley Mono";
|
||||
|
||||
src:
|
||||
local("Berkeley Mono:style=Italic"),
|
||||
url("/font/BerkeleyMono/BerkeleyMono-Italic.woff2") format("woff2");
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: "Berkeley Mono";
|
||||
|
||||
src:
|
||||
local("Berkeley Mono:style=Bold Italic"),
|
||||
url("/font/BerkeleyMono/BerkeleyMono-BoldItalic.woff2") format("woff2");
|
||||
font-style: italic;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
body {
|
||||
padding: 1rem;
|
||||
margin: 0;
|
||||
width: calc(100% - 2rem);
|
||||
|
||||
margin: auto;
|
||||
max-width: 80ch;
|
||||
|
||||
font-family: sans-serif;
|
||||
line-height: 1.5;
|
||||
}
|
||||
|
||||
img {
|
||||
display: block;
|
||||
margin: auto;
|
||||
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
code {
|
||||
font-family: "Berkeley Mono", monospace;
|
||||
}
|
||||
|
||||
pre {
|
||||
font-family: "Berkeley Mono", monospace;
|
||||
padding: 1rem;
|
||||
|
||||
overflow: auto;
|
||||
scrollbar-width: thin;
|
||||
|
||||
color: white;
|
||||
background-color: #191724;
|
||||
}
|
||||
|
||||
blockquote {
|
||||
color: green;
|
||||
}
|
||||
|
||||
nav a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
footer a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
ul {
|
||||
list-style: inside square;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
@media (prefers-color-scheme: dark) {
|
||||
body {
|
||||
background-color: #1c1b22;
|
||||
color: white;
|
||||
}
|
||||
|
||||
a:link {
|
||||
color: #875fff;
|
||||
}
|
||||
|
||||
a:visited {
|
||||
color: magenta;
|
||||
}
|
||||
}
|
||||
|
||||
.date {
|
||||
color: gray;
|
||||
}
|
48
templates/base.html
Normal file
48
templates/base.html
Normal file
|
@ -0,0 +1,48 @@
|
|||
<!DOCTYPE html>
|
||||
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
|
||||
<link rel="stylesheet" href="/style.css" />
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
||||
|
||||
<title>
|
||||
{% if page.title %}
|
||||
{{ page.title }}
|
||||
{% else %}
|
||||
{{ section.title }}
|
||||
{% endif %}
|
||||
</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<nav style="display: flex; justify-content: space-between; margin-bottom: 3rem;">
|
||||
<a href="/">einsof.org</a>
|
||||
|
||||
<div style="display: flex; gap: 1rem;">
|
||||
<a href="/blog/">blog</a>
|
||||
<a href="/about/">about</a>
|
||||
</div>
|
||||
</nav>
|
||||
|
||||
{% block content %}
|
||||
{% endblock %}
|
||||
|
||||
<footer>
|
||||
<hr style="margin-top: 2rem; margin-bottom: 0.75rem;" />
|
||||
|
||||
<div style="display: flex; justify-content: space-between;">
|
||||
<a href="/">einsof.org</a>
|
||||
|
||||
<div>
|
||||
<span class="date">©</span>
|
||||
<a href="https://creativecommons.org/public-domain/cc0/">CC0</a>
|
||||
<span class="date">·</span>
|
||||
<a href="https://opensource.org/license/0bsd">0BSD</a>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
19
templates/blog.html
Normal file
19
templates/blog.html
Normal file
|
@ -0,0 +1,19 @@
|
|||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
{% if section.pages | length > 1 %}
|
||||
<h1>{{ section.title }}</h1>
|
||||
|
||||
{% for page in section.pages %}
|
||||
<a style="text-decoration: none; font-size: 1.2rem;" href="{{ page.permalink | safe }}">{{ page.title }}</a>
|
||||
<br />
|
||||
<span style="color: gray;">{{ page.date }}</span>
|
||||
<br />
|
||||
<br />
|
||||
{% endfor %}
|
||||
{% else %}
|
||||
<p style="text-align: center; color: gray;">
|
||||
There are no blogposts currently
|
||||
</p>
|
||||
{% endif %}
|
||||
{% endblock %}
|
23
templates/index.html
Normal file
23
templates/index.html
Normal file
|
@ -0,0 +1,23 @@
|
|||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<img alt="A cirno fumo" src="/image/cirno-fumo.png" />
|
||||
<br />
|
||||
|
||||
<p style="text-align: center; color: gray;">
|
||||
I will be shitposting here shortly...
|
||||
</p>
|
||||
|
||||
{% if section.pages | length > 1 %}
|
||||
<h1>Blog</h1>
|
||||
|
||||
{% set section = get_section(path="blog/_index.md") %}
|
||||
{% for page in section.pages %}
|
||||
<a style="text-decoration: none; font-size: 1.2rem;" href="{{ page.permalink | safe }}">{{ page.title }}</a>
|
||||
<br />
|
||||
<span class="date">{{ page.date }}</span>
|
||||
<br />
|
||||
<br />
|
||||
{% endfor %}
|
||||
{% endif %}
|
||||
{% endblock %}
|
10
templates/page.html
Normal file
10
templates/page.html
Normal file
|
@ -0,0 +1,10 @@
|
|||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<main>
|
||||
<h1>{{ page.title }}</h1>
|
||||
<p>{{ page.description }}</p>
|
||||
|
||||
{{ page.content | safe }}
|
||||
</main>
|
||||
{% endblock %}
|
15
templates/post.html
Normal file
15
templates/post.html
Normal file
|
@ -0,0 +1,15 @@
|
|||
{% extends "base.html" %}
|
||||
|
||||
{% block content %}
|
||||
<main>
|
||||
<h1>{{ page.title }}</h1>
|
||||
<p>{{ page.description }}</p>
|
||||
|
||||
<time class="date" datetime="{{ page.date }}">{{ page.date }}</time>
|
||||
|
||||
<br />
|
||||
<br />
|
||||
|
||||
{{ page.content | safe }}
|
||||
</main>
|
||||
{% endblock %}
|
Loading…
Reference in a new issue