A .gitignore => .gitignore +1 -0
A config.toml => config.toml +16 -0
@@ 0,0 1,16 @@
+# The URL the site will be built for
+base_url = "https://liljamo.dev"
+
+# Whether to automatically compile all Sass files in the sass directory
+compile_sass = false
+
+# Whether to build a search index to be used later on by a JavaScript library
+build_search_index = false
+
+[markdown]
+# Whether to do syntax highlighting
+# Theme can be customised by setting the `highlight_theme` variable to a theme supported by Zola
+highlight_code = true
+
+[extra]
+# Put all your custom variables here
A flake.lock => flake.lock +27 -0
@@ 0,0 1,27 @@
+{
+ "nodes": {
+ "nixpkgs": {
+ "locked": {
+ "lastModified": 1700230496,
+ "narHash": "sha256-pl8PLUQLigZgFZrafIXs2djne5kboimK6MYsZN8Ywtg=",
+ "owner": "nixos",
+ "repo": "nixpkgs",
+ "rev": "a71323f68d4377d12c04a5410e214495ec598d4c",
+ "type": "github"
+ },
+ "original": {
+ "owner": "nixos",
+ "ref": "nixpkgs-unstable",
+ "repo": "nixpkgs",
+ "type": "github"
+ }
+ },
+ "root": {
+ "inputs": {
+ "nixpkgs": "nixpkgs"
+ }
+ }
+ },
+ "root": "root",
+ "version": 7
+}
A flake.nix => flake.nix +21 -0
@@ 0,0 1,21 @@
+{
+ inputs.nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
+
+ outputs = { self, nixpkgs }: {
+ devShells = nixpkgs.lib.genAttrs [ "x86_64-linux" ] (system:
+ let
+ pkgs = nixpkgs.legacyPackages.${system}.pkgs;
+ # https://github.com/NixOS/nixpkgs/blob/340a3345a23ad684a8c328eecc20bb0437e6954d/pkgs/development/haskell-modules/configuration-nix.nix#L1311
+ tailwind = pkgs.nodePackages.tailwindcss.overrideAttrs
+ (o: { plugins = [ pkgs.nodePackages."@tailwindcss/typography" ]; });
+ in {
+ default = pkgs.mkShell {
+ buildInputs = [
+ tailwind
+ pkgs.zola
+ pkgs.nodePackages."@tailwindcss/language-server"
+ ];
+ };
+ });
+ };
+}
A input.css => input.css +163 -0
@@ 0,0 1,163 @@
+@tailwind base;
+@tailwind components;
+@tailwind utilities;
+
+@layer base {
+ @font-face {
+ font-family: 'Inter';
+ font-style: normal;
+ font-weight: 100;
+ font-display: swap;
+ src: url("../font/inter/Inter-Thin.woff2") format("woff2");
+ }
+ @font-face {
+ font-family: 'Inter';
+ font-style: italic;
+ font-weight: 100;
+ font-display: swap;
+ src: url("../font/inter/Inter-ThinItalic.woff2") format("woff2");
+ }
+
+ @font-face {
+ font-family: 'Inter';
+ font-style: normal;
+ font-weight: 200;
+ font-display: swap;
+ src: url("../font/inter/Inter-ExtraLight.woff2") format("woff2");
+ }
+ @font-face {
+ font-family: 'Inter';
+ font-style: italic;
+ font-weight: 200;
+ font-display: swap;
+ src: url("../font/inter/Inter-ExtraLightItalic.woff2") format("woff2");
+ }
+
+ @font-face {
+ font-family: 'Inter';
+ font-style: normal;
+ font-weight: 300;
+ font-display: swap;
+ src: url("../font/inter/Inter-Light.woff2") format("woff2");
+ }
+ @font-face {
+ font-family: 'Inter';
+ font-style: italic;
+ font-weight: 300;
+ font-display: swap;
+ src: url("../font/inter/Inter-LightItalic.woff2") format("woff2");
+ }
+
+ @font-face {
+ font-family: 'Inter';
+ font-style: normal;
+ font-weight: 400;
+ font-display: swap;
+ src: url("../font/inter/Inter-Regular.woff2") format("woff2");
+ }
+ @font-face {
+ font-family: 'Inter';
+ font-style: italic;
+ font-weight: 400;
+ font-display: swap;
+ src: url("../font/inter/Inter-Italic.woff2") format("woff2");
+ }
+
+ @font-face {
+ font-family: 'Inter';
+ font-style: normal;
+ font-weight: 500;
+ font-display: swap;
+ src: url("../font/inter/Inter-Medium.woff2") format("woff2");
+ }
+ @font-face {
+ font-family: 'Inter';
+ font-style: italic;
+ font-weight: 500;
+ font-display: swap;
+ src: url("../font/inter/Inter-MediumItalic.woff2") format("woff2");
+ }
+
+ @font-face {
+ font-family: 'Inter';
+ font-style: normal;
+ font-weight: 600;
+ font-display: swap;
+ src: url("../font/inter/Inter-SemiBold.woff2") format("woff2");
+ }
+ @font-face {
+ font-family: 'Inter';
+ font-style: italic;
+ font-weight: 600;
+ font-display: swap;
+ src: url("../font/inter/Inter-SemiBoldItalic.woff2") format("woff2");
+ }
+
+ @font-face {
+ font-family: 'Inter';
+ font-style: normal;
+ font-weight: 700;
+ font-display: swap;
+ src: url("../font/inter/Inter-Bold.woff2") format("woff2");
+ }
+ @font-face {
+ font-family: 'Inter';
+ font-style: italic;
+ font-weight: 700;
+ font-display: swap;
+ src: url("../font/inter/Inter-BoldItalic.woff2") format("woff2");
+ }
+
+ @font-face {
+ font-family: 'Inter';
+ font-style: normal;
+ font-weight: 800;
+ font-display: swap;
+ src: url("../font/inter/Inter-ExtraBold.woff2") format("woff2");
+ }
+ @font-face {
+ font-family: 'Inter';
+ font-style: italic;
+ font-weight: 800;
+ font-display: swap;
+ src: url("../font/inter/Inter-ExtraBoldItalic.woff2") format("woff2");
+ }
+
+ @font-face {
+ font-family: 'Inter';
+ font-style: normal;
+ font-weight: 900;
+ font-display: swap;
+ src: url("../font/inter/Inter-Black.woff2") format("woff2");
+ }
+ @font-face {
+ font-family: 'Inter';
+ font-style: italic;
+ font-weight: 900;
+ font-display: swap;
+ src: url("../font/inter/Inter-BlackItalic.woff2") format("woff2");
+ }
+
+
+ @font-face {
+ font-family: FiraMono;
+ font-weight: 400;
+ font-style: normal;
+ font-display: swap;
+ src: url("../font/firamono/FiraMono-Regular.woff2");
+ }
+ @font-face {
+ font-family: FiraMono;
+ font-weight: 500;
+ font-style: normal;
+ font-display: swap;
+ src: url("../font/firamono/FiraMono-Medium.woff2");
+ }
+ @font-face {
+ font-family: FiraMono;
+ font-weight: 700;
+ font-style: normal;
+ font-display: swap;
+ src: url("../font/firamono/FiraMono-Bold.woff2");
+ }
+}
A scripts/tailwindcss.sh => scripts/tailwindcss.sh +2 -0
@@ 0,0 1,2 @@
+#!/usr/bin/env sh
+tailwindcss -i ./input.css -o ./static/css/style.css --minify
A scripts/zola.sh => scripts/zola.sh +2 -0
@@ 0,0 1,2 @@
+#!/usr/bin/env sh
+zola serve
A static/css/style.css => static/css/style.css +1 -0
@@ 0,0 1,1 @@
+/*! tailwindcss v3.3.5 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter;font-feature-settings:normal;font-variation-settings:normal}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:FiraMono;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:initial}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button;background-color:initial;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:initial}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}@font-face{font-family:Inter;font-style:normal;font-weight:100;font-display:swap;src:url(../font/inter/Inter-Thin.woff2) format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:100;font-display:swap;src:url(../font/inter/Inter-ThinItalic.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:200;font-display:swap;src:url(../font/inter/Inter-ExtraLight.woff2) format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:200;font-display:swap;src:url(../font/inter/Inter-ExtraLightItalic.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:300;font-display:swap;src:url(../font/inter/Inter-Light.woff2) format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:300;font-display:swap;src:url(../font/inter/Inter-LightItalic.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:400;font-display:swap;src:url(../font/inter/Inter-Regular.woff2) format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:400;font-display:swap;src:url(../font/inter/Inter-Italic.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:500;font-display:swap;src:url(../font/inter/Inter-Medium.woff2) format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:500;font-display:swap;src:url(../font/inter/Inter-MediumItalic.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:600;font-display:swap;src:url(../font/inter/Inter-SemiBold.woff2) format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:600;font-display:swap;src:url(../font/inter/Inter-SemiBoldItalic.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:700;font-display:swap;src:url(../font/inter/Inter-Bold.woff2) format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:700;font-display:swap;src:url(../font/inter/Inter-BoldItalic.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:800;font-display:swap;src:url(../font/inter/Inter-ExtraBold.woff2) format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:800;font-display:swap;src:url(../font/inter/Inter-ExtraBoldItalic.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:900;font-display:swap;src:url(../font/inter/Inter-Black.woff2) format("woff2")}@font-face{font-family:Inter;font-style:italic;font-weight:900;font-display:swap;src:url(../font/inter/Inter-BlackItalic.woff2) format("woff2")}@font-face{font-family:FiraMono;font-weight:400;font-style:normal;font-display:swap;src:url(../font/firamono/FiraMono-Regular.woff2)}@font-face{font-family:FiraMono;font-weight:500;font-style:normal;font-display:swap;src:url(../font/firamono/FiraMono-Medium.woff2)}@font-face{font-family:FiraMono;font-weight:700;font-style:normal;font-display:swap;src:url(../font/firamono/FiraMono-Bold.woff2)}*,::backdrop,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#3b82f680;--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.block{display:block}.flex{display:flex}.h-screen{height:100vh}.justify-center{justify-content:center}.p-2{padding:.5rem}.text-slate-900{--tw-text-opacity:1;color:rgb(15 23 42/var(--tw-text-opacity))}<
\ No newline at end of file
A static/font/firamono/FiraMono-Bold.woff2 => static/font/firamono/FiraMono-Bold.woff2 +0 -0
A static/font/firamono/FiraMono-Medium.woff2 => static/font/firamono/FiraMono-Medium.woff2 +0 -0
A static/font/firamono/FiraMono-Regular.woff2 => static/font/firamono/FiraMono-Regular.woff2 +0 -0
A static/font/inter/Inter-Black.woff2 => static/font/inter/Inter-Black.woff2 +0 -0
A static/font/inter/Inter-BlackItalic.woff2 => static/font/inter/Inter-BlackItalic.woff2 +0 -0
A static/font/inter/Inter-Bold.woff2 => static/font/inter/Inter-Bold.woff2 +0 -0
A static/font/inter/Inter-BoldItalic.woff2 => static/font/inter/Inter-BoldItalic.woff2 +0 -0
A => +0 -0
A => +0 -0
A => +0 -0
A => +0 -0
A static/font/inter/Inter-Italic.woff2 => static/font/inter/Inter-Italic.woff2 +0 -0
A static/font/inter/Inter-Light.woff2 => static/font/inter/Inter-Light.woff2 +0 -0
A static/font/inter/Inter-LightItalic.woff2 => static/font/inter/Inter-LightItalic.woff2 +0 -0
A static/font/inter/Inter-Medium.woff2 => static/font/inter/Inter-Medium.woff2 +0 -0
A static/font/inter/Inter-MediumItalic.woff2 => static/font/inter/Inter-MediumItalic.woff2 +0 -0
A static/font/inter/Inter-Regular.woff2 => static/font/inter/Inter-Regular.woff2 +0 -0
A static/font/inter/Inter-SemiBold.woff2 => static/font/inter/Inter-SemiBold.woff2 +0 -0
A static/font/inter/Inter-SemiBoldItalic.woff2 => static/font/inter/Inter-SemiBoldItalic.woff2 +0 -0
A static/font/inter/Inter-Thin.woff2 => static/font/inter/Inter-Thin.woff2 +0 -0
A static/font/inter/Inter-ThinItalic.woff2 => static/font/inter/Inter-ThinItalic.woff2 +0 -0
A tailwind.config.js => tailwind.config.js +14 -0
@@ 0,0 1,14 @@
+/** @type {import('tailwindcss').Config} */
+module.exports = {
+ content: ["./templates/**/*.html", "./content/**/*.md"],
+ theme: {
+ fontFamily: {
+ "sans": ["Inter"],
+ "serif": ["Inter"],
+ "mono": ["FiraMono"],
+ },
+ },
+ plugins: [
+ require("@tailwindcss/typography")
+ ],
+}
A templates/index.html => templates/index.html +5 -0
@@ 0,0 1,5 @@
+{% extends "layouts/base.html" %}
+
+{% block content %}
+<p class="text-slate-900">balls</p>
+{% endblock content %}
A templates/layouts/base.html => templates/layouts/base.html +16 -0
@@ 0,0 1,16 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+
+ <link rel="stylesheet" href="/css/style.css"/>
+ </head>
+ <body>
+ <main class="flex justify-center h-screen">
+ <div class="p-2">
+ {% block content %} {% endblock %}
+ </div>
+ </main>
+ </body>
+</html>