commit 5d64b353bfde81ca85e0ea2702e4fba904670807 Author: Andrii Hetman <1@einsof.org> Date: Thu Nov 14 18:35:47 2024 +0200 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a48cf0d --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +public diff --git a/LICENSE-0BSD b/LICENSE-0BSD new file mode 100644 index 0000000..7ae8865 --- /dev/null +++ b/LICENSE-0BSD @@ -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. diff --git a/LICENSE-CC0 b/LICENSE-CC0 new file mode 100644 index 0000000..0e259d4 --- /dev/null +++ b/LICENSE-CC0 @@ -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. diff --git a/README.md b/README.md new file mode 100644 index 0000000..f0b3f62 --- /dev/null +++ b/README.md @@ -0,0 +1,26 @@ + +# site + +My personal website. + + + +## 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. diff --git a/config.toml b/config.toml new file mode 100644 index 0000000..da65910 --- /dev/null +++ b/config.toml @@ -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 diff --git a/content/_index.md b/content/_index.md new file mode 100644 index 0000000..edd3eac --- /dev/null +++ b/content/_index.md @@ -0,0 +1,3 @@ ++++ +title = "einsof.org" ++++ diff --git a/content/about.md b/content/about.md new file mode 100644 index 0000000..33916c9 --- /dev/null +++ b/content/about.md @@ -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). diff --git a/content/blog/_index.md b/content/blog/_index.md new file mode 100644 index 0000000..71daafe --- /dev/null +++ b/content/blog/_index.md @@ -0,0 +1,6 @@ ++++ +title = "Blog" +sort_by = "date" +template = "blog.html" +page_template = "post.html" ++++ diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..c7eadbd --- /dev/null +++ b/flake.lock @@ -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 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..e7be9fb --- /dev/null +++ b/flake.nix @@ -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; + }; + }; +} diff --git a/site.nix b/site.nix new file mode 100644 index 0000000..3fec3f5 --- /dev/null +++ b/site.nix @@ -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 + ''; +} diff --git a/static/favicon.svg b/static/favicon.svg new file mode 100644 index 0000000..297613f --- /dev/null +++ b/static/favicon.svg @@ -0,0 +1,65 @@ + + + + + + + + + + + ζ°Έ + + diff --git a/static/font/BerkeleyMono/BerkeleyMono-Bold.woff2 b/static/font/BerkeleyMono/BerkeleyMono-Bold.woff2 new file mode 100644 index 0000000..2ca7854 Binary files /dev/null and b/static/font/BerkeleyMono/BerkeleyMono-Bold.woff2 differ diff --git a/static/font/BerkeleyMono/BerkeleyMono-BoldItalic.woff2 b/static/font/BerkeleyMono/BerkeleyMono-BoldItalic.woff2 new file mode 100644 index 0000000..1ef6d20 Binary files /dev/null and b/static/font/BerkeleyMono/BerkeleyMono-BoldItalic.woff2 differ diff --git a/static/font/BerkeleyMono/BerkeleyMono-Italic.woff2 b/static/font/BerkeleyMono/BerkeleyMono-Italic.woff2 new file mode 100644 index 0000000..8ac24dd Binary files /dev/null and b/static/font/BerkeleyMono/BerkeleyMono-Italic.woff2 differ diff --git a/static/font/BerkeleyMono/BerkeleyMono-Regular.woff2 b/static/font/BerkeleyMono/BerkeleyMono-Regular.woff2 new file mode 100644 index 0000000..6b8f29d Binary files /dev/null and b/static/font/BerkeleyMono/BerkeleyMono-Regular.woff2 differ diff --git a/static/font/BerkeleyMono/LICENSE.pdf b/static/font/BerkeleyMono/LICENSE.pdf new file mode 100644 index 0000000..25e9de1 Binary files /dev/null and b/static/font/BerkeleyMono/LICENSE.pdf differ diff --git a/static/image/cirno-fumo.png b/static/image/cirno-fumo.png new file mode 100644 index 0000000..4e93aa8 Binary files /dev/null and b/static/image/cirno-fumo.png differ diff --git a/static/style.css b/static/style.css new file mode 100644 index 0000000..7a3c0f0 --- /dev/null +++ b/static/style.css @@ -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; +} diff --git a/templates/base.html b/templates/base.html new file mode 100644 index 0000000..41c13af --- /dev/null +++ b/templates/base.html @@ -0,0 +1,48 @@ + + + + + + + + + + + + {% if page.title %} + {{ page.title }} + {% else %} + {{ section.title }} + {% endif %} + + + + + + + {% block content %} + {% endblock %} + + + + diff --git a/templates/blog.html b/templates/blog.html new file mode 100644 index 0000000..629f9a0 --- /dev/null +++ b/templates/blog.html @@ -0,0 +1,19 @@ +{% extends "base.html" %} + +{% block content %} + {% if section.pages | length > 1 %} +

{{ section.title }}

+ + {% for page in section.pages %} + {{ page.title }} +
+ {{ page.date }} +
+
+ {% endfor %} + {% else %} +

+ There are no blogposts currently +

+ {% endif %} +{% endblock %} diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 0000000..310398d --- /dev/null +++ b/templates/index.html @@ -0,0 +1,23 @@ +{% extends "base.html" %} + +{% block content %} + A cirno fumo +
+ +

+ I will be shitposting here shortly... +

+ + {% if section.pages | length > 1 %} +

Blog

+ + {% set section = get_section(path="blog/_index.md") %} + {% for page in section.pages %} + {{ page.title }} +
+ {{ page.date }} +
+
+ {% endfor %} + {% endif %} +{% endblock %} diff --git a/templates/page.html b/templates/page.html new file mode 100644 index 0000000..2618d9e --- /dev/null +++ b/templates/page.html @@ -0,0 +1,10 @@ +{% extends "base.html" %} + +{% block content %} +
+

{{ page.title }}

+

{{ page.description }}

+ + {{ page.content | safe }} +
+{% endblock %} diff --git a/templates/post.html b/templates/post.html new file mode 100644 index 0000000..b108d78 --- /dev/null +++ b/templates/post.html @@ -0,0 +1,15 @@ +{% extends "base.html" %} + +{% block content %} +
+

{{ page.title }}

+

{{ page.description }}

+ + + +
+
+ + {{ page.content | safe }} +
+{% endblock %}