feat: init

This commit is contained in:
Nick 2025-03-24 01:21:46 -05:00
commit c28aa94951
11 changed files with 403 additions and 0 deletions

19
.direnv/bin/nix-direnv-reload Executable file
View file

@ -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

1
.envrc Normal file
View file

@ -0,0 +1 @@
use flake

4
.gitignore vendored Normal file
View file

@ -0,0 +1,4 @@
.direnv
.pre-commit-config.yaml
.vscode
*.pdf

185
flake.lock generated Executable file
View file

@ -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
}

28
flake.nix Executable file
View file

@ -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;
};
}

26
parts/config/devshells.nix Executable file
View file

@ -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}";
};
}

7
parts/config/pre-commit.nix Executable file
View file

@ -0,0 +1,7 @@
{
pre-commit.settings.hooks = {
nixfmt.enable = true;
commitizen.enable = true;
statix.enable = true;
};
}

24
parts/default.nix Executable file
View file

@ -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;
};
}

BIN
src/resume.pdf Normal file

Binary file not shown.

55
src/resume.typ Normal file
View file

@ -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"
)
))

54
src/template.typ Normal file
View file

@ -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]
]
}