~ajhalili2006's personal website, built with Zensical (successor of Material for Mkdocs) [old repo name got bugged while attempting to do manual knot migration via repo deletion] andreijiroh.dev
zensical mkdocs-material website

Compare changes

Choose any two refs to compare.

+4 -4
.tangled/workflows/site-deploy.yml
···
# to Cloudflare Pages/Workers Static Sites. Secret management is handled via
# Doppler (setting the DOPPLER_TOKEN secret on repo settings -> spindle is required).
when:
-
- event: ["push", "manual"]
-
branch: ["main"]
engine: nixery
···
- pngquant
# needed to generate LD_LIBRARY_PATH for cairo and friends
- findutils
environment:
CI: "true" # https://tangled.org/tangled.org/core/issues/310 (resolved via merging https://tangled.org/tangled.org/core/pulls/843)
···
CI_PIPELINE_SOURCE: "push"
# technically we have --ingore-pipfile in the install command below, but just to be safe
PIPENV_IGNORE_PIPFILE: "true"
-
#
steps:
- name: Install deps
···
- name: Deploy to Cloudflare Workers (as Static Site)
command: |
export LD_LIBRARY_PATH=$(find /nix/store -maxdepth 3 -type d -name lib | grep -E 'cairo|pango|gdk-pixbuf|librsvg|fontconfig|freetype|zlib' | tr '\n' ':')
-
doppler run -- npm run deploy:cf
···
# to Cloudflare Pages/Workers Static Sites. Secret management is handled via
# Doppler (setting the DOPPLER_TOKEN secret on repo settings -> spindle is required).
when:
+
- event: ["push", "manual"]
+
branch: ["main"]
engine: nixery
···
- pngquant
# needed to generate LD_LIBRARY_PATH for cairo and friends
- findutils
+
- coreutils
environment:
CI: "true" # https://tangled.org/tangled.org/core/issues/310 (resolved via merging https://tangled.org/tangled.org/core/pulls/843)
···
CI_PIPELINE_SOURCE: "push"
# technically we have --ingore-pipfile in the install command below, but just to be safe
PIPENV_IGNORE_PIPFILE: "true"
steps:
- name: Install deps
···
- name: Deploy to Cloudflare Workers (as Static Site)
command: |
export LD_LIBRARY_PATH=$(find /nix/store -maxdepth 3 -type d -name lib | grep -E 'cairo|pango|gdk-pixbuf|librsvg|fontconfig|freetype|zlib' | tr '\n' ':')
+
doppler run -- npm run deploy:cf
+2 -2
.tool-versions
···
-
python 3.12.3
-
nodejs 22.8.0
···
+
python 3.14.0
+
nodejs 22.21.1
+8 -1
Pipfile
···
[dev-packages]
[requires]
-
python_version = "3.13"
[scripts]
dev = "mkdocs serve --watch overrides --watch-theme"
build = "mkdocs build -d public --verbose"
build-staging = "pipenv run build -f mkdocs.readthedocs.yml --verbose"
···
[dev-packages]
[requires]
+
python_version = "3.14"
[scripts]
dev = "mkdocs serve --watch overrides --watch-theme"
build = "mkdocs build -d public --verbose"
build-staging = "pipenv run build -f mkdocs.readthedocs.yml --verbose"
+
# next under zensical
+
next-dev = "zensical serve"
+
next-build = "zensical build"
+
# legacy builds under mkdocs
+
legacy-build = "mkdocs build -d public --verbose"
+
legacy-build-staging = "pipenv run build -f mkdocs.readthedocs.yml --verbose"
+
legacy-dev = "mkdocs serve --watch overrides --watch-theme"
+8 -8
Pipfile.lock
···
{
"_meta": {
"hash": {
-
"sha256": "21bc35e4a60508ada7a4d1d46af7744213b9370926f34e073458dd8fb13ee997"
},
"pipfile-spec": 6,
"requires": {
-
"python_version": "3.13"
},
"sources": [
{
···
},
"pymdown-extensions": {
"hashes": [
-
"sha256:26bb3d7688e651606260c90fb46409fbda70bf9fdc3623c7868643a1aeee4713",
-
"sha256:bffae79a2e8b9e44aef0d813583a8fea63457b7a23643a43988055b7b79b4992"
],
"markers": "python_version >= '3.9'",
-
"version": "==10.17.2"
},
"python-dateutil": {
"hashes": [
···
},
"urllib3": {
"hashes": [
-
"sha256:c90f7a39f716c572c4e3e58509581ebd83f9b59cced005b7db7ad2d22b0db99f",
-
"sha256:cb9bcef5a4b345d5da5d145dc3e30834f58e8018828cbc724d30b4cb7d4d49f1"
],
"markers": "python_version >= '3.9'",
-
"version": "==2.6.0"
},
"watchdog": {
"hashes": [
···
{
"_meta": {
"hash": {
+
"sha256": "a54f862fd105133810703030592c31182334be6733f29a2b959e3d75ef3993dc"
},
"pipfile-spec": 6,
"requires": {
+
"python_version": "3.14"
},
"sources": [
{
···
},
"pymdown-extensions": {
"hashes": [
+
"sha256:090bca72be43f7d3186374e23c782899dbef9dc153ef24c59dcd3c346f9ffcae",
+
"sha256:20252abe6367354b24191431617a072ee6be9f68c5afcc74ea5573508a61f9e5"
],
"markers": "python_version >= '3.9'",
+
"version": "==10.18"
},
"python-dateutil": {
"hashes": [
···
},
"urllib3": {
"hashes": [
+
"sha256:5379eb6e1aba4088bae84f8242960017ec8d8e3decf30480b3a1abdaa9671a3f",
+
"sha256:e67d06fe947c36a7ca39f4994b08d73922d40e6cca949907be05efa6fd75110b"
],
"markers": "python_version >= '3.9'",
+
"version": "==2.6.1"
},
"watchdog": {
"hashes": [
-1
build.sh
···
-
bin/build.sh
···
+52 -17
devenv.lock
···
"devenv": {
"locked": {
"dir": "src/modules",
-
"lastModified": 1759936850,
"owner": "cachix",
"repo": "devenv",
-
"rev": "ab228ad83419185654869e2e7ef3de84935be669",
"type": "github"
},
"original": {
···
"flake-compat": {
"flake": false,
"locked": {
-
"lastModified": 1747046372,
"owner": "edolstra",
"repo": "flake-compat",
-
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github"
},
"original": {
···
"flake-compat_2": {
"flake": false,
"locked": {
-
"lastModified": 1747046372,
"owner": "edolstra",
"repo": "flake-compat",
-
"rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885",
"type": "github"
},
"original": {
···
]
},
"locked": {
-
"lastModified": 1759523803,
"owner": "cachix",
"repo": "git-hooks.nix",
-
"rev": "cfc9f7bb163ad8542029d303e599c0f7eee09835",
"type": "github"
},
"original": {
···
]
},
"locked": {
-
"lastModified": 1709087332,
"owner": "hercules-ci",
"repo": "gitignore.nix",
-
"rev": "637db329424fd7e46cf4185293b9cc8c88c95394",
"type": "github"
},
"original": {
···
"type": "github"
}
},
"nixpkgs": {
"locked": {
-
"lastModified": 1759632233,
-
"narHash": "sha256-krgZxGAIIIKFJS+UB0l8do3sYUDWJc75M72tepmVMzE=",
-
"rev": "d7f52a7a640bc54c7bb414cca603835bf8dd4b10",
-
"revCount": 871443,
"type": "tarball",
-
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/nixpkgs-weekly/0.1.871443%2Brev-d7f52a7a640bc54c7bb414cca603835bf8dd4b10/0199bd2b-6c92-7223-94cf-69e43f5561ee/source.tar.gz"
},
"original": {
"type": "tarball",
···
]
},
"locked": {
-
"lastModified": 1759888105,
"owner": "cachix",
"repo": "nixpkgs-python",
-
"rev": "4c568014f7408f7546461b25bb8a3511eab02bec",
"type": "github"
},
"original": {
···
"inputs": {
"devenv": "devenv",
"git-hooks": "git-hooks",
"nixpkgs": "nixpkgs",
"nixpkgs-python": "nixpkgs-python",
"pre-commit-hooks": [
···
"devenv": {
"locked": {
"dir": "src/modules",
+
"lastModified": 1764927628,
"owner": "cachix",
"repo": "devenv",
+
"rev": "247d7027f91368054fb0eefbd755a73d42b66fee",
"type": "github"
},
"original": {
···
"flake-compat": {
"flake": false,
"locked": {
+
"lastModified": 1765121682,
"owner": "edolstra",
"repo": "flake-compat",
+
"rev": "65f23138d8d09a92e30f1e5c87611b23ef451bf3",
"type": "github"
},
"original": {
···
"flake-compat_2": {
"flake": false,
"locked": {
+
"lastModified": 1765121682,
"owner": "edolstra",
"repo": "flake-compat",
+
"rev": "65f23138d8d09a92e30f1e5c87611b23ef451bf3",
"type": "github"
},
"original": {
···
]
},
"locked": {
+
"lastModified": 1765016596,
"owner": "cachix",
"repo": "git-hooks.nix",
+
"rev": "548fc44fca28a5e81c5d6b846e555e6b9c2a5a3c",
"type": "github"
},
"original": {
···
]
},
"locked": {
+
"lastModified": 1762808025,
"owner": "hercules-ci",
"repo": "gitignore.nix",
+
"rev": "cb5e3fdca1de58ccbc3ef53de65bd372b48f567c",
"type": "github"
},
"original": {
···
"type": "github"
}
},
+
"mk-shell-bin": {
+
"locked": {
+
"lastModified": 1677004959,
+
"owner": "rrbutani",
+
"repo": "nix-mk-shell-bin",
+
"rev": "ff5d8bd4d68a347be5042e2f16caee391cd75887",
+
"type": "github"
+
},
+
"original": {
+
"owner": "rrbutani",
+
"repo": "nix-mk-shell-bin",
+
"type": "github"
+
}
+
},
+
"nix2container": {
+
"inputs": {
+
"nixpkgs": [
+
"nixpkgs"
+
]
+
},
+
"locked": {
+
"lastModified": 1761716996,
+
"owner": "nlewo",
+
"repo": "nix2container",
+
"rev": "e5496ab66e9de9e3f67dc06f692dfbc471b6316e",
+
"type": "github"
+
},
+
"original": {
+
"owner": "nlewo",
+
"repo": "nix2container",
+
"type": "github"
+
}
+
},
"nixpkgs": {
"locked": {
+
"lastModified": 1764611609,
+
"narHash": "sha256-yU9BNcP0oadUKupw0UKmO9BKDOVIg9NStdJosEbXf8U=",
+
"rev": "8c29968b3a942f2903f90797f9623737c215737c",
+
"revCount": 905078,
"type": "tarball",
+
"url": "https://api.flakehub.com/f/pinned/DeterminateSystems/nixpkgs-weekly/0.1.905078%2Brev-8c29968b3a942f2903f90797f9623737c215737c/019add91-3add-7a0d-8a25-9569cbe01efe/source.tar.gz"
},
"original": {
"type": "tarball",
···
]
},
"locked": {
+
"lastModified": 1765052656,
"owner": "cachix",
"repo": "nixpkgs-python",
+
"rev": "04b27dbad2e004cb237db202f21154eea3c4f89f",
"type": "github"
},
"original": {
···
"inputs": {
"devenv": "devenv",
"git-hooks": "git-hooks",
+
"mk-shell-bin": "mk-shell-bin",
+
"nix2container": "nix2container",
"nixpkgs": "nixpkgs",
"nixpkgs-python": "nixpkgs-python",
"pre-commit-hooks": [
+7 -5
devenv.nix
···
{ pkgs, lib, ... }: {
packages = with pkgs; [
gitFull
pipenv
···
};
python = {
enable = true;
-
version = "3.13.3";
};
};
-
enterShell = ''
-
pipenv install
-
npm install
-
'';
tasks = {
"site:build".exec = "pipenv run build";
···
{ pkgs, lib, ... }: {
+
name = "site";
+
packages = with pkgs; [
gitFull
pipenv
···
};
python = {
enable = true;
+
version = "3.14.0";
};
};
+
#enterShell = ''
+
# pipenv install
+
# npm install
+
#'';
tasks = {
"site:build".exec = "pipenv run build";
+9 -4
devenv.yaml
···
inputs:
nixpkgs-python:
url: github:cachix/nixpkgs-python
inputs:
nixpkgs:
follows: nixpkgs
-
nixpkgs:
-
url: https://flakehub.com/f/DeterminateSystems/nixpkgs-weekly/*.tar.gz
-
-
# If you're using non-OSS software, you can set allowUnfree to true.
allowUnfree: true
···
inputs:
+
mk-shell-bin:
+
url: github:rrbutani/nix-mk-shell-bin
+
nix2container:
+
url: github:nlewo/nix2container
+
inputs:
+
nixpkgs:
+
follows: nixpkgs
+
nixpkgs:
+
url: https://flakehub.com/f/DeterminateSystems/nixpkgs-weekly/*.tar.gz
nixpkgs-python:
url: github:cachix/nixpkgs-python
inputs:
nixpkgs:
follows: nixpkgs
allowUnfree: true
+1 -1
markdown/_headers
···
# enable CORS on well-known routes
-
/.well-known/*:
Access-Control-Allow-Origin: *
X-Robots-Tag: nosnippet
···
# enable CORS on well-known routes
+
/.well-known/*
Access-Control-Allow-Origin: *
X-Robots-Tag: nosnippet
+1
markdown/_redirects
···
/security.txt /.well-known/security.txt
/ads.txt /.well-known/ads.txt
/keybase.txt /.well-known/keybase.txt
# anything else
/socials /links
···
/security.txt /.well-known/security.txt
/ads.txt /.well-known/ads.txt
/keybase.txt /.well-known/keybase.txt
+
/keys/ssh-trustfile.txt /keys/ssh/trustfile.txt
# anything else
/socials /links
+6 -4
markdown/keys/index.md
···
You can also get all the keys in one file (and its signers file) at the following URLs:
-
* Website as its deployed via CI: <https://andreijiroh.dev/keys/ssh-trustfile.txt>
-
* As pushed via Git: <https://mau.dev/andreijiroh-dev/website/-/blob/main/markdown/keys/ssh-trustfile.txt>
-
These SSH keys are used for signing Git commits and tags occassionally, as well for signing checksums file and identity verification on
-
account recovery for sr.ht and Miraheze.
···
You can also get all the keys in one file (and its signers file) at the following URLs:
+
* Website as its deployed via CI: <https://andreijiroh.dev/keys/ssh/trustfile.txt>
+
* As pushed via Git: <https://gitlab.com/andreijiroh-dev/website/-/blob/main/markdown/keys/ssh/trustfile.txt>
+
These SSH keys are used for signing Git commits and tags occasionally, as well
+
for signing checksums file on release tarballs, encrypting and decrypting
+
secrets via `agenix` and friends and identity verification on account recovery
+
for sr.ht and Miraheze.
+7
markdown/keys/ssh.pub
···
···
+
# This is @ajhalili2006's SSH keys in one place. It may
+
# be differs from those at his authorized_keys in the dotfiles
+
# repo.
+
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIEXuD3hJwInlcHs3wkXWAWNo8es3bPAd2e8ipjyqgGp2 SSH Key - main personal key, circa 2022
+
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCzMlrUe7qMA1P0lP56lq2dKTrwFU6CrVltQ9um+PhOMLkoi31kAlujHtWF6mqGRLXcK0Ao/0Wqug++r82Zu0u7dpAv8LCExtaRRMzagwPkEe4OOqUBOpS6mggfsik8mNA+1UtpkXJ+ZiB4cXtNKEZC0jtxWOTXSV67qgkSxuO+YBWB+7pnESkB0KorqwOoWGGUVfYQtbKUAt6VqM4s6dn7saXqwmN0tCPO6a+4L4mazkYjFD11HhktYsjP9dvnxYSOtMrSFb9JOXRST2LdiIJgwg+HTqBSWGO7aBRHMJaTF3ajlbMtKDQI/EcNQLyGgX6yFdjjzz9DRY+2oU0vPTytdqM2BKsfLlR0GVg7BVL7TZPaLJ1lgpCl4Z1oClW9FOzhnYJVT0W+IKPsnYsFPfv/BVgjWF7YtLdc5zqFJ31PULtikCyd0I6Kt95YD0HdrlR2faWcBHI8KKEAwCCanodGnK/xTOxisTX2dXOxx3mvR/L3Wil2ca5hnD+vt500/o8= SSH Key - ajhalili2006@launchpad.net
+
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDEYDna7HlVN6FL+Mxaof+WH5EoVmaUrM7GFAdQSveTJ RecapTIme.dev Crew SSH Key - @ajhalili2006
+
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIFI1Mj7gTG1IwnxPyr2AsXDq2kBq98hnijhgkGklkhWH
+1 -1
mkdocs.yml
···
- "Anything else":
- contact/else.md
- "Show all contact details": contact/details.md
-
- "PGP and SSH keys": keys.md
- Legal:
- Security policy: security.md
- Code of Conduct: https://policies.recaptime.dev/code-of-conduct
···
- "Anything else":
- contact/else.md
- "Show all contact details": contact/details.md
+
- "PGP and SSH keys": keys/index.md
- Legal:
- Security policy: security.md
- Code of Conduct: https://policies.recaptime.dev/code-of-conduct