DEVELOPMENT ENVIRONMENT

~liljamo/liljamo-dev-zola

1c1abcaf8cab233a5b97102273b9b5bfb4243137 — Jonni Liljamo 9 months ago 3616d50
feat: init zola site
A .gitignore => .gitignore +1 -0
@@ 0,0 1,1 @@
public/

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 static/font/inter/Inter-ExtraBold.woff2 => static/font/inter/Inter-ExtraBold.woff2 +0 -0
A static/font/inter/Inter-ExtraBoldItalic.woff2 => static/font/inter/Inter-ExtraBoldItalic.woff2 +0 -0
A static/font/inter/Inter-ExtraLight.woff2 => static/font/inter/Inter-ExtraLight.woff2 +0 -0
A static/font/inter/Inter-ExtraLightItalic.woff2 => static/font/inter/Inter-ExtraLightItalic.woff2 +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>