Initial commit

This commit is contained in:
Andrii Hetman 2024-11-14 18:35:47 +02:00
commit 6464047941
19 changed files with 259 additions and 0 deletions

1
.gitignore vendored Normal file
View file

@ -0,0 +1 @@
public

21
config.toml Normal file
View file

@ -0,0 +1,21 @@
base_url = "https://einsof.org"
# title = "einsof.org"
# description = ""
default_language = "en"
generate_feeds = true
feed_filenames = [ "atom.xml", "rss.xml" ]
compile_sass = false
build_search_index = false
generate_sitemap = true
generate_robots_txt = true
[markdown]
highlight_code = true
[extra]
# Put all your custom variables here

3
content/_index.md Normal file
View file

@ -0,0 +1,3 @@
+++
title = "einsof.org"
+++

3
content/about.md Normal file
View file

@ -0,0 +1,3 @@
+++
title = "About"
+++

6
content/blog/_index.md Normal file
View file

@ -0,0 +1,6 @@
+++
title = "Sus"
sort_by = "date"
template = "blog.html"
page_template = "post.html"
+++

View file

@ -0,0 +1,28 @@
+++
title = "Is Google Search Really That Bad?"
date = 2024-11-14
+++
# Yessir
Zola is a static site generator (SSG), similar to Hugo, Pelican, and Jekyll (for a comprehensive list of SSGs, please see Jamstack). It is written in Rust and uses the Tera template engine, which is similar to Jinja2, Django templates, Liquid, and Twig.
Content is written in CommonMark, a strongly defined, highly compatible specification of Markdown. Zola uses pulldown-cmark to parse markdown files. The goal of this library is 100% compliance with the CommonMark spec. It adds a few additional features such as parsing footnotes, Github flavored tables, Github flavored task lists and strikethrough.
SSGs use dynamic templates to transform content into static HTML pages. Static sites are thus very fast and require no databases, making them easy to host. A comparison between static and dynamic sites, such as WordPress, Drupal, and Django, can be found here.
To get a taste of Zola, please see the quick overview below.
## Not really
Zola is a static site generator (SSG), similar to Hugo, Pelican, and Jekyll (for a comprehensive list of SSGs, please see Jamstack). It is written in Rust and uses the Tera template engine, which is similar to Jinja2, Django templates, Liquid, and Twig.
Content is written in CommonMark, a strongly defined, highly compatible specification of Markdown. Zola uses pulldown-cmark to parse markdown files. The goal of this library is 100% compliance with the CommonMark spec. It adds a few additional features such as parsing footnotes, Github flavored tables, Github flavored task lists and strikethrough.
### Gachi
SSGs use dynamic templates to transform content into static HTML pages. Static sites are thus very fast and require no databases, making them easy to host. A comparison between static and dynamic sites, such as WordPress, Drupal, and Django, can be found here.
To get a taste of Zola, please see the quick overview below.

27
flake.lock Normal file
View 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
View 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
View 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
'';
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

65
static/style.css Normal file
View file

@ -0,0 +1,65 @@
/*
@font-face {
font-family: Univers;
src: local("Univers"), url("/font/Univers/UniversRegular.ttf"),
url("/font/Univers/UniversBold.ttf");
}
*/
* {
font-family: Univers, sans-serif;
}
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: "Anonymous Pro", monospace;
}
pre {
font-family: "Anonymous Pro", monospace;
padding: 1rem;
overflow: auto;
scrollbar-width: thin;
color: white;
background-color: #191724;
}
blockquote {
color: green;
}
@media (prefers-color-scheme: dark) {
body {
background-color: #1c1b22;
color: white;
}
a:link {
color: #875fff;
}
a:visited {
color: magenta;
}
}

32
templates/base.html Normal file
View file

@ -0,0 +1,32 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link href="/style.css" rel="stylesheet" />
<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 %}
</body>
</html>

9
templates/blog.html Normal file
View file

@ -0,0 +1,9 @@
{% extends "base.html" %}
{% block content %}
<h1>{{ section.title }}</h1>
{% for page in section.pages %}
<a href="{{ page.permalink | safe }}">{{ page.title }}</a>
{% endfor %}
{% endblock %}

4
templates/index.html Normal file
View file

@ -0,0 +1,4 @@
{% extends "base.html" %}
{% block content %}
{% endblock %}

15
templates/post.html Normal file
View file

@ -0,0 +1,15 @@
{% extends "base.html" %}
{% block content %}
<main>
<h1>{{ page.title }}</h1>
<p>{{ page.description }}</p>
<time datetime="{{ page.date }}">{{ page.date }}</time>
<br />
<br />
{{ page.content | safe }}
</main>
{% endblock %}