commit c28aa9495103c939626bca6a3818791e85f8e8d2 Author: Nick Date: Mon Mar 24 01:21:46 2025 -0500 feat: init diff --git a/.direnv/bin/nix-direnv-reload b/.direnv/bin/nix-direnv-reload new file mode 100755 index 0000000..fa8b276 --- /dev/null +++ b/.direnv/bin/nix-direnv-reload @@ -0,0 +1,19 @@ +#!/usr/bin/env bash +set -e +if [[ ! -d "/home/nick/Files/Projects/resume" ]]; then + echo "Cannot find source directory; Did you move it?" + echo "(Looking for "/home/nick/Files/Projects/resume")" + echo 'Cannot force reload with this script - use "direnv reload" manually and then try again' + exit 1 +fi + +# rebuild the cache forcefully +_nix_direnv_force_reload=1 direnv exec "/home/nick/Files/Projects/resume" true + +# Update the mtime for .envrc. +# This will cause direnv to reload again - but without re-building. +touch "/home/nick/Files/Projects/resume/.envrc" + +# Also update the timestamp of whatever profile_rc we have. +# This makes sure that we know we are up to date. +touch -r "/home/nick/Files/Projects/resume/.envrc" "/home/nick/Files/Projects/resume/.direnv"/*.rc diff --git a/.envrc b/.envrc new file mode 100644 index 0000000..3550a30 --- /dev/null +++ b/.envrc @@ -0,0 +1 @@ +use flake diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5c063be --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +.direnv +.pre-commit-config.yaml +.vscode +*.pdf diff --git a/flake.lock b/flake.lock new file mode 100755 index 0000000..160ae72 --- /dev/null +++ b/flake.lock @@ -0,0 +1,185 @@ +{ + "nodes": { + "devshell": { + "inputs": { + "nixpkgs": "nixpkgs" + }, + "locked": { + "lastModified": 1741473158, + "narHash": "sha256-kWNaq6wQUbUMlPgw8Y+9/9wP0F8SHkjy24/mN3UAppg=", + "owner": "numtide", + "repo": "devshell", + "rev": "7c9e793ebe66bcba8292989a68c0419b737a22a0", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "devshell", + "type": "github" + } + }, + "flake-compat": { + "flake": false, + "locked": { + "lastModified": 1696426674, + "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", + "owner": "edolstra", + "repo": "flake-compat", + "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "type": "github" + }, + "original": { + "owner": "edolstra", + "repo": "flake-compat", + "type": "github" + } + }, + "flake-parts": { + "inputs": { + "nixpkgs-lib": "nixpkgs-lib" + }, + "locked": { + "lastModified": 1741352980, + "narHash": "sha256-+u2UunDA4Cl5Fci3m7S643HzKmIDAe+fiXrLqYsR2fs=", + "owner": "hercules-ci", + "repo": "flake-parts", + "rev": "f4330d22f1c5d2ba72d3d22df5597d123fdb60a9", + "type": "github" + }, + "original": { + "id": "flake-parts", + "type": "indirect" + } + }, + "flake-root": { + "locked": { + "lastModified": 1723604017, + "narHash": "sha256-rBtQ8gg+Dn4Sx/s+pvjdq3CB2wQNzx9XGFq/JVGCB6k=", + "owner": "srid", + "repo": "flake-root", + "rev": "b759a56851e10cb13f6b8e5698af7b59c44be26e", + "type": "github" + }, + "original": { + "owner": "srid", + "repo": "flake-root", + "type": "github" + } + }, + "gitignore": { + "inputs": { + "nixpkgs": [ + "pre-commit-hooks-nix", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1709087332, + "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", + "owner": "hercules-ci", + "repo": "gitignore.nix", + "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", + "type": "github" + }, + "original": { + "owner": "hercules-ci", + "repo": "gitignore.nix", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1722073938, + "narHash": "sha256-OpX0StkL8vpXyWOGUD6G+MA26wAXK6SpT94kLJXo6B4=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "e36e9f57337d0ff0cf77aceb58af4c805472bfae", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs-lib": { + "locked": { + "lastModified": 1740877520, + "narHash": "sha256-oiwv/ZK/2FhGxrCkQkB83i7GnWXPPLzoqFHpDD3uYpk=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "147dee35aab2193b174e4c0868bd80ead5ce755c", + "type": "github" + }, + "original": { + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" + } + }, + "nixpkgs_2": { + "locked": { + "lastModified": 1741379970, + "narHash": "sha256-Wh7esNh7G24qYleLvgOSY/7HlDUzWaL/n4qzlBePpiw=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "36fd87baa9083f34f7f5027900b62ee6d09b1f2f", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "nixpkgs_3": { + "locked": { + "lastModified": 1730768919, + "narHash": "sha256-8AKquNnnSaJRXZxc5YmF/WfmxiHX6MMZZasRP6RRQkE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "a04d33c0c3f1a59a2c1cb0c6e34cd24500e5a1dc", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixpkgs-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "pre-commit-hooks-nix": { + "inputs": { + "flake-compat": "flake-compat", + "gitignore": "gitignore", + "nixpkgs": "nixpkgs_3" + }, + "locked": { + "lastModified": 1741379162, + "narHash": "sha256-srpAbmJapkaqGRE3ytf3bj4XshspVR5964OX5LfjDWc=", + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "rev": "b5a62751225b2f62ff3147d0a334055ebadcd5cc", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "pre-commit-hooks.nix", + "type": "github" + } + }, + "root": { + "inputs": { + "devshell": "devshell", + "flake-parts": "flake-parts", + "flake-root": "flake-root", + "nixpkgs": "nixpkgs_2", + "pre-commit-hooks-nix": "pre-commit-hooks-nix" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100755 index 0000000..5115b35 --- /dev/null +++ b/flake.nix @@ -0,0 +1,28 @@ +{ + description = "Typst Environment"; + + inputs = { + devshell.url = "github:numtide/devshell"; + flake-root.url = "github:srid/flake-root"; + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + pre-commit-hooks-nix.url = "github:cachix/pre-commit-hooks.nix"; + }; + + outputs = + inputs@{ + nixpkgs, + flake-parts, + self, + ... + }: + flake-parts.lib.mkFlake { inherit inputs; } { + imports = [ + inputs.devshell.flakeModule + inputs.flake-root.flakeModule + inputs.pre-commit-hooks-nix.flakeModule + ./parts + ]; + + systems = nixpkgs.lib.systems.flakeExposed; + }; +} diff --git a/parts/config/devshells.nix b/parts/config/devshells.nix new file mode 100755 index 0000000..adee003 --- /dev/null +++ b/parts/config/devshells.nix @@ -0,0 +1,26 @@ +{ + pkgs, + config, + ... +}: +{ + devShells = { + default = pkgs.mkShell { + packages = builtins.attrValues { + inherit (pkgs) + just + nil + typst + tinymist + typstyle + yamlfmt + nixfmt-rfc-style + ; + # inherit (pkgs.nodePackages) + # "@commitlint/config-conventional" + # ; + }; + }; + shellHook = "${config.pre-commit.installationScript}"; + }; +} diff --git a/parts/config/pre-commit.nix b/parts/config/pre-commit.nix new file mode 100755 index 0000000..a41ffa6 --- /dev/null +++ b/parts/config/pre-commit.nix @@ -0,0 +1,7 @@ +{ + pre-commit.settings.hooks = { + nixfmt.enable = true; + commitizen.enable = true; + statix.enable = true; + }; +} diff --git a/parts/default.nix b/parts/default.nix new file mode 100755 index 0000000..93ccb77 --- /dev/null +++ b/parts/default.nix @@ -0,0 +1,24 @@ +{ + perSystem = + { + pkgs, + lib, + config, + self', + ... + }: + let + configPath = ./config; + + devshellImports = + let + files = builtins.attrNames (builtins.readDir configPath); + in + map (name: configPath + "/${name}") ( + builtins.filter (name: builtins.match ".*\\.nix$" name != null) files + ); + in + { + imports = devshellImports; + }; +} diff --git a/src/resume.pdf b/src/resume.pdf new file mode 100644 index 0000000..25ae52f Binary files /dev/null and b/src/resume.pdf differ diff --git a/src/resume.typ b/src/resume.typ new file mode 100644 index 0000000..0228adc --- /dev/null +++ b/src/resume.typ @@ -0,0 +1,55 @@ +#import "template.typ": * + +#set page( + paper: "a6", + margin: (x: 1.8cm, y: 1.5cm), +) +#set text( + font: "New Computer Modern", + size: 5pt +) +#set par( + justify: true, + leading: 0.52em, +) + +#chunk(( + text(size: 10pt)[Nick Hiebert], + divider, + job( + company: "upRootNutrition", + title: "Content Creator, Programmer", + dates: "Nov 2024 - Present", + location: "Winnipeg, MB", + details: ( + "Develop evidence-based content related to nutrition science.", + "Conduct in-depth investigations into nutrition science for clients.", + "Mentor clients on research methodologies and interpretation." + ) + ), + job( + company: "The Nutrivore", + title: "Content Creator", + dates: "Jan 2018 - Nov 2024", + location: "Winnipeg, MB", + details: ( + "Develop evidence-based content related to nutrition science.", + "Conduct in-depth investigations into nutrition science for clients.", + "Mentor clients on research methodologies and interpretation." + ) + ) + ) +) + +#list(( + edu( + institute: "University of Manitoba", + cert: "Human Nutritional Science", + year: "2011" + ), + edu( + institute: "Studio 11 Inc", + cert: "Audio Production", + year: "2008" + ) +)) diff --git a/src/template.typ b/src/template.typ new file mode 100644 index 0000000..abb8888 --- /dev/null +++ b/src/template.typ @@ -0,0 +1,54 @@ +#let chunk(content) = { + stack( + spacing: 1.5em, + ..content + ) +} + +#let list(content) = { + stack( + spacing: 0.75em, + ..content + ) +} + +#let divider = { + pad(y: 0.5em)[ + #align(center, line(length: 100%, stroke: 0.25pt)) + ] +} + +#let job( + company: "", + title: "", + dates: "", + location: "", + details: () +) = { + block(spacing: 0.75em)[ + #stack( + spacing: 0.75em, + [ + #text(weight: "bold")[#company, #location] #h(0.5em) + #text(style: "italic")[— #title] + ], + [#dates], + [ + #pad(left: 1.5em)[ + #list(details.map(detail => [• #detail])) + ] + ] + ) + ] +} + +#let edu( + institute: "", + cert: "", + year: "" +) = { + block(spacing: 0.75em)[ + #text(weight: "bold")[#institute] #h(0.5em) + #text(style: "italic")[— #cert, #year] + ] +}