Compare commits

...

55 Commits

Author SHA1 Message Date
~ajhalili2006 8637138aeb chore(vscode); update workspace settings
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@gmail.com>
2023-11-09 11:44:19 +00:00
~ajhalili2006 e7580aa07d fix(devenv): quick fix an issue again
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@gmail.com>
2023-11-09 11:43:57 +00:00
~ajhalili2006 8c14584ea1 feat(overrides): add Hypothesis annonations support for web
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@gmail.com>
2023-11-09 11:20:42 +00:00
~ajhalili2006 06ef8e424c docs(faq): update FAQ content
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@gmail.com>
2023-11-09 11:20:02 +00:00
~ajhalili2006 8ec26efeb0 fix(devenv): fix image build
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@gmail.com>
2023-11-09 07:35:00 +00:00
~ajhalili2006 dfb81d4f8d chore(global): synchorize against github mirror
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@gmail.com>
2023-11-09 07:30:27 +00:00
~ajhalili2006 46ecfa7e20 build(devenv): update linuxbrew on build
Also in this commit, I also update pyenv to the edge.

Signed-off-by: Andrei Jiroh Halili <ajhalili2006@gmail.com>
2023-11-09 07:27:56 +00:00
~ajhalili2006 7854a3bfcf ci(github-actions): update Docker build workflow
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@gmail.com>
2023-11-09 07:22:49 +00:00
Andrei Jiroh Eugenio Halili ecae607db4 chore(gitlab-ci): nuke repo mirroring script
See 1e45e7f48d for context
2023-10-28 16:33:43 +00:00
~ajhalili2006 c036dfb082 chore(ci): more CI-related changes
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@gmail.com>
2023-10-27 18:23:13 +00:00
~ajhalili2006 fa076e53d7 ci(gitlab-cicd): fix permission errors on Secure Files-manged SSH key
Also updated GitHub repo mirror's SSH url per recent change.

Signed-off-by: Andrei Jiroh Halili <ajhalili2006@gmail.com>
2023-10-27 18:14:58 +00:00
~ajhalili2006 9da3fd2381 docs(contact): update contact details and else page
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@gmail.com>
2023-10-27 18:13:21 +00:00
~ajhalili2006 32cf528505 chore(overrides): rename fediverse-community to openweb-icons
Also add link to source code and license in README.

Signed-off-by: Andrei Jiroh Halili <ajhalili2006@gmail.com>
2023-10-27 17:13:49 +00:00
Andrei Jiroh Eugenio Halili 0ba2091475 chore(gitlab-ci): fix repository sync chaos 2023-10-23 05:16:25 +00:00
Andrei Jiroh Halili 509b8204a5
build(docker): update base image used for building workspace image
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-10-21 10:00:54 +08:00
Andrei Jiroh Halili 424a978bff
chore: update link to GitHub mirror
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-10-21 09:53:39 +08:00
Andrei Jiroh Eugenio Halili 230baff1ec Update EOL sequence and apply fixes from upstream 2023-10-18 15:52:50 +00:00
Andrei Jiroh Halili 14cb0d234f
Update hashes per commit 137a9f99b7
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-10-18 23:44:13 +08:00
Andrei Jiroh Halili 640e419ab1
Use latest image build instead of nightly one
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-10-18 23:40:47 +08:00
Andrei Jiroh Halili f1a2adaa1d
Setup asdf version manager for repo
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-10-18 23:34:33 +08:00
Andrei Jiroh Halili dbd0334da0
Use official Docker images for Python instead of installing via Alpine Linux
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-10-18 23:29:31 +08:00
Andrei Jiroh Halili 137a9f99b7
Update Pipfile.lock for Python 3.12
Alongside some quick edits to the base config

Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-10-18 22:42:01 +08:00
Andrei Jiroh Halili 81bcc565c1
docs(readme): update badge and some new docs
Adopted from @Xe's website repository, I added the section "Information for
people wishing to use this repository" to help guide potential users who plan
to fork the repo for their use to consider things to do first, among other possible
legalese things.

Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-10-10 15:18:50 +00:00
Andrei Jiroh Eugenio Halili 88ed947130 chore(docs): update FAQ and do mirroring at CI 2023-10-10 06:50:58 +00:00
~ajhalili2006 aedab3ff13 docs(communications): some behind-the-scenes work there
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@gmail.com>
2023-10-09 08:45:07 +00:00
~ajhalili2006 e990fe9bdb docs(markdown): casually update faq content
More answers relating to my neurodivergence will be added soon.

Signed-off-by: Andrei Jiroh Halili <ajhalili2006@gmail.com>
2023-10-09 08:44:41 +00:00
~ajhalili2006 33d92b870e docs(readme): update legalese section
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@gmail.com>
2023-10-09 08:40:24 +00:00
Andrei Jiroh Halili 1de29a8153
chore(markdown): update redirects
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-10-08 10:20:45 +08:00
Andrei Jiroh Halili ec4afc7a87
ci(builds.sr.ht): fix script syntax on deploy-gemini
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-10-08 10:15:54 +08:00
Andrei Jiroh Halili df1889bd41
ci(builds.sr.ht): deploy gemini content via sourcehut builds instead
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-10-08 10:09:10 +08:00
Andrei Jiroh Halili ffe6087ed8
chore(docker): fix a small syntax error
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-10-07 11:40:10 +08:00
Andrei Jiroh Halili d3d4c30b52
ci(builds.sr.ht): more chores over at buildscripts
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-10-07 11:38:26 +08:00
Andrei Jiroh Halili 3e4715f48f
ci(gitlab-ci): enable deployments of gemini content to tildes [skip ci]
Will skipping CI for now until the new nightly image has been shipped
by next scheduled cronjob at GitHub Actions.

Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-10-07 11:29:03 +08:00
Andrei Jiroh Halili 98f0263354
ci(builds.sr.ht): use site_url specific builds via env
Also did some fixes over at deploy-gmi script too

Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-10-07 11:23:56 +08:00
Andrei Jiroh Halili 38b4b39aed
ci(builds.sr.ht): move setup chore to setup step
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-10-07 01:08:30 +08:00
Andrei Jiroh Halili 8362b6390e
ci(build): forget to include changes for build script itself
This should be originally on 4551899097,
but we don't want to do a force push due to reasons.

Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-10-07 01:03:54 +08:00
Andrei Jiroh Halili 4551899097
ci(builds.sr.ht): do some additional fixes on both config and build script
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-10-07 00:58:45 +08:00
Andrei Jiroh Halili a57c035e8e
ci(builds.sr.ht): fix directory issue during build
See https://builds.sr.ht/~ajhalili2006/job/1069863 for context

Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-10-07 00:49:51 +08:00
Andrei Jiroh Halili 1c3ec96822
build(lockfile): update Pipefile.lock
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-10-07 00:44:53 +08:00
Andrei Jiroh Halili edbc56743e
ci(builds.sr.ht): update build.yml for sync with tildes
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-10-07 00:43:50 +08:00
Andrei Jiroh Halili 6101e45636
ci(gitlab-ci): use pip3 install on CI instead of pipenv
Also updated the hashes on requirements.txt file

Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-10-05 10:25:12 +08:00
~ajhalili2006 b66138ae7e chore(makrdown): fix some internal link warnings
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@gmail.com>
2023-10-05 02:09:11 +00:00
~ajhalili2006 b58fb94ed1 docs(mkdocs): update contact pages
Meanwhile in the homepage, some meta tags fixup,
possibly more badge-related edits and then some.

Signed-off-by: Andrei Jiroh Halili <ajhalili2006@gmail.com>
2023-10-05 02:08:09 +00:00
Andrei Jiroh Halili bb222552d2
chore(gitpod): bump devenv image to build based on 34a2eb5ce4
[skip ci]

Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-10-01 22:18:00 +08:00
Andrei Jiroh Halili c88c2e5519
chore(global): some CI script fix for Gemini deployments
Also added some scripts to Pipfile and minimal update to FAQ page.

Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-10-01 08:33:49 +08:00
Andrei Jiroh Halili beb0d74b0d
chore(security): officially sign security.txt with PGP
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-10-01 02:00:12 +08:00
Andrei Jiroh Halili 4055ed8ad1
docs(security): use main address for security related emails
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-10-01 01:58:04 +08:00
Andrei Jiroh Halili 34a2eb5ce4
ci(gitlab-ci): point CI image to nightly tag
Also generally fix some issues relating to build scripts on RTD and
some bloody CI hellscapes over at Pipfile.

Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-10-01 01:41:23 +08:00
Andrei Jiroh Halili 9ff4f89deb
docs(markdown): update website content and base config
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-10-01 01:40:23 +08:00
Andrei Jiroh Halili 59a5f4e47d
chore(overrides): improve 404 page with inclusion of report button
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-09-30 22:38:39 +08:00
Andrei Jiroh Halili 2f641311e0
chore(mkdocs): update RTD build config and add tilde-specifc config
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-09-30 01:44:32 +08:00
Andrei Jiroh Halili a670c7ecb1
chore(docker): dedup hadolint setup and add git-lfs and git-email
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-09-30 01:44:08 +08:00
Andrei Jiroh Halili f21d3f10b6
chore(overrides): migrate deployment specific banner outside announcements
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-09-30 01:43:21 +08:00
Andrei Jiroh Halili f4e605152a
ci(deps): add autolinks plugin to requirements file
Will be enabled soon on config

Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-09-30 01:25:19 +08:00
Andrei Jiroh Halili c2acf592c5
docs(global): update dev docs and add some badges
Signed-off-by: Andrei Jiroh Halili <ajhalili2006@andreijiroh.eu.org>
2023-09-30 01:24:31 +08:00
49 changed files with 1000 additions and 485 deletions

View File

@ -2,8 +2,11 @@ image: alpine/edge
environment:
FF_ENABLE_COMMIT_DATA: "true"
FF_GENERATE_SOCIAL_CARDS: "true"
#SKIP_VENV_SETUP: "true"
oauth: "pages.sr.ht/SITES:RW pages.sr.ht/PAGES:RW pages.sr.ht/PROFILE"
packages:
- openssh-client
- rsync
- python3
- py3-pip
- py3-wheel
@ -15,7 +18,7 @@ packages:
- libpng-dev
- zlib-dev
sources:
- https://git.sr.ht/~ajhalili2006/tildeweb
- https://git.sr.ht/~ajhalili2006/web
secrets:
- b4ffc5fb-bc8c-4e89-b38a-48b56155a443
triggers:
@ -25,16 +28,34 @@ triggers:
cc: ajhalili2006@gmail.com
tasks:
# in case of triggered from hottub
- repo-sync: |
cd tildeweb
- setup: |
# https://www.jeffgeerling.com/blog/2023/how-solve-error-externally-managed-environment-when-installing-pip3
sudo rm /usr/lib/python3*/EXTERNALLY-MANAGED -rfv
# add pipenv for now
pip3 install pipenv --user
- build: |
cd tildeweb && pip3 install -r requirements.txt --user
cd web
# our build script handles both the install and build stuff itself
export PATH="$PATH:$HOME/.local/bin"
bash ./build.sh
pipenv install --ignore-pipfile --deploy
TILDE_PUBLIC_HTML_BASE=https://ctrl-c.club/~ajhalili2006/ TARGET_DIR=build/ctrl-c.club ./bin/build.sh mkdocs.tilde.yml
TILDE_PUBLIC_HTML_BASE=https://ajhalili2006.p.psf.lt TARGET_DIR=build/p.psf.lt ./bin/build.sh mkdocs.tilde.yml
TILDE_PUBLIC_HTML_BASE=https://ajhalili2006.dimension.sh TARGET_DIR=build/dimension.sh ./bin/build.sh mkdocs.tilde.yml
- generate-archive: |
cd tildeweb
tar -C public -cvz . -f tildeweb-prod-build.tar.gz
- deploy: |
echo done
cd web
tar -C build -cvz . -f tildeweb-prod-build.tar.gz
- deploy-html: |
cd web
echo "StrictHostKeyChecking=no" >> ~/.ssh/config
rsync -rP -e 'ssh -i ~/.ssh/passwordless-auth-sshfs' build/p.psf.lt/ ajhalili2006@p.projectsegfau.lt:/home/ajhalili2006/public_html/
rsync -rP -e 'ssh -i ~/.ssh/passwordless-auth-sshfs' build/ctrl-c.club/ ajhalili2006@ctrl-c.club:/home/ajhalili2006/public_html/
rsync -rP -e 'ssh -i ~/.ssh/passwordless-auth-sshfs' build/dimension.sh/ ajhalili2006@s1.dimension.sh:/home/ajhalili2006/public_html/
- deploy-gemini: |
cd web
set +x
SOURCEHUT_PAGES_TOKEN=${OAUTH2_TOKEN} PRIVATE_SSH_KEY=~/.ssh/passwordless-auth-sshfs ./bin/deploy-gmi.sh
artifacts:
- tildeweb/tildeweb-prod-build.tar.gz
- web/tildeweb-prod-build.tar.gz
- web/gemini-site.tar.gz

View File

@ -16,7 +16,6 @@ env:
# github.repository as <account>/<repo>
IMAGE_NAME: ${{ github.repository }}
jobs:
build-ci:
name: Build environment for GitLab CI/CD
@ -30,7 +29,7 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
# Workaround: https://github.com/docker/build-push-action/issues/461
- name: Setup Docker buildx
@ -104,7 +103,7 @@ jobs:
id-token: write
steps:
- name: Checkout repository
uses: actions/checkout@v3
uses: actions/checkout@v4
# Workaround: https://github.com/docker/build-push-action/issues/461
- name: Setup Docker buildx
@ -165,6 +164,6 @@ jobs:
labels: ${{ steps.meta.outputs.labels }}
cache-from: |
type=registry,ref=quay.io/ajhalili2006/gitpod-workspace:buildkit-cache-web
type=registry,ref=ghcr.io/ajhalili2006/ajhalili2006.github.io/devenv:nightly
type=registry,ref=ghcr.io/ajhalili2006/ajhalili2006.github.io/devenv:branch-main
type=registry,ref=ghcr.io/ajhalili2006/website/devenv:nightly
type=registry,ref=ghcr.io/ajhalili2006/website/devenv:branch-main
#cache-to: type=registry,ref=quay.io/ajhalili2006/gitpod-workspace:buildkit-cache-web

View File

@ -1,8 +1,9 @@
# The Docker image that will be used to build your app
image:
name: quay.io/ajhalili2006/mkdocs-material-build-ci:commit-b9683f870d90ffe1a6c2d4d22c69fb8e99322e17
image:
name: quay.io/ajhalili2006/mkdocs-material-build-ci:latest
stages:
- test
- build
default:
@ -10,15 +11,16 @@ default:
- amd64 # currently, we only the image in amd64 right now.
# Functions that should be executed before the build script is run
before_script:
- pipenv install
- pipenv install --ignore-pipfile --deploy
- npm ci
- curl --silent "https://gitlab.com/gitlab-org/incubation-engineering/mobile-devops/download-secure-files/-/raw/main/installer" | bash
# Global builds and stuff
variables:
DEBUG: "1"
DEBUG: "1" # MAY HORRIBLY LEAK SECRETS, PROCEED WITH CAUTION
FF_ENABLE_COMMIT_DATA: "true"
FF_GENERATE_SOCIAL_CARDS: "true"
SECURE_FILES_DOWNLOAD_PATH: /run/secrets
SECURE_FILES_DOWNLOAD_PATH: .secretskit
GIT_DEPTH: "0"
pages:
@ -35,12 +37,3 @@ pages:
# This ensures that only pushes to the default branch will trigger
# a pages deploy
- if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
pages:srht:
stage: build
needs:
- pages
script:
- tar -C gmi -cvz . -f site.tar.gz
- doppler run -- ./bin/deploykit-gmi.sh
rules:
- if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH

7
.gitpod.Dockerfile vendored
View File

@ -2,6 +2,7 @@
FROM gitpod/workspace-full:latest as workspace
WORKDIR /tmp
# setup work for scdoc and hut cli
RUN git clone https://git.sr.ht/~sircmpwn/scdoc && cd scdoc \
&& make && sudo cp scdoc /usr/local/bin/scdoc && cd .. \
&& git clone https://git.sr.ht/~emersion/hut && cd hut \
@ -22,5 +23,7 @@ COPY --from=docker/buildx-bin:latest /buildx /usr/libexec/docker/cli-plugins/doc
# brew maintenance + install ShellCheck and Hadolint
WORKDIR /home/gitpod
RUN brew update && brew install hadolint shellcheck \
&& npm i -g wrangler
RUN brew update && brew upgrade \
&& brew install hadolint shellcheck \
&& npm i -g wrangler \
&& git -C ~/.pyenv pull origin master

View File

@ -6,11 +6,11 @@
checkoutLocation: tildeweb-ajhalili2006
image: ghcr.io/ajhalili2006/ajhalili2006.github.io/devenv:commit-b9683f870d90ffe1a6c2d4d22c69fb8e99322e17
image: quay.io/ajhalili2006/mkdocs-material-build-ci:commit-f1a2adaa1d977fe66e4f1791436027539fe187b8
tasks:
- init: |
pipenv install
pipenv sync --verbose
command: |
FF_ENABLE_COMMIT_DATA=true pipenv run -- mkdocs serve --watch overrides --watch-theme --livereload
name: site-localdev
@ -20,4 +20,4 @@ tasks:
ports:
- port: 8000
onOpen: notify
visibility: public
visibility: public

View File

@ -11,8 +11,16 @@ build:
python: "3.11"
#nodejs: 18
jobs:
post_checkout:
# Needed for some plugins/extensions to work
- git fetch --unshallow || true
post_build:
- cp -rv markdown/.well-known $READTHEDOCS_OUTPUT/html/.well-known
- |
mkdir $READTHEDOCS_OUTPUT/api
git rev-parse HEAD > $READTHEDOCS_OUTPUT/api/commit
- |
cp -rv markdown/.well-known $READTHEDOCS_OUTPUT/html/.well-known
cp $READTHEDOCS_OUTPUT/html/assets/images/favicon.png $READTHEDOCS_OUTPUT/favicon.ico
apt_packages:
- libcairo2-dev
- libfreetype6-dev
@ -24,6 +32,7 @@ build:
mkdocs:
configuration: mkdocs.readthedocs.yml
fail_on_warning: false
# Optionally declare the Python requirements required to build your docs
python:

1
.tool-versions Normal file
View File

@ -0,0 +1 @@
python 3.12.0

11
.vscode/settings.json vendored
View File

@ -23,5 +23,14 @@
"conventionalCommits.autoCommit": false,
"conventionalCommits.promptCI": true,
"git.alwaysSignOff": true,
"gitlens.remotes": [{ "domain": "mau.dev", "type": "GitLab" }]
"gitlens.remotes": [
{
"domain": "mau.dev",
"type": "GitLab"
}
],
"foam.edit.linkReferenceDefinitions": "withExtensions",
"foam.files.ignore": [
".github/**"
]
}

View File

@ -12,8 +12,15 @@ pillow = "*"
cairosvg = "*"
mkdocs-rss-plugin = "*"
mkdocs-git-committers-plugin-2 = "*"
mkdocs-autolinks-plugin = "*"
[dev-packages]
[requires]
python_version = "3.11"
python_version = "3.12"
[scripts]
dev = "mkdocs serve --watch overrides --watch-theme --livereload"
build = "bash bin/build.sh"
build-staging = "bash bin/build.sh mkdocs.readthedocs.yml"
build-tilde-ctrlc = "bash bin/build.sh mkdocs.tilde.yml"

525
Pipfile.lock generated
View File

@ -1,11 +1,11 @@
{
"_meta": {
"hash": {
"sha256": "293e5d98fc5927ea141a41b7eabeace50841eaeb6eb42f5840517a15250934fb"
"sha256": "f87d557d02966cbcde3572eae1a8d848cab1ba152503baeb1c06254ec2ecd511"
},
"pipfile-spec": 6,
"requires": {
"python_version": "3.11"
"python_version": "3.12"
},
"sources": [
{
@ -18,11 +18,11 @@
"default": {
"babel": {
"hashes": [
"sha256:b4246fb7677d3b98f501a39d43396d3cafdc8eadb045f4a31be01863f655c610",
"sha256:cc2d99999cd01d44420ae725a21c9e3711b3aadc7976d6147f622d8581963455"
"sha256:04c3e2d28d2b7681644508f836be388ae49e0cfe91465095340395b60d00f210",
"sha256:fbfcae1575ff78e26c7449136f1abbefc3c13ce542eeb13d43d50d8b047216ec"
],
"markers": "python_version >= '3.7'",
"version": "==2.12.1"
"version": "==2.13.0"
},
"beautifulsoup4": {
"hashes": [
@ -46,6 +46,7 @@
"sha256:8a5222d4e6c3f86f1f7046b63246877a63b49923a1cd202184c3a634ef546b3b"
],
"index": "pypi",
"markers": "python_version >= '3.5'",
"version": "==2.7.1"
},
"certifi": {
@ -58,153 +59,157 @@
},
"cffi": {
"hashes": [
"sha256:00a9ed42e88df81ffae7a8ab6d9356b371399b91dbdf0c3cb1e84c03a13aceb5",
"sha256:03425bdae262c76aad70202debd780501fabeaca237cdfddc008987c0e0f59ef",
"sha256:04ed324bda3cda42b9b695d51bb7d54b680b9719cfab04227cdd1e04e5de3104",
"sha256:0e2642fe3142e4cc4af0799748233ad6da94c62a8bec3a6648bf8ee68b1c7426",
"sha256:173379135477dc8cac4bc58f45db08ab45d228b3363adb7af79436135d028405",
"sha256:198caafb44239b60e252492445da556afafc7d1e3ab7a1fb3f0584ef6d742375",
"sha256:1e74c6b51a9ed6589199c787bf5f9875612ca4a8a0785fb2d4a84429badaf22a",
"sha256:2012c72d854c2d03e45d06ae57f40d78e5770d252f195b93f581acf3ba44496e",
"sha256:21157295583fe8943475029ed5abdcf71eb3911894724e360acff1d61c1d54bc",
"sha256:2470043b93ff09bf8fb1d46d1cb756ce6132c54826661a32d4e4d132e1977adf",
"sha256:285d29981935eb726a4399badae8f0ffdff4f5050eaa6d0cfc3f64b857b77185",
"sha256:30d78fbc8ebf9c92c9b7823ee18eb92f2e6ef79b45ac84db507f52fbe3ec4497",
"sha256:320dab6e7cb2eacdf0e658569d2575c4dad258c0fcc794f46215e1e39f90f2c3",
"sha256:33ab79603146aace82c2427da5ca6e58f2b3f2fb5da893ceac0c42218a40be35",
"sha256:3548db281cd7d2561c9ad9984681c95f7b0e38881201e157833a2342c30d5e8c",
"sha256:3799aecf2e17cf585d977b780ce79ff0dc9b78d799fc694221ce814c2c19db83",
"sha256:39d39875251ca8f612b6f33e6b1195af86d1b3e60086068be9cc053aa4376e21",
"sha256:3b926aa83d1edb5aa5b427b4053dc420ec295a08e40911296b9eb1b6170f6cca",
"sha256:3bcde07039e586f91b45c88f8583ea7cf7a0770df3a1649627bf598332cb6984",
"sha256:3d08afd128ddaa624a48cf2b859afef385b720bb4b43df214f85616922e6a5ac",
"sha256:3eb6971dcff08619f8d91607cfc726518b6fa2a9eba42856be181c6d0d9515fd",
"sha256:40f4774f5a9d4f5e344f31a32b5096977b5d48560c5592e2f3d2c4374bd543ee",
"sha256:4289fc34b2f5316fbb762d75362931e351941fa95fa18789191b33fc4cf9504a",
"sha256:470c103ae716238bbe698d67ad020e1db9d9dba34fa5a899b5e21577e6d52ed2",
"sha256:4f2c9f67e9821cad2e5f480bc8d83b8742896f1242dba247911072d4fa94c192",
"sha256:50a74364d85fd319352182ef59c5c790484a336f6db772c1a9231f1c3ed0cbd7",
"sha256:54a2db7b78338edd780e7ef7f9f6c442500fb0d41a5a4ea24fff1c929d5af585",
"sha256:5635bd9cb9731e6d4a1132a498dd34f764034a8ce60cef4f5319c0541159392f",
"sha256:59c0b02d0a6c384d453fece7566d1c7e6b7bae4fc5874ef2ef46d56776d61c9e",
"sha256:5d598b938678ebf3c67377cdd45e09d431369c3b1a5b331058c338e201f12b27",
"sha256:5df2768244d19ab7f60546d0c7c63ce1581f7af8b5de3eb3004b9b6fc8a9f84b",
"sha256:5ef34d190326c3b1f822a5b7a45f6c4535e2f47ed06fec77d3d799c450b2651e",
"sha256:6975a3fac6bc83c4a65c9f9fcab9e47019a11d3d2cf7f3c0d03431bf145a941e",
"sha256:6c9a799e985904922a4d207a94eae35c78ebae90e128f0c4e521ce339396be9d",
"sha256:70df4e3b545a17496c9b3f41f5115e69a4f2e77e94e1d2a8e1070bc0c38c8a3c",
"sha256:7473e861101c9e72452f9bf8acb984947aa1661a7704553a9f6e4baa5ba64415",
"sha256:8102eaf27e1e448db915d08afa8b41d6c7ca7a04b7d73af6514df10a3e74bd82",
"sha256:87c450779d0914f2861b8526e035c5e6da0a3199d8f1add1a665e1cbc6fc6d02",
"sha256:8b7ee99e510d7b66cdb6c593f21c043c248537a32e0bedf02e01e9553a172314",
"sha256:91fc98adde3d7881af9b59ed0294046f3806221863722ba7d8d120c575314325",
"sha256:94411f22c3985acaec6f83c6df553f2dbe17b698cc7f8ae751ff2237d96b9e3c",
"sha256:98d85c6a2bef81588d9227dde12db8a7f47f639f4a17c9ae08e773aa9c697bf3",
"sha256:9ad5db27f9cabae298d151c85cf2bad1d359a1b9c686a275df03385758e2f914",
"sha256:a0b71b1b8fbf2b96e41c4d990244165e2c9be83d54962a9a1d118fd8657d2045",
"sha256:a0f100c8912c114ff53e1202d0078b425bee3649ae34d7b070e9697f93c5d52d",
"sha256:a591fe9e525846e4d154205572a029f653ada1a78b93697f3b5a8f1f2bc055b9",
"sha256:a5c84c68147988265e60416b57fc83425a78058853509c1b0629c180094904a5",
"sha256:a66d3508133af6e8548451b25058d5812812ec3798c886bf38ed24a98216fab2",
"sha256:a8c4917bd7ad33e8eb21e9a5bbba979b49d9a97acb3a803092cbc1133e20343c",
"sha256:b3bbeb01c2b273cca1e1e0c5df57f12dce9a4dd331b4fa1635b8bec26350bde3",
"sha256:cba9d6b9a7d64d4bd46167096fc9d2f835e25d7e4c121fb2ddfc6528fb0413b2",
"sha256:cc4d65aeeaa04136a12677d3dd0b1c0c94dc43abac5860ab33cceb42b801c1e8",
"sha256:ce4bcc037df4fc5e3d184794f27bdaab018943698f4ca31630bc7f84a7b69c6d",
"sha256:cec7d9412a9102bdc577382c3929b337320c4c4c4849f2c5cdd14d7368c5562d",
"sha256:d400bfb9a37b1351253cb402671cea7e89bdecc294e8016a707f6d1d8ac934f9",
"sha256:d61f4695e6c866a23a21acab0509af1cdfd2c013cf256bbf5b6b5e2695827162",
"sha256:db0fbb9c62743ce59a9ff687eb5f4afbe77e5e8403d6697f7446e5f609976f76",
"sha256:dd86c085fae2efd48ac91dd7ccffcfc0571387fe1193d33b6394db7ef31fe2a4",
"sha256:e00b098126fd45523dd056d2efba6c5a63b71ffe9f2bbe1a4fe1716e1d0c331e",
"sha256:e229a521186c75c8ad9490854fd8bbdd9a0c9aa3a524326b55be83b54d4e0ad9",
"sha256:e263d77ee3dd201c3a142934a086a4450861778baaeeb45db4591ef65550b0a6",
"sha256:ed9cb427ba5504c1dc15ede7d516b84757c3e3d7868ccc85121d9310d27eed0b",
"sha256:fa6693661a4c91757f4412306191b6dc88c1703f780c8234035eac011922bc01",
"sha256:fcd131dd944808b5bdb38e6f5b53013c5aa4f334c5cad0c72742f6eba4b73db0"
"sha256:0c9ef6ff37e974b73c25eecc13952c55bceed9112be2d9d938ded8e856138bcc",
"sha256:131fd094d1065b19540c3d72594260f118b231090295d8c34e19a7bbcf2e860a",
"sha256:1b8ebc27c014c59692bb2664c7d13ce7a6e9a629be20e54e7271fa696ff2b417",
"sha256:2c56b361916f390cd758a57f2e16233eb4f64bcbeee88a4881ea90fca14dc6ab",
"sha256:2d92b25dbf6cae33f65005baf472d2c245c050b1ce709cc4588cdcdd5495b520",
"sha256:31d13b0f99e0836b7ff893d37af07366ebc90b678b6664c955b54561fc36ef36",
"sha256:32c68ef735dbe5857c810328cb2481e24722a59a2003018885514d4c09af9743",
"sha256:3686dffb02459559c74dd3d81748269ffb0eb027c39a6fc99502de37d501faa8",
"sha256:582215a0e9adbe0e379761260553ba11c58943e4bbe9c36430c4ca6ac74b15ed",
"sha256:5b50bf3f55561dac5438f8e70bfcdfd74543fd60df5fa5f62d94e5867deca684",
"sha256:5bf44d66cdf9e893637896c7faa22298baebcd18d1ddb6d2626a6e39793a1d56",
"sha256:6602bc8dc6f3a9e02b6c22c4fc1e47aa50f8f8e6d3f78a5e16ac33ef5fefa324",
"sha256:673739cb539f8cdaa07d92d02efa93c9ccf87e345b9a0b556e3ecc666718468d",
"sha256:68678abf380b42ce21a5f2abde8efee05c114c2fdb2e9eef2efdb0257fba1235",
"sha256:68e7c44931cc171c54ccb702482e9fc723192e88d25a0e133edd7aff8fcd1f6e",
"sha256:6b3d6606d369fc1da4fd8c357d026317fbb9c9b75d36dc16e90e84c26854b088",
"sha256:748dcd1e3d3d7cd5443ef03ce8685043294ad6bd7c02a38d1bd367cfd968e000",
"sha256:7651c50c8c5ef7bdb41108b7b8c5a83013bfaa8a935590c5d74627c047a583c7",
"sha256:7b78010e7b97fef4bee1e896df8a4bbb6712b7f05b7ef630f9d1da00f6444d2e",
"sha256:7e61e3e4fa664a8588aa25c883eab612a188c725755afff6289454d6362b9673",
"sha256:80876338e19c951fdfed6198e70bc88f1c9758b94578d5a7c4c91a87af3cf31c",
"sha256:8895613bcc094d4a1b2dbe179d88d7fb4a15cee43c052e8885783fac397d91fe",
"sha256:88e2b3c14bdb32e440be531ade29d3c50a1a59cd4e51b1dd8b0865c54ea5d2e2",
"sha256:8f8e709127c6c77446a8c0a8c8bf3c8ee706a06cd44b1e827c3e6a2ee6b8c098",
"sha256:9cb4a35b3642fc5c005a6755a5d17c6c8b6bcb6981baf81cea8bfbc8903e8ba8",
"sha256:9f90389693731ff1f659e55c7d1640e2ec43ff725cc61b04b2f9c6d8d017df6a",
"sha256:a09582f178759ee8128d9270cd1344154fd473bb77d94ce0aeb2a93ebf0feaf0",
"sha256:a6a14b17d7e17fa0d207ac08642c8820f84f25ce17a442fd15e27ea18d67c59b",
"sha256:a72e8961a86d19bdb45851d8f1f08b041ea37d2bd8d4fd19903bc3083d80c896",
"sha256:abd808f9c129ba2beda4cfc53bde801e5bcf9d6e0f22f095e45327c038bfe68e",
"sha256:ac0f5edd2360eea2f1daa9e26a41db02dd4b0451b48f7c318e217ee092a213e9",
"sha256:b29ebffcf550f9da55bec9e02ad430c992a87e5f512cd63388abb76f1036d8d2",
"sha256:b2ca4e77f9f47c55c194982e10f058db063937845bb2b7a86c84a6cfe0aefa8b",
"sha256:b7be2d771cdba2942e13215c4e340bfd76398e9227ad10402a8767ab1865d2e6",
"sha256:b84834d0cf97e7d27dd5b7f3aca7b6e9263c56308ab9dc8aae9784abb774d404",
"sha256:b86851a328eedc692acf81fb05444bdf1891747c25af7529e39ddafaf68a4f3f",
"sha256:bcb3ef43e58665bbda2fb198698fcae6776483e0c4a631aa5647806c25e02cc0",
"sha256:c0f31130ebc2d37cdd8e44605fb5fa7ad59049298b3f745c74fa74c62fbfcfc4",
"sha256:c6a164aa47843fb1b01e941d385aab7215563bb8816d80ff3a363a9f8448a8dc",
"sha256:d8a9d3ebe49f084ad71f9269834ceccbf398253c9fac910c4fd7053ff1386936",
"sha256:db8e577c19c0fda0beb7e0d4e09e0ba74b1e4c092e0e40bfa12fe05b6f6d75ba",
"sha256:dc9b18bf40cc75f66f40a7379f6a9513244fe33c0e8aa72e2d56b0196a7ef872",
"sha256:e09f3ff613345df5e8c3667da1d918f9149bd623cd9070c983c013792a9a62eb",
"sha256:e4108df7fe9b707191e55f33efbcb2d81928e10cea45527879a4749cbe472614",
"sha256:e6024675e67af929088fda399b2094574609396b1decb609c55fa58b028a32a1",
"sha256:e70f54f1796669ef691ca07d046cd81a29cb4deb1e5f942003f401c0c4a2695d",
"sha256:e715596e683d2ce000574bae5d07bd522c781a822866c20495e52520564f0969",
"sha256:e760191dd42581e023a68b758769e2da259b5d52e3103c6060ddc02c9edb8d7b",
"sha256:ed86a35631f7bfbb28e108dd96773b9d5a6ce4811cf6ea468bb6a359b256b1e4",
"sha256:ee07e47c12890ef248766a6e55bd38ebfb2bb8edd4142d56db91b21ea68b7627",
"sha256:fa3a0128b152627161ce47201262d3140edb5a5c3da88d73a1b790a959126956",
"sha256:fcc8eb6d5902bb1cf6dc4f187ee3ea80a1eba0a89aba40a5cb20a5087d961357"
],
"version": "==1.15.1"
"markers": "python_version >= '3.8'",
"version": "==1.16.0"
},
"charset-normalizer": {
"hashes": [
"sha256:04e57ab9fbf9607b77f7d057974694b4f6b142da9ed4a199859d9d4d5c63fe96",
"sha256:09393e1b2a9461950b1c9a45d5fd251dc7c6f228acab64da1c9c0165d9c7765c",
"sha256:0b87549028f680ca955556e3bd57013ab47474c3124dc069faa0b6545b6c9710",
"sha256:1000fba1057b92a65daec275aec30586c3de2401ccdcd41f8a5c1e2c87078706",
"sha256:1249cbbf3d3b04902ff081ffbb33ce3377fa6e4c7356f759f3cd076cc138d020",
"sha256:1920d4ff15ce893210c1f0c0e9d19bfbecb7983c76b33f046c13a8ffbd570252",
"sha256:193cbc708ea3aca45e7221ae58f0fd63f933753a9bfb498a3b474878f12caaad",
"sha256:1a100c6d595a7f316f1b6f01d20815d916e75ff98c27a01ae817439ea7726329",
"sha256:1f30b48dd7fa1474554b0b0f3fdfdd4c13b5c737a3c6284d3cdc424ec0ffff3a",
"sha256:203f0c8871d5a7987be20c72442488a0b8cfd0f43b7973771640fc593f56321f",
"sha256:246de67b99b6851627d945db38147d1b209a899311b1305dd84916f2b88526c6",
"sha256:2dee8e57f052ef5353cf608e0b4c871aee320dd1b87d351c28764fc0ca55f9f4",
"sha256:2efb1bd13885392adfda4614c33d3b68dee4921fd0ac1d3988f8cbb7d589e72a",
"sha256:2f4ac36d8e2b4cc1aa71df3dd84ff8efbe3bfb97ac41242fbcfc053c67434f46",
"sha256:3170c9399da12c9dc66366e9d14da8bf7147e1e9d9ea566067bbce7bb74bd9c2",
"sha256:3b1613dd5aee995ec6d4c69f00378bbd07614702a315a2cf6c1d21461fe17c23",
"sha256:3bb3d25a8e6c0aedd251753a79ae98a093c7e7b471faa3aa9a93a81431987ace",
"sha256:3bb7fda7260735efe66d5107fb7e6af6a7c04c7fce9b2514e04b7a74b06bf5dd",
"sha256:41b25eaa7d15909cf3ac4c96088c1f266a9a93ec44f87f1d13d4a0e86c81b982",
"sha256:45de3f87179c1823e6d9e32156fb14c1927fcc9aba21433f088fdfb555b77c10",
"sha256:46fb8c61d794b78ec7134a715a3e564aafc8f6b5e338417cb19fe9f57a5a9bf2",
"sha256:48021783bdf96e3d6de03a6e39a1171ed5bd7e8bb93fc84cc649d11490f87cea",
"sha256:4957669ef390f0e6719db3613ab3a7631e68424604a7b448f079bee145da6e09",
"sha256:5e86d77b090dbddbe78867a0275cb4df08ea195e660f1f7f13435a4649e954e5",
"sha256:6339d047dab2780cc6220f46306628e04d9750f02f983ddb37439ca47ced7149",
"sha256:681eb3d7e02e3c3655d1b16059fbfb605ac464c834a0c629048a30fad2b27489",
"sha256:6c409c0deba34f147f77efaa67b8e4bb83d2f11c8806405f76397ae5b8c0d1c9",
"sha256:7095f6fbfaa55defb6b733cfeb14efaae7a29f0b59d8cf213be4e7ca0b857b80",
"sha256:70c610f6cbe4b9fce272c407dd9d07e33e6bf7b4aa1b7ffb6f6ded8e634e3592",
"sha256:72814c01533f51d68702802d74f77ea026b5ec52793c791e2da806a3844a46c3",
"sha256:7a4826ad2bd6b07ca615c74ab91f32f6c96d08f6fcc3902ceeedaec8cdc3bcd6",
"sha256:7c70087bfee18a42b4040bb9ec1ca15a08242cf5867c58726530bdf3945672ed",
"sha256:855eafa5d5a2034b4621c74925d89c5efef61418570e5ef9b37717d9c796419c",
"sha256:8700f06d0ce6f128de3ccdbc1acaea1ee264d2caa9ca05daaf492fde7c2a7200",
"sha256:89f1b185a01fe560bc8ae5f619e924407efca2191b56ce749ec84982fc59a32a",
"sha256:8b2c760cfc7042b27ebdb4a43a4453bd829a5742503599144d54a032c5dc7e9e",
"sha256:8c2f5e83493748286002f9369f3e6607c565a6a90425a3a1fef5ae32a36d749d",
"sha256:8e098148dd37b4ce3baca71fb394c81dc5d9c7728c95df695d2dca218edf40e6",
"sha256:94aea8eff76ee6d1cdacb07dd2123a68283cb5569e0250feab1240058f53b623",
"sha256:95eb302ff792e12aba9a8b8f8474ab229a83c103d74a750ec0bd1c1eea32e669",
"sha256:9bd9b3b31adcb054116447ea22caa61a285d92e94d710aa5ec97992ff5eb7cf3",
"sha256:9e608aafdb55eb9f255034709e20d5a83b6d60c054df0802fa9c9883d0a937aa",
"sha256:a103b3a7069b62f5d4890ae1b8f0597618f628b286b03d4bc9195230b154bfa9",
"sha256:a386ebe437176aab38c041de1260cd3ea459c6ce5263594399880bbc398225b2",
"sha256:a38856a971c602f98472050165cea2cdc97709240373041b69030be15047691f",
"sha256:a401b4598e5d3f4a9a811f3daf42ee2291790c7f9d74b18d75d6e21dda98a1a1",
"sha256:a7647ebdfb9682b7bb97e2a5e7cb6ae735b1c25008a70b906aecca294ee96cf4",
"sha256:aaf63899c94de41fe3cf934601b0f7ccb6b428c6e4eeb80da72c58eab077b19a",
"sha256:b0dac0ff919ba34d4df1b6131f59ce95b08b9065233446be7e459f95554c0dc8",
"sha256:baacc6aee0b2ef6f3d308e197b5d7a81c0e70b06beae1f1fcacffdbd124fe0e3",
"sha256:bf420121d4c8dce6b889f0e8e4ec0ca34b7f40186203f06a946fa0276ba54029",
"sha256:c04a46716adde8d927adb9457bbe39cf473e1e2c2f5d0a16ceb837e5d841ad4f",
"sha256:c0b21078a4b56965e2b12f247467b234734491897e99c1d51cee628da9786959",
"sha256:c1c76a1743432b4b60ab3358c937a3fe1341c828ae6194108a94c69028247f22",
"sha256:c4983bf937209c57240cff65906b18bb35e64ae872da6a0db937d7b4af845dd7",
"sha256:c4fb39a81950ec280984b3a44f5bd12819953dc5fa3a7e6fa7a80db5ee853952",
"sha256:c57921cda3a80d0f2b8aec7e25c8aa14479ea92b5b51b6876d975d925a2ea346",
"sha256:c8063cf17b19661471ecbdb3df1c84f24ad2e389e326ccaf89e3fb2484d8dd7e",
"sha256:ccd16eb18a849fd8dcb23e23380e2f0a354e8daa0c984b8a732d9cfaba3a776d",
"sha256:cd6dbe0238f7743d0efe563ab46294f54f9bc8f4b9bcf57c3c666cc5bc9d1299",
"sha256:d62e51710986674142526ab9f78663ca2b0726066ae26b78b22e0f5e571238dd",
"sha256:db901e2ac34c931d73054d9797383d0f8009991e723dab15109740a63e7f902a",
"sha256:e03b8895a6990c9ab2cdcd0f2fe44088ca1c65ae592b8f795c3294af00a461c3",
"sha256:e1c8a2f4c69e08e89632defbfabec2feb8a8d99edc9f89ce33c4b9e36ab63037",
"sha256:e4b749b9cc6ee664a3300bb3a273c1ca8068c46be705b6c31cf5d276f8628a94",
"sha256:e6a5bf2cba5ae1bb80b154ed68a3cfa2fa00fde979a7f50d6598d3e17d9ac20c",
"sha256:e857a2232ba53ae940d3456f7533ce6ca98b81917d47adc3c7fd55dad8fab858",
"sha256:ee4006268ed33370957f55bf2e6f4d263eaf4dc3cfc473d1d90baff6ed36ce4a",
"sha256:eef9df1eefada2c09a5e7a40991b9fc6ac6ef20b1372abd48d2794a316dc0449",
"sha256:f058f6963fd82eb143c692cecdc89e075fa0828db2e5b291070485390b2f1c9c",
"sha256:f25c229a6ba38a35ae6e25ca1264621cc25d4d38dca2942a7fce0b67a4efe918",
"sha256:f2a1d0fd4242bd8643ce6f98927cf9c04540af6efa92323e9d3124f57727bfc1",
"sha256:f7560358a6811e52e9c4d142d497f1a6e10103d3a6881f18d04dbce3729c0e2c",
"sha256:f779d3ad205f108d14e99bb3859aa7dd8e9c68874617c72354d7ecaec2a054ac",
"sha256:f87f746ee241d30d6ed93969de31e5ffd09a2961a051e60ae6bddde9ec3583aa"
"sha256:02673e456dc5ab13659f85196c534dc596d4ef260e4d86e856c3b2773ce09843",
"sha256:02af06682e3590ab952599fbadac535ede5d60d78848e555aa58d0c0abbde786",
"sha256:03680bb39035fbcffe828eae9c3f8afc0428c91d38e7d61aa992ef7a59fb120e",
"sha256:0570d21da019941634a531444364f2482e8db0b3425fcd5ac0c36565a64142c8",
"sha256:09c77f964f351a7369cc343911e0df63e762e42bac24cd7d18525961c81754f4",
"sha256:0d3d5b7db9ed8a2b11a774db2bbea7ba1884430a205dbd54a32d61d7c2a190fa",
"sha256:1063da2c85b95f2d1a430f1c33b55c9c17ffaf5e612e10aeaad641c55a9e2b9d",
"sha256:12ebea541c44fdc88ccb794a13fe861cc5e35d64ed689513a5c03d05b53b7c82",
"sha256:153e7b6e724761741e0974fc4dcd406d35ba70b92bfe3fedcb497226c93b9da7",
"sha256:15b26ddf78d57f1d143bdf32e820fd8935d36abe8a25eb9ec0b5a71c82eb3895",
"sha256:1872d01ac8c618a8da634e232f24793883d6e456a66593135aeafe3784b0848d",
"sha256:187d18082694a29005ba2944c882344b6748d5be69e3a89bf3cc9d878e548d5a",
"sha256:1b2919306936ac6efb3aed1fbf81039f7087ddadb3160882a57ee2ff74fd2382",
"sha256:232ac332403e37e4a03d209a3f92ed9071f7d3dbda70e2a5e9cff1c4ba9f0678",
"sha256:23e8565ab7ff33218530bc817922fae827420f143479b753104ab801145b1d5b",
"sha256:24817cb02cbef7cd499f7c9a2735286b4782bd47a5b3516a0e84c50eab44b98e",
"sha256:249c6470a2b60935bafd1d1d13cd613f8cd8388d53461c67397ee6a0f5dce741",
"sha256:24a91a981f185721542a0b7c92e9054b7ab4fea0508a795846bc5b0abf8118d4",
"sha256:2502dd2a736c879c0f0d3e2161e74d9907231e25d35794584b1ca5284e43f596",
"sha256:250c9eb0f4600361dd80d46112213dff2286231d92d3e52af1e5a6083d10cad9",
"sha256:278c296c6f96fa686d74eb449ea1697f3c03dc28b75f873b65b5201806346a69",
"sha256:2935ffc78db9645cb2086c2f8f4cfd23d9b73cc0dc80334bc30aac6f03f68f8c",
"sha256:2f4a0033ce9a76e391542c182f0d48d084855b5fcba5010f707c8e8c34663d77",
"sha256:30a85aed0b864ac88309b7d94be09f6046c834ef60762a8833b660139cfbad13",
"sha256:380c4bde80bce25c6e4f77b19386f5ec9db230df9f2f2ac1e5ad7af2caa70459",
"sha256:3ae38d325b512f63f8da31f826e6cb6c367336f95e418137286ba362925c877e",
"sha256:3b447982ad46348c02cb90d230b75ac34e9886273df3a93eec0539308a6296d7",
"sha256:3debd1150027933210c2fc321527c2299118aa929c2f5a0a80ab6953e3bd1908",
"sha256:4162918ef3098851fcd8a628bf9b6a98d10c380725df9e04caf5ca6dd48c847a",
"sha256:468d2a840567b13a590e67dd276c570f8de00ed767ecc611994c301d0f8c014f",
"sha256:4cc152c5dd831641e995764f9f0b6589519f6f5123258ccaca8c6d34572fefa8",
"sha256:542da1178c1c6af8873e143910e2269add130a299c9106eef2594e15dae5e482",
"sha256:557b21a44ceac6c6b9773bc65aa1b4cc3e248a5ad2f5b914b91579a32e22204d",
"sha256:5707a746c6083a3a74b46b3a631d78d129edab06195a92a8ece755aac25a3f3d",
"sha256:588245972aca710b5b68802c8cad9edaa98589b1b42ad2b53accd6910dad3545",
"sha256:5adf257bd58c1b8632046bbe43ee38c04e1038e9d37de9c57a94d6bd6ce5da34",
"sha256:619d1c96099be5823db34fe89e2582b336b5b074a7f47f819d6b3a57ff7bdb86",
"sha256:63563193aec44bce707e0c5ca64ff69fa72ed7cf34ce6e11d5127555756fd2f6",
"sha256:67b8cc9574bb518ec76dc8e705d4c39ae78bb96237cb533edac149352c1f39fe",
"sha256:6a685067d05e46641d5d1623d7c7fdf15a357546cbb2f71b0ebde91b175ffc3e",
"sha256:70f1d09c0d7748b73290b29219e854b3207aea922f839437870d8cc2168e31cc",
"sha256:750b446b2ffce1739e8578576092179160f6d26bd5e23eb1789c4d64d5af7dc7",
"sha256:7966951325782121e67c81299a031f4c115615e68046f79b85856b86ebffc4cd",
"sha256:7b8b8bf1189b3ba9b8de5c8db4d541b406611a71a955bbbd7385bbc45fcb786c",
"sha256:7f5d10bae5d78e4551b7be7a9b29643a95aded9d0f602aa2ba584f0388e7a557",
"sha256:805dfea4ca10411a5296bcc75638017215a93ffb584c9e344731eef0dcfb026a",
"sha256:81bf654678e575403736b85ba3a7867e31c2c30a69bc57fe88e3ace52fb17b89",
"sha256:82eb849f085624f6a607538ee7b83a6d8126df6d2f7d3b319cb837b289123078",
"sha256:85a32721ddde63c9df9ebb0d2045b9691d9750cb139c161c80e500d210f5e26e",
"sha256:86d1f65ac145e2c9ed71d8ffb1905e9bba3a91ae29ba55b4c46ae6fc31d7c0d4",
"sha256:86f63face3a527284f7bb8a9d4f78988e3c06823f7bea2bd6f0e0e9298ca0403",
"sha256:8eaf82f0eccd1505cf39a45a6bd0a8cf1c70dcfc30dba338207a969d91b965c0",
"sha256:93aa7eef6ee71c629b51ef873991d6911b906d7312c6e8e99790c0f33c576f89",
"sha256:96c2b49eb6a72c0e4991d62406e365d87067ca14c1a729a870d22354e6f68115",
"sha256:9cf3126b85822c4e53aa28c7ec9869b924d6fcfb76e77a45c44b83d91afd74f9",
"sha256:9fe359b2e3a7729010060fbca442ca225280c16e923b37db0e955ac2a2b72a05",
"sha256:a0ac5e7015a5920cfce654c06618ec40c33e12801711da6b4258af59a8eff00a",
"sha256:a3f93dab657839dfa61025056606600a11d0b696d79386f974e459a3fbc568ec",
"sha256:a4b71f4d1765639372a3b32d2638197f5cd5221b19531f9245fcc9ee62d38f56",
"sha256:aae32c93e0f64469f74ccc730a7cb21c7610af3a775157e50bbd38f816536b38",
"sha256:aaf7b34c5bc56b38c931a54f7952f1ff0ae77a2e82496583b247f7c969eb1479",
"sha256:abecce40dfebbfa6abf8e324e1860092eeca6f7375c8c4e655a8afb61af58f2c",
"sha256:abf0d9f45ea5fb95051c8bfe43cb40cda383772f7e5023a83cc481ca2604d74e",
"sha256:ac71b2977fb90c35d41c9453116e283fac47bb9096ad917b8819ca8b943abecd",
"sha256:ada214c6fa40f8d800e575de6b91a40d0548139e5dc457d2ebb61470abf50186",
"sha256:b09719a17a2301178fac4470d54b1680b18a5048b481cb8890e1ef820cb80455",
"sha256:b1121de0e9d6e6ca08289583d7491e7fcb18a439305b34a30b20d8215922d43c",
"sha256:b3b2316b25644b23b54a6f6401074cebcecd1244c0b8e80111c9a3f1c8e83d65",
"sha256:b3d9b48ee6e3967b7901c052b670c7dda6deb812c309439adaffdec55c6d7b78",
"sha256:b5bcf60a228acae568e9911f410f9d9e0d43197d030ae5799e20dca8df588287",
"sha256:b8f3307af845803fb0b060ab76cf6dd3a13adc15b6b451f54281d25911eb92df",
"sha256:c2af80fb58f0f24b3f3adcb9148e6203fa67dd3f61c4af146ecad033024dde43",
"sha256:c350354efb159b8767a6244c166f66e67506e06c8924ed74669b2c70bc8735b1",
"sha256:c5a74c359b2d47d26cdbbc7845e9662d6b08a1e915eb015d044729e92e7050b7",
"sha256:c71f16da1ed8949774ef79f4a0260d28b83b3a50c6576f8f4f0288d109777989",
"sha256:d47ecf253780c90ee181d4d871cd655a789da937454045b17b5798da9393901a",
"sha256:d7eff0f27edc5afa9e405f7165f85a6d782d308f3b6b9d96016c010597958e63",
"sha256:d97d85fa63f315a8bdaba2af9a6a686e0eceab77b3089af45133252618e70884",
"sha256:db756e48f9c5c607b5e33dd36b1d5872d0422e960145b08ab0ec7fd420e9d649",
"sha256:dc45229747b67ffc441b3de2f3ae5e62877a282ea828a5bdb67883c4ee4a8810",
"sha256:e0fc42822278451bc13a2e8626cf2218ba570f27856b536e00cfa53099724828",
"sha256:e39c7eb31e3f5b1f88caff88bcff1b7f8334975b46f6ac6e9fc725d829bc35d4",
"sha256:e46cd37076971c1040fc8c41273a8b3e2c624ce4f2be3f5dfcb7a430c1d3acc2",
"sha256:e5c1502d4ace69a179305abb3f0bb6141cbe4714bc9b31d427329a95acfc8bdd",
"sha256:edfe077ab09442d4ef3c52cb1f9dab89bff02f4524afc0acf2d46be17dc479f5",
"sha256:effe5406c9bd748a871dbcaf3ac69167c38d72db8c9baf3ff954c344f31c4cbe",
"sha256:f0d1e3732768fecb052d90d62b220af62ead5748ac51ef61e7b32c266cac9293",
"sha256:f5969baeaea61c97efa706b9b107dcba02784b1601c74ac84f2a532ea079403e",
"sha256:f8888e31e3a85943743f8fc15e71536bda1c81d5aa36d014a3c0c44481d7db6e",
"sha256:fc52b79d83a3fe3a360902d3f5d79073a993597d48114c29485e9431092905d8"
],
"markers": "python_full_version >= '3.7.0'",
"version": "==3.2.0"
"version": "==3.3.0"
},
"click": {
"hashes": [
@ -395,11 +400,11 @@
},
"markdown": {
"hashes": [
"sha256:225c6123522495d4119a90b3a3ba31a1e87a70369e03f14799ea9c0d7183a3d6",
"sha256:a4c1b65c0957b4bd9e7d86ddc7b3c9868fb9670660f6f99f6d1bca8954d5a941"
"sha256:4afb124395ce5fc34e6d9886dab977fd9ae987fc6e85689f08278cf0c69d4bf3",
"sha256:a807eb2e4778d9156c8f07876c6e4d50b5494c5665c4834f67b06459dfd877b3"
],
"markers": "python_version >= '3.7'",
"version": "==3.4.4"
"markers": "python_version >= '3.8'",
"version": "==3.5"
},
"markupsafe": {
"hashes": [
@ -483,12 +488,22 @@
"markers": "python_version >= '3.7'",
"version": "==1.5.3"
},
"mkdocs-autolinks-plugin": {
"hashes": [
"sha256:445ddb9b417b7795856c30801bb430773186c1daf210bdeecf8305f55a47d151",
"sha256:5c6c17f6649b68e79a9ef0b2648d59f3072e18002b90ee1586a64c505f11ab12"
],
"index": "pypi",
"markers": "python_version >= '3.4'",
"version": "==0.7.1"
},
"mkdocs-git-committers-plugin-2": {
"hashes": [
"sha256:0bb5d71cdd9d43fec0dec16e52a9aad2784256b0fa6ef9bb0cceffc36c081ab3",
"sha256:921da26b3f4393e6c170279ac34089151dfc22cd29ec4fbce3506218541685c8"
],
"index": "pypi",
"markers": "python_version >= '3.8' and python_version < '4'",
"version": "==1.2.0"
},
"mkdocs-git-revision-date-localized-plugin": {
@ -497,15 +512,17 @@
"sha256:7752edd7c4dcaa9383e9a5b6a4f729831a62d604b0c43b319331127720c6a2bf"
],
"index": "pypi",
"markers": "python_version >= '3.6'",
"version": "==1.2.0"
},
"mkdocs-material": {
"hashes": [
"sha256:8651ff451f84681df9d2e3388906eee63c866576d98d6bb542826f83a091b289",
"sha256:d53b17d058e70efd04c281f9b384ca10fb1f0bfecfe85dacdadad891bb826e3d"
"sha256:09665e60df7ee9e5ff3a54af173f6d45be718b1ee7dd962bcff3102b81fb0c14",
"sha256:78802035d5768a78139c84ad7dce0c6493e8f7dc4861727d36ed91d1520a54da"
],
"index": "pypi",
"version": "==9.4.2"
"markers": "python_version >= '3.8'",
"version": "==9.4.6"
},
"mkdocs-material-extensions": {
"hashes": [
@ -521,6 +538,7 @@
"sha256:6abf8f5a0fddb476bddd38faba28390fd8c41ab63b0d7202e3ce3deeb9ab98cb"
],
"index": "pypi",
"markers": "python_version >= '3.7'",
"version": "==0.7.1"
},
"mkdocs-redirects": {
@ -528,6 +546,7 @@
"sha256:9420066d70e2a6bb357adf86e67023dcdca1857f97f07c7fe450f8f1fb42f861"
],
"index": "pypi",
"markers": "python_version >= '3.6'",
"version": "==1.2.1"
},
"mkdocs-rss-plugin": {
@ -536,15 +555,16 @@
"sha256:475bf4ea05cbe786af38d519b55352b1b2eb87597ad680fcbc309056864ed5c4"
],
"index": "pypi",
"markers": "python_version >= '3.8' and python_version < '4'",
"version": "==1.8.0"
},
"packaging": {
"hashes": [
"sha256:994793af429502c4ea2ebf6bf664629d07c1a9fe974af92966e4b8d2df7edc61",
"sha256:a392980d2b6cffa644431898be54b0045151319d1e7ec34f0cfed48767dd334f"
"sha256:048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5",
"sha256:8c491190033a9af7e1d931d0b5dacc2ef47509b34dd0de67ed209b5203fc88c7"
],
"markers": "python_version >= '3.7'",
"version": "==23.1"
"version": "==23.2"
},
"paginate": {
"hashes": [
@ -618,15 +638,16 @@
"sha256:fd2a5403a75b54661182b75ec6132437a181209b901446ee5724b589af8edef1"
],
"index": "pypi",
"markers": "python_version >= '3.8'",
"version": "==10.0.1"
},
"platformdirs": {
"hashes": [
"sha256:b45696dab2d7cc691a3226759c0d3b00c47c8b6e293d96f6436f733303f77f6d",
"sha256:d7c24979f292f916dc9cbf8648319032f551ea8c49a4c9bf2fb556a02070ec1d"
"sha256:cf8ee52a3afdb965072dcc652433e0c7e3e40cf5ea1477cd4b3b1d2eb75495b3",
"sha256:e9d171d00af68be50e9202731309c4e658fd8bc76f55c11c7dd760d023bda68e"
],
"markers": "python_version >= '3.7'",
"version": "==3.10.0"
"version": "==3.11.0"
},
"pycparser": {
"hashes": [
@ -732,97 +753,97 @@
},
"regex": {
"hashes": [
"sha256:0085da0f6c6393428bf0d9c08d8b1874d805bb55e17cb1dfa5ddb7cfb11140bf",
"sha256:06c57e14ac723b04458df5956cfb7e2d9caa6e9d353c0b4c7d5d54fcb1325c46",
"sha256:09b7f4c66aa9d1522b06e31a54f15581c37286237208df1345108fcf4e050c18",
"sha256:0c59122ceccb905a941fb23b087b8eafc5290bf983ebcb14d2301febcbe199c7",
"sha256:1005c60ed7037be0d9dea1f9c53cc42f836188227366370867222bda4c3c6bd7",
"sha256:14898830f0a0eb67cae2bbbc787c1a7d6e34ecc06fbd39d3af5fe29a4468e2c9",
"sha256:14dc6f2d88192a67d708341f3085df6a4f5a0c7b03dec08d763ca2cd86e9f559",
"sha256:1e7d84d64c84ad97bf06f3c8cb5e48941f135ace28f450d86af6b6512f1c9a71",
"sha256:2162ae2eb8b079622176a81b65d486ba50b888271302190870b8cc488587d280",
"sha256:22283c769a7b01c8ac355d5be0715bf6929b6267619505e289f792b01304d898",
"sha256:239c3c2a339d3b3ddd51c2daef10874410917cd2b998f043c13e2084cb191684",
"sha256:293352710172239bf579c90a9864d0df57340b6fd21272345222fb6371bf82b3",
"sha256:2ae54a338191e1356253e7883d9d19f8679b6143703086245fb14d1f20196be9",
"sha256:2e73e5243af12d9cd6a9d6a45a43570dbe2e5b1cdfc862f5ae2b031e44dd95a8",
"sha256:2e9216e0d2cdce7dbc9be48cb3eacb962740a09b011a116fd7af8c832ab116ca",
"sha256:3026cbcf11d79095a32d9a13bbc572a458727bd5b1ca332df4a79faecd45281c",
"sha256:3611576aff55918af2697410ff0293d6071b7e00f4b09e005d614686ac4cd57c",
"sha256:3ae646c35cb9f820491760ac62c25b6d6b496757fda2d51be429e0e7b67ae0ab",
"sha256:3b8e6ea6be6d64104d8e9afc34c151926f8182f84e7ac290a93925c0db004bfd",
"sha256:3d370ff652323c5307d9c8e4c62efd1956fb08051b0e9210212bc51168b4ff56",
"sha256:3f7454aa427b8ab9101f3787eb178057c5250478e39b99540cfc2b889c7d0586",
"sha256:40f029d73b10fac448c73d6eb33d57b34607f40116e9f6e9f0d32e9229b147d7",
"sha256:423adfa872b4908843ac3e7a30f957f5d5282944b81ca0a3b8a7ccbbfaa06103",
"sha256:4873ef92e03a4309b3ccd8281454801b291b689f6ad45ef8c3658b6fa761d7ac",
"sha256:48c640b99213643d141550326f34f0502fedb1798adb3c9eb79650b1ecb2f177",
"sha256:4ae594c66f4a7e1ea67232a0846649a7c94c188d6c071ac0210c3e86a5f92109",
"sha256:4b694430b3f00eb02c594ff5a16db30e054c1b9589a043fe9174584c6efa8033",
"sha256:51d8ea2a3a1a8fe4f67de21b8b93757005213e8ac3917567872f2865185fa7fb",
"sha256:54de2619f5ea58474f2ac211ceea6b615af2d7e4306220d4f3fe690c91988a61",
"sha256:551ad543fa19e94943c5b2cebc54c73353ffff08228ee5f3376bd27b3d5b9800",
"sha256:5543c055d8ec7801901e1193a51570643d6a6ab8751b1f7dd9af71af467538bb",
"sha256:5cd9cd7170459b9223c5e592ac036e0704bee765706445c353d96f2890e816c8",
"sha256:5ec4b3f0aebbbe2fc0134ee30a791af522a92ad9f164858805a77442d7d18570",
"sha256:67ecd894e56a0c6108ec5ab1d8fa8418ec0cff45844a855966b875d1039a2e34",
"sha256:6ab2ed84bf0137927846b37e882745a827458689eb969028af8032b1b3dac78e",
"sha256:704f63b774218207b8ccc6c47fcef5340741e5d839d11d606f70af93ee78e4d4",
"sha256:7098c524ba9f20717a56a8d551d2ed491ea89cbf37e540759ed3b776a4f8d6eb",
"sha256:7aed90a72fc3654fba9bc4b7f851571dcc368120432ad68b226bd593f3f6c0b7",
"sha256:7ce606c14bb195b0e5108544b540e2c5faed6843367e4ab3deb5c6aa5e681208",
"sha256:7eb95fe8222932c10d4436e7a6f7c99991e3fdd9f36c949eff16a69246dee2dc",
"sha256:80b80b889cb767cc47f31d2b2f3dec2db8126fbcd0cff31b3925b4dc6609dcdb",
"sha256:82cd0a69cd28f6cc3789cc6adeb1027f79526b1ab50b1f6062bbc3a0ccb2dbc3",
"sha256:83215147121e15d5f3a45d99abeed9cf1fe16869d5c233b08c56cdf75f43a504",
"sha256:88900f521c645f784260a8d346e12a1590f79e96403971241e64c3a265c8ecdb",
"sha256:91129ff1bb0619bc1f4ad19485718cc623a2dc433dff95baadbf89405c7f6b57",
"sha256:920974009fb37b20d32afcdf0227a2e707eb83fe418713f7a8b7de038b870d0b",
"sha256:9233ac249b354c54146e392e8a451e465dd2d967fc773690811d3a8c240ac601",
"sha256:941460db8fe3bd613db52f05259c9336f5a47ccae7d7def44cc277184030a116",
"sha256:942f8b1f3b223638b02df7df79140646c03938d488fbfb771824f3d05fc083a8",
"sha256:964b16dcc10c79a4a2be9f1273fcc2684a9eedb3906439720598029a797b46e6",
"sha256:9691a549c19c22d26a4f3b948071e93517bdf86e41b81d8c6ac8a964bb71e5a6",
"sha256:96979d753b1dc3b2169003e1854dc67bfc86edf93c01e84757927f810b8c3c93",
"sha256:987b9ac04d0b38ef4f89fbc035e84a7efad9cdd5f1e29024f9289182c8d99e09",
"sha256:988631b9d78b546e284478c2ec15c8a85960e262e247b35ca5eaf7ee22f6050a",
"sha256:9a96edd79661e93327cfeac4edec72a4046e14550a1d22aa0dd2e3ca52aec921",
"sha256:9b7408511fca48a82a119d78a77c2f5eb1b22fe88b0d2450ed0756d194fe7a9a",
"sha256:9dd6082f4e2aec9b6a0927202c85bc1b09dcab113f97265127c1dc20e2e32495",
"sha256:a2ad5add903eb7cdde2b7c64aaca405f3957ab34f16594d2b78d53b8b1a6a7d6",
"sha256:a8c65c17aed7e15a0c824cdc63a6b104dfc530f6fa8cb6ac51c437af52b481c7",
"sha256:aadf28046e77a72f30dcc1ab185639e8de7f4104b8cb5c6dfa5d8ed860e57236",
"sha256:b076da1ed19dc37788f6a934c60adf97bd02c7eea461b73730513921a85d4235",
"sha256:b2aeab3895d778155054abea5238d0eb9a72e9242bd4b43f42fd911ef9a13470",
"sha256:b82edc98d107cbc7357da7a5a695901b47d6eb0420e587256ba3ad24b80b7d0b",
"sha256:b8a0ccc8f2698f120e9e5742f4b38dc944c38744d4bdfc427616f3a163dd9de5",
"sha256:b993b6f524d1e274a5062488a43e3f9f8764ee9745ccd8e8193df743dbe5ee61",
"sha256:bb34d1605f96a245fc39790a117ac1bac8de84ab7691637b26ab2c5efb8f228c",
"sha256:bd3366aceedf274f765a3a4bc95d6cd97b130d1dda524d8f25225d14123c01db",
"sha256:c12f6f67495ea05c3d542d119d270007090bad5b843f642d418eb601ec0fa7be",
"sha256:c662a4cbdd6280ee56f841f14620787215a171c4e2d1744c9528bed8f5816c96",
"sha256:c884d1a59e69e03b93cf0dfee8794c63d7de0ee8f7ffb76e5f75be8131b6400a",
"sha256:ca339088839582d01654e6f83a637a4b8194d0960477b9769d2ff2cfa0fa36d2",
"sha256:cd2b6c5dfe0929b6c23dde9624483380b170b6e34ed79054ad131b20203a1a63",
"sha256:ce0f9fbe7d295f9922c0424a3637b88c6c472b75eafeaff6f910494a1fa719ef",
"sha256:cf0633e4a1b667bfe0bb10b5e53fe0d5f34a6243ea2530eb342491f1adf4f739",
"sha256:cf9273e96f3ee2ac89ffcb17627a78f78e7516b08f94dc435844ae72576a276e",
"sha256:d909b5a3fff619dc7e48b6b1bedc2f30ec43033ba7af32f936c10839e81b9217",
"sha256:d9b6627408021452dcd0d2cdf8da0534e19d93d070bfa8b6b4176f99711e7f90",
"sha256:de35342190deb7b866ad6ba5cbcccb2d22c0487ee0cbb251efef0843d705f0d4",
"sha256:e51c80c168074faa793685656c38eb7a06cbad7774c8cbc3ea05552d615393d8",
"sha256:e6bd1e9b95bc5614a7a9c9c44fde9539cba1c823b43a9f7bc11266446dd568e3",
"sha256:e7a9aaa5a1267125eef22cef3b63484c3241aaec6f48949b366d26c7250e0357",
"sha256:e951d1a8e9963ea51efd7f150450803e3b95db5939f994ad3d5edac2b6f6e2b4",
"sha256:e9941a4ada58f6218694f382e43fdd256e97615db9da135e77359da257a7168b",
"sha256:f0640913d2c1044d97e30d7c41728195fc37e54d190c5385eacb52115127b882",
"sha256:f0ccf3e01afeb412a1a9993049cb160d0352dba635bbca7762b2dc722aa5742a",
"sha256:f2181c20ef18747d5f4a7ea513e09ea03bdd50884a11ce46066bb90fe4213675",
"sha256:f2200e00b62568cfd920127782c61bc1c546062a879cdc741cfcc6976668dfcf",
"sha256:fcbdc5f2b0f1cd0f6a56cdb46fe41d2cce1e644e3b68832f3eeebc5fb0f7712e"
"sha256:00ba3c9818e33f1fa974693fb55d24cdc8ebafcb2e4207680669d8f8d7cca79a",
"sha256:00e871d83a45eee2f8688d7e6849609c2ca2a04a6d48fba3dff4deef35d14f07",
"sha256:06e9abc0e4c9ab4779c74ad99c3fc10d3967d03114449acc2c2762ad4472b8ca",
"sha256:0b9ac09853b2a3e0d0082104036579809679e7715671cfbf89d83c1cb2a30f58",
"sha256:0d47840dc05e0ba04fe2e26f15126de7c755496d5a8aae4a08bda4dd8d646c54",
"sha256:0f649fa32fe734c4abdfd4edbb8381c74abf5f34bc0b3271ce687b23729299ed",
"sha256:107ac60d1bfdc3edb53be75e2a52aff7481b92817cfdddd9b4519ccf0e54a6ff",
"sha256:11175910f62b2b8c055f2b089e0fedd694fe2be3941b3e2633653bc51064c528",
"sha256:12bd4bc2c632742c7ce20db48e0d99afdc05e03f0b4c1af90542e05b809a03d9",
"sha256:16f8740eb6dbacc7113e3097b0a36065a02e37b47c936b551805d40340fb9971",
"sha256:1c0e8fae5b27caa34177bdfa5a960c46ff2f78ee2d45c6db15ae3f64ecadde14",
"sha256:2c54e23836650bdf2c18222c87f6f840d4943944146ca479858404fedeb9f9af",
"sha256:3367007ad1951fde612bf65b0dffc8fd681a4ab98ac86957d16491400d661302",
"sha256:36362386b813fa6c9146da6149a001b7bd063dabc4d49522a1f7aa65b725c7ec",
"sha256:39807cbcbe406efca2a233884e169d056c35aa7e9f343d4e78665246a332f597",
"sha256:39cdf8d141d6d44e8d5a12a8569d5a227f645c87df4f92179bd06e2e2705e76b",
"sha256:3b2c3502603fab52d7619b882c25a6850b766ebd1b18de3df23b2f939360e1bd",
"sha256:3ccf2716add72f80714b9a63899b67fa711b654be3fcdd34fa391d2d274ce767",
"sha256:3fef4f844d2290ee0ba57addcec17eec9e3df73f10a2748485dfd6a3a188cc0f",
"sha256:4023e2efc35a30e66e938de5aef42b520c20e7eda7bb5fb12c35e5d09a4c43f6",
"sha256:4a3ee019a9befe84fa3e917a2dd378807e423d013377a884c1970a3c2792d293",
"sha256:4a8bf76e3182797c6b1afa5b822d1d5802ff30284abe4599e1247be4fd6b03be",
"sha256:4a992f702c9be9c72fa46f01ca6e18d131906a7180950958f766c2aa294d4b41",
"sha256:4c34d4f73ea738223a094d8e0ffd6d2c1a1b4c175da34d6b0de3d8d69bee6bcc",
"sha256:4cd1bccf99d3ef1ab6ba835308ad85be040e6a11b0977ef7ea8c8005f01a3c29",
"sha256:4ef80829117a8061f974b2fda8ec799717242353bff55f8a29411794d635d964",
"sha256:58837f9d221744d4c92d2cf7201c6acd19623b50c643b56992cbd2b745485d3d",
"sha256:5a8f91c64f390ecee09ff793319f30a0f32492e99f5dc1c72bc361f23ccd0a9a",
"sha256:5addc9d0209a9afca5fc070f93b726bf7003bd63a427f65ef797a931782e7edc",
"sha256:6239d4e2e0b52c8bd38c51b760cd870069f0bdf99700a62cd509d7a031749a55",
"sha256:66e2fe786ef28da2b28e222c89502b2af984858091675044d93cb50e6f46d7af",
"sha256:69c0771ca5653c7d4b65203cbfc5e66db9375f1078689459fe196fe08b7b4930",
"sha256:6ac965a998e1388e6ff2e9781f499ad1eaa41e962a40d11c7823c9952c77123e",
"sha256:6c56c3d47da04f921b73ff9415fbaa939f684d47293f071aa9cbb13c94afc17d",
"sha256:6f85739e80d13644b981a88f529d79c5bdf646b460ba190bffcaf6d57b2a9863",
"sha256:706e7b739fdd17cb89e1fbf712d9dc21311fc2333f6d435eac2d4ee81985098c",
"sha256:741ba2f511cc9626b7561a440f87d658aabb3d6b744a86a3c025f866b4d19e7f",
"sha256:7434a61b158be563c1362d9071358f8ab91b8d928728cd2882af060481244c9e",
"sha256:76066d7ff61ba6bf3cb5efe2428fc82aac91802844c022d849a1f0f53820502d",
"sha256:7979b834ec7a33aafae34a90aad9f914c41fd6eaa8474e66953f3f6f7cbd4368",
"sha256:7eece6fbd3eae4a92d7c748ae825cbc1ee41a89bb1c3db05b5578ed3cfcfd7cb",
"sha256:7ef1e014eed78ab650bef9a6a9cbe50b052c0aebe553fb2881e0453717573f52",
"sha256:81dce2ddc9f6e8f543d94b05d56e70d03a0774d32f6cca53e978dc01e4fc75b8",
"sha256:82fcc1f1cc3ff1ab8a57ba619b149b907072e750815c5ba63e7aa2e1163384a4",
"sha256:8d1f21af4c1539051049796a0f50aa342f9a27cde57318f2fc41ed50b0dbc4ac",
"sha256:90a79bce019c442604662d17bf69df99090e24cdc6ad95b18b6725c2988a490e",
"sha256:9145f092b5d1977ec8c0ab46e7b3381b2fd069957b9862a43bd383e5c01d18c2",
"sha256:91dc1d531f80c862441d7b66c4505cd6ea9d312f01fb2f4654f40c6fdf5cc37a",
"sha256:979c24cbefaf2420c4e377ecd1f165ea08cc3d1fbb44bdc51bccbbf7c66a2cb4",
"sha256:994645a46c6a740ee8ce8df7911d4aee458d9b1bc5639bc968226763d07f00fa",
"sha256:9b98b7681a9437262947f41c7fac567c7e1f6eddd94b0483596d320092004533",
"sha256:9c6b4d23c04831e3ab61717a707a5d763b300213db49ca680edf8bf13ab5d91b",
"sha256:9c6d0ced3c06d0f183b73d3c5920727268d2201aa0fe6d55c60d68c792ff3588",
"sha256:9fd88f373cb71e6b59b7fa597e47e518282455c2734fd4306a05ca219a1991b0",
"sha256:a8f4e49fc3ce020f65411432183e6775f24e02dff617281094ba6ab079ef0915",
"sha256:a9e908ef5889cda4de038892b9accc36d33d72fb3e12c747e2799a0e806ec841",
"sha256:ad08a69728ff3c79866d729b095872afe1e0557251da4abb2c5faff15a91d19a",
"sha256:adbccd17dcaff65704c856bd29951c58a1bd4b2b0f8ad6b826dbd543fe740988",
"sha256:b0c7d2f698e83f15228ba41c135501cfe7d5740181d5903e250e47f617eb4292",
"sha256:b3ab05a182c7937fb374f7e946f04fb23a0c0699c0450e9fb02ef567412d2fa3",
"sha256:b6104f9a46bd8743e4f738afef69b153c4b8b592d35ae46db07fc28ae3d5fb7c",
"sha256:ba7cd6dc4d585ea544c1412019921570ebd8a597fabf475acc4528210d7c4a6f",
"sha256:bc72c231f5449d86d6c7d9cc7cd819b6eb30134bb770b8cfdc0765e48ef9c420",
"sha256:bce8814b076f0ce5766dc87d5a056b0e9437b8e0cd351b9a6c4e1134a7dfbda9",
"sha256:be5e22bbb67924dea15039c3282fa4cc6cdfbe0cbbd1c0515f9223186fc2ec5f",
"sha256:be6b7b8d42d3090b6c80793524fa66c57ad7ee3fe9722b258aec6d0672543fd0",
"sha256:bfe50b61bab1b1ec260fa7cd91106fa9fece57e6beba05630afe27c71259c59b",
"sha256:bff507ae210371d4b1fe316d03433ac099f184d570a1a611e541923f78f05037",
"sha256:c148bec483cc4b421562b4bcedb8e28a3b84fcc8f0aa4418e10898f3c2c0eb9b",
"sha256:c15ad0aee158a15e17e0495e1e18741573d04eb6da06d8b84af726cfc1ed02ee",
"sha256:c2169b2dcabf4e608416f7f9468737583ce5f0a6e8677c4efbf795ce81109d7c",
"sha256:c55853684fe08d4897c37dfc5faeff70607a5f1806c8be148f1695be4a63414b",
"sha256:c65a3b5330b54103e7d21cac3f6bf3900d46f6d50138d73343d9e5b2900b2353",
"sha256:c7964c2183c3e6cce3f497e3a9f49d182e969f2dc3aeeadfa18945ff7bdd7051",
"sha256:cc3f1c053b73f20c7ad88b0d1d23be7e7b3901229ce89f5000a8399746a6e039",
"sha256:ce615c92d90df8373d9e13acddd154152645c0dc060871abf6bd43809673d20a",
"sha256:d29338556a59423d9ff7b6eb0cb89ead2b0875e08fe522f3e068b955c3e7b59b",
"sha256:d8a993c0a0ffd5f2d3bda23d0cd75e7086736f8f8268de8a82fbc4bd0ac6791e",
"sha256:d9c727bbcf0065cbb20f39d2b4f932f8fa1631c3e01fcedc979bd4f51fe051c5",
"sha256:dac37cf08fcf2094159922edc7a2784cfcc5c70f8354469f79ed085f0328ebdf",
"sha256:dd829712de97753367153ed84f2de752b86cd1f7a88b55a3a775eb52eafe8a94",
"sha256:e54ddd0bb8fb626aa1f9ba7b36629564544954fff9669b15da3610c22b9a0991",
"sha256:e77c90ab5997e85901da85131fd36acd0ed2221368199b65f0d11bca44549711",
"sha256:ebedc192abbc7fd13c5ee800e83a6df252bec691eb2c4bedc9f8b2e2903f5e2a",
"sha256:ef71561f82a89af6cfcbee47f0fabfdb6e63788a9258e913955d89fdd96902ab",
"sha256:f0a47efb1dbef13af9c9a54a94a0b814902e547b7f21acb29434504d18f36e3a",
"sha256:f4f2ca6df64cbdd27f27b34f35adb640b5d2d77264228554e68deda54456eb11",
"sha256:fb02e4257376ae25c6dd95a5aec377f9b18c09be6ebdefa7ad209b9137b73d48"
],
"markers": "python_version >= '3.6'",
"version": "==2023.8.8"
"markers": "python_version >= '3.7'",
"version": "==2023.10.3"
},
"requests": {
"hashes": [
@ -866,11 +887,11 @@
},
"urllib3": {
"hashes": [
"sha256:13abf37382ea2ce6fb744d4dad67838eec857c9f4f57009891805e0b5e123594",
"sha256:ef16afa8ba34a1f989db38e1dbbe0c302e4289a47856990d0682e374563ce35e"
"sha256:7a7c7003b000adf9e7ca2a377c9688bbc54ed41b985789ed576570342a375cd2",
"sha256:b19e1a85d206b56d7df1d5e683df4a7725252a964e3993648dd0fb5a1c157564"
],
"markers": "python_version >= '3.7'",
"version": "==2.0.5"
"version": "==2.0.6"
},
"watchdog": {
"hashes": [

View File

@ -3,54 +3,82 @@
[![Hosted on pages.dev](https://img.shields.io/badge/hosted%20on-pages.dev-orange?style=flat-square&logo=cloudflare)](https://pages.dev)
[![GitLab last commit](https://img.shields.io/gitlab/last-commit/andreijiroh.dev/website?gitlab_url=https%3A%2F%2Fmau.dev&style=flat-square)](https://mau.dev/andreijiroh.dev/website/commits)
[![Staging builds on Read The Docs Community](https://readthedocs.org/projects/ajhalili2006/badge/?version=latest&style=flat-square)](https://readthedocs.org/projects/ajhalili2006/)
[![Docker CI](https://github.com/ajhalili2006/ajhalili2006.github.io/actions/workflows/docker.yml/badge.svg?event=schedule&style=flat-badge)](https://github.com/ajhalili2006/ajhalili2006.github.io/actions/workflows/docker.yml?query=event%3Aschedule)
[![pipeline status](https://mau.dev/andreijiroh.dev/website/badges/main/pipeline.svg?style=flat-square)](https://mau.dev/andreijiroh.dev/website/-/pipelines)
[![Docker CI](https://github.com/ajhalili2006/website/actions/workflows/docker.yml/badge.svg?event=schedule&style=flat-badge)](https://github.com/ajhalili2006/website/actions/workflows/docker.yml?query=event%3Aschedule)
[![GitLab CI status](https://mau.dev/andreijiroh.dev/website/badges/main/pipeline.svg?style=flat-square)](https://mau.dev/andreijiroh.dev/website/-/pipelines)
This is my sources for both [`andreijiroh.(eu.org|dev)`](https://andreijiroh.eu.org) and tilde userpages in Ctrl-C Club and ~vern,
built with Mkdocs + [Material theme](https://go.andreijiroh.eu.org/mkdocs-material) by [~squidfunk](https://go.andreijiroh.eu.org/squidfunk).
(Sources for Gemini version of the website is available at `gmi` directory.)
This is my sources for both [`andreijiroh.(eu.org|dev)`](https://andreijiroh.eu.org) and tilde userpages,
built with Mkdocs + [Material theme](https://go.andreijiroh.eu.org/mkdocs-material) by
[~squidfunk](https://github.com/squidfunk). Sources for Gemini version of the website is
available at `gmi` directory.
## Information for people wishing to use this repository
While this is fairly just static site (with CI configs and even Cloudflare Pages references)
and not licensed under the Zlib license ([context from Xe/site repo][zlib-chaos]), please don't
just fork this repo unless you know what you're REALLY doing.
[zlib-chaos]: https://github.com/Xe/site/blob/HEAD/README.md#information-for-people-wishing-to-use-this-code
If you're pretty serious, please keep several things in mind:
- You must heavily edit the Markdown content of the website. Make your own personal user manual and portfolio,
or heck even go nuts on the homepage.[^1]
- Blog posts I written in Gemini version are licensed under CC-BY-SA-4.0,
[as mentioned below](#legalese) unless specified otherwise.
But [for the love of god], please use your own blog posts when writing for
Gemini users instead.
- For the favicon, use your own profile picture or pick/make another one.
[for the love of god]: https://english.stackexchange.com/questions/351296/what-exactly-does-for-the-love-of-god-mean#351326
[^1]: Please keep it SFW, since you don't want to get that censored by the MTRCB, right?
**Looking for a template instead with same Mkdocs theme?** No problem! [I contributed one at lorebooks.wiki's GitHub org](https://github.com/lorebooks-wiki/mkdocs-material-template)
with some fine defaults, alongside a blog section if you prefer.
## Mirrors
Canonically developed at [mau.dev](https://mau.dev/andreijiroh.dev/website.git) where the deployments happen, with the following mirrors being maintained:
* GitHub: <https://github.com/ajhalili2006/ajhalili2006.github.io.git>, where Docker image builds happen
* Jetbrains Space (personal): <https://ajhalili2006.jetbrains.space/p/web/repositories/andreijiroh.dev/files/README.md>
* Sourcehut: <https://git.sr.ht/~ajhalili2006/tildeweb>
* GitHub: <https://github.com/ajhalili2006/website>, where Docker image builds happen
* Jetbrains Space (personal): <https://ajhalili2006.jetbrains.space/p/web/repositories/andreijiroh.dev> (repository clone URL: `git.jetbrains.space/ajhalili2006/web/andreijiroh.dev.git`)
* Sourcehut: <https://git.sr.ht/~ajhalili2006/web>
## Development
## Site Development
Use the clone links from either the canonical repository URL or its mirrors
[as mentioned above](#mirrors) or open this repo in a cloud development
environment using these links:
[![Open in Gitpod](https://img.shields.io/badge/open%20in-Gitpod-orange?style=flat-square&logo=gitpod)](https://gitpod.io/#https://mau.dev/andreijiroh.dev/website)
[![Open in Codespaces](https://img.shields.io/badge/open%20in-Codespaces-black?style=flat-square&logo=github)](https://codespaces.new/ajhalili2006/ajhalili2006.github.io)
### Building from source
```bash
# clone the repo
# pick one on the clone URLs
glab repo clone https://mau.dev/ajhalili2006/tildeverse-web
gh repo clone ajhalili2006/ajhalili2006.github.com
git clone git@git.sr.ht:~ajhalili2006/tildeweb
# maybe do this on a feature branch
git switch -c your-git-username/your-suggestion-here
# install deps via venv
python3 -m venv venv
source ./venv/bin/activate
pip3 install -r requirements.txt
# install deps via pipenv...
pipenv install
# ...or via pip3 with --user -flag (generated from "pipenv requirements" and sending its output
# to requirements.txt)
pip install -r requirements.txt --user
# preview site and edit in another session
mkdocs serve
nano markdown/path-to-file.md
mkdocs serve --watch overrides --watch-theme --livereload
```
# done?
git stage . && git commit --signoff
### Sending patches
```bash
# send patches via GitLab or GitHub through the CLI
glab auth login --host "https://mau.dev" # authenticate CLI
glab -R https://mau.dev/ajhalili2006/tildeverse-web mr create --allow-collaboration -b main
gh auth login # authenticate CLI, GitHub.com edition
glab -R https://mau.dev/andreijiroh.dev/website mr create --allow-collaboration -b main
gh -R ajhalili2006/tildeverse-web pr create # might automatically closes PR due to mirror status
# or via my public inbox on sourcehut
# see https://git-send-email.io for setup and guide
git config sendemail.to "~ajhalili2006/public-inbox@lists.sr.ht" # NOT my personal email
git config format.subjectPrefix "PATCH tildeweb" # identification in archives + builds.sr.ht
git config format.subjectPrefix "PATCH web" # identification in archives + builds.sr.ht
git config --global sendemail.annotate yes
git config --global format.signOff true # needed for compliance with Linux DCO
git send-email HEAD^
@ -63,9 +91,15 @@ Please be reminded that while this is a personal open-source project, please exp
times during pathc reviews and don't be disappointed when I disagree on stuff and chose not to merge
the patches for any reasons, including mental health breaks.
## License
## Legalese
Unless otherwise noted, source code is licensed under the MPl-2.0 while website content (text-only)
is under CC BY-SA 4.0
Unless otherwise noted, source code is licensed under the MPL-2.0 while website content (text-only)
is under CC BY-SA 4.0.
The only thing that's not covered by this is [the favicon version](markdown/assets/images/favicon.png) of my profile picture.
The only thing that's not covered by this is [the favicon version](markdown/assets/images/favicon.png)
of my (current) profile picture.
### Third-party code
* [OpenWeb Icons Set](https://iconduck.com/sets/openweb-icons-set) ([source code](https://github.com/pfefferle/openwebicons?ref=iconduck.com))- [SIL Open Font License 1.1](https://github.com/pfefferle/openwebicons/blob/main/License.txt)
* Upstream template code from Material for Mkdocs for overrides directory - MIT

View File

@ -5,17 +5,23 @@ TARGET_DIR=${TARGET_DIR:-"$PWD/public"}
FF_OFFLINE_MKDOCS_PLUGIN=${FF_OFFLINE_MKDOCS_PLUGIN:-"false"}
FF_ENABLE_COMMIT_DATA=${FF_ENABLE_COMMIT_DATA:-"true"}
FF_GENERATE_SOCIAL_CARDS=${FF_GENERATE_SOCIAL_CARDS:-"true"}
TARGET_BUILD_CONFIG=${1:-"mkdocs.yml"}
if [[ ! -d "$PWD/.venv" && $SKIP_VENV_SETUP == "" ]]; then
pipenv install -r requirements.txt
pipenv run -- mkdocs build -d "$TARGET_DIR"
if [[ ! -d "$TARGET_DIR" ]]; then
mkdir "$TARGET_DIR" -pv
fi
if [[ $SKIP_VENV_SETUP == "" ]] || [[ $CI == "" ]]; then
pipenv install --ignore-pipfile --deploy --verbose
pipenv run -- mkdocs build -d "$TARGET_DIR" -f ${TARGET_BUILD_CONFIG}
else
pip3 install -r requirements.txt --upgrade
mkdocs build -d "$TARGET_DIR"
pip3 install -r requirements.txt --upgrade --user
mkdocs build -d "$TARGET_DIR" -f ${TARGET_BUILD_CONFIG}
fi
mkdir "$TARGET_DIR/api"
git rev-parse HEAD > "$TARGET_DIR/api/commit"
cp "$TARGET_DIR/assets/images/favicon.png" "$TARGET_DIR/favicon.ico"
cp markdown/.well-known "$TARGET_DIR/.well-known" -rv
set +xe

View File

@ -1,7 +1,8 @@
#!/usr/bin/env bash
set -xe
PRIVATE_SSH_KEY=${PRIVATE_SSH_KEY:-"/run/secrets/passwordless"}
SOURCEHUT_USERNAME=${SOURCEHUT_PAGES_SUBDOMAIN:-"ajhalili2006"}
SOURCEHUT_PAGES_TOKEN=${SOURCEHUT_PAGES_TOKEN}
GEMINI_CUSTOM_DOMAIN=${GEMINI_CUSTOM_DOMAIN:-"gemini.andreijiroh.eu.org"}
if [[ $SOURCEHUT_PAGES_TOKEN == "" ]]; then
@ -11,13 +12,16 @@ fi
mkdir "gmi/api"
git rev-parse HEAD > "gmi/api/commit"
tar -C gmi -cvz . -f site.tar.gz
tar -C gmi -cvz . -f gemini-site.tar.gz
curl --oauth2-bearer "$SOURCEHUT_PAGES_TOKEN" \
-Fcontent=@site.tar.gz \
-Fcontent=@gemini-site.tar.gz \
-Fprotocol=GEMINI \
"https://pages.sr.ht/publish/${SOURCEHUT_USERNAME}.srht.site"
curl --oauth2-bearer "$SOURCEHUT_PAGES_TOKEN" \
-Fcontent=@site.tar.gz \
-Fcontent=@gemini-site.tar.gz \
-Fprotocol=GEMINI \
"https://pages.sr.ht/publish/${GEMINI_CUSTOM_DOMAIN}"
"https://pages.sr.ht/publish/${GEMINI_CUSTOM_DOMAIN}"
rsync -rP -e "ssh -i ${PRIVATE_SSH_KEY} -o StrictHostKeyChecking=no" gmi/ ajhalili2006@p.projectsegfau.lt:/home/ajhalili2006/public_gemini
rsync -rP -e "ssh -i ${PRIVATE_SSH_KEY} -o StrictHostKeyChecking=no" gmi/ ajhalili2006@s1.dimension.sh:/home/ajhalili2006/public_gemini

15
bin/setup-remotes.sh Normal file
View File

@ -0,0 +1,15 @@
#!/usr/bin/env bash
# URL prefixes for updating remote URLs
JETBRAINS_SPACE_REPO="git.jetbrains.space/ajhalili2006/web/andreijiroh.dev.git"
SOURCEHUT_GIT_REPO="git.sr.ht/~ajhalili2006/web"
GITHUB_REPO="github.com/ajhalili2006/ajhalili2006.github.io"
GITLAB_REPO="mau.dev/andreijiroh.dev/website"
useHttps() {
}
useSsh() {
}

View File

@ -1,20 +1,17 @@
# syntax=docker/dockerfile:1
FROM ghcr.io/hadolint/hadolint:latest-alpine AS hadolint-binary
# Since we're building against edge at risk, it is important to note
# that anything might go wrong.
FROM alpine:edge AS buildkit
# Instead of using Alpine base image and then installing Python from pkgs.al.o,
# we'll go with the official images instead.
FROM python:3.12-alpine AS buildkit
# Since hadolint isn't in the package repos for Alpine yet, we'll copying from the offical
# Docker image instead.
COPY --from=hadolint-binary /bin/hadolint /usr/bin/hadolint
COPY --from=ghcr.io/hadolint/hadolint:latest-alpine /bin/hadolint /usr/bin/hadolint
ENV PACKAGES=/usr/local/lib/python3.11/site-packages
ENV PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/.local/bin
ENV PYTHONDONTWRITEBYTECODE=1
COPY --from=hadolint-binary /bin/hadolint /usr/bin/hadolint
ENV PACKAGES=/usr/local/lib/python3.11/site-packages PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/root/.local/bin PYTHONDONTWRITEBYTECODE=1
LABEL org.opencontainers.image.description="GitLab CI image for custom mkdocs-material Docker image, alongside tools @ajhalili2006 use."
# https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#linux but for Alpine
# Also installs Doppler CLI for accessing secrets securely within CI
# hadolint ignore=DL3018,DL3013
RUN apk add --no-cache \
cairo-dev \
@ -25,10 +22,6 @@ RUN apk add --no-cache \
zlib-dev \
bash \
coreutils \
python3 \
py3-pip \
pipx \
py3-wheel \
shellcheck \
gcc \
libffi-dev \
@ -37,17 +30,19 @@ RUN apk add --no-cache \
npm \
yarn \
git \
git-email \
git-lfs \
git-fast-import \
openssh \
gnupg \
curl \
rsync \
&& curl -Ls --tlsv1.2 --proto "=https" --retry 3 https://cli.doppler.com/install.sh \
| sh
# The "--break-system-packages" is added so I don't need to do requirements.txt workaround,
# although I also consider using pipx if we wanted to.
# See also https://www.jeffgeerling.com/blog/2023/how-solve-error-externally-managed-environment-when-installing-pip3
RUN rm -rv /usr/lib/python3*/EXTERNALLY-MANAGED \
&& pip install --no-cache \
# See https://www.jeffgeerling.com/blog/2023/how-solve-error-externally-managed-environment-when-installing-pip3
# for context behind removing the EXTERNALLY-MANAGED file on distribution-built CPython binary releases
RUN pip install --no-cache \
mkdocs-material \
mkdocs-git-committers-plugin-2 \
mkdocs-git-revision-date-localized-plugin \
@ -56,7 +51,8 @@ RUN rm -rv /usr/lib/python3*/EXTERNALLY-MANAGED \
mkdocs-rss-plugin \
pillow \
cairosvg \
pipenv
pipenv \
pipx
# Trust directory, required for git >= 2.35.2
# Follows the docs for the Docker-based site build setup
@ -69,4 +65,4 @@ EXPOSE 8000
WORKDIR /docs
#COPY entrypoint.sh /usr/local/bin/entrypoint
CMD [ "mkdocs", "serve", "--dev-addr=0.0.0.0:8000" ]
CMD [ "mkdocs", "serve", "--dev-addr=0.0.0.0:8000" ]

View File

@ -1,11 +1,9 @@
# CI image for GitLab CI deploys
# Custom `mkdocs-material` CI image
This directory contains the necessary files to build a container image for the website deployments.
Builds on Alpine edge, mostly used by @ajhalili2006 to deploy
builds over GitLab Ci.
## How to build
## Build from source
Just run the script to build locally
```bash
./docker/build.sh
```
After cloning [Andrei Jiroh's website sources](https://mau.dev/andreijiroh.dev/website), you can run the `build.sh` script
(see script source for available options)

View File

@ -1,3 +1,6 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
# Canonical URI
Canonical: https://andreijiroh.eu.org/.well-known/security.txt
@ -17,3 +20,19 @@ Policy: https://andreijiroh.eu.org/security
Acknowledgments: https://andreijiroh.eu.org/security/#thanks
Expires: 2024-09-26T15:59:00.000Z
-----BEGIN PGP SIGNATURE-----
iQIzBAEBCgAdFiEETV5jF1jLnMRZQbHOZ7/JGz2hK+gFAmUYYfQACgkQZ7/JGz2h
K+iMzxAA61jw4SFVKroBHkO/uGThq1wWLPNRDchc1Fx6vQh6Z9TKCYNMgZ3T/Btn
ILZLg/R1lsgylOJdJihesYKFrVTMO3nxdptTSwh9I5avxCEHf8zn3LEHOSMdhO8O
u3cPHIvFw/EVTgdkYAj6UvzI9K9I+L7DaqEb5fOUuBXeQS/DQuvEs9nceCFEkQcq
pjAWjlLHO/ZrKgNRMgVZ+t8a/nxWXRBa7Y17hii9WxkgrMcnmFpius/U0yjn2ax0
gbYic/VesjVq67i4DaxmQNgGmZvvuIXyjyVJvVyUlSmBNj68gRd5vOx0XiEwtaIt
R/6YWSmVRGo3HuXwqX6LIjdyOEc9gv0TxozKIO3KzRYg44drhtt8PDK24+/KBXMn
xmE0InhF9Y5DCZDEfZ3g1IIlHxcfXnNKpbD7QAVv+J89rgn79jcsVPyVvGigkijH
LogCG6a9yvvOp6aK+EwioCh0F/f5ABTqZOzA6ZmVjO4xdrKmiQPbw/gSSzoT6SVL
fbGj7+n9KI+Fv+9nfeRTnL+lbwAh4cwSuIt8rdHMvQhFCvGCSUwqRRIEiKUD+X21
dKGt1Z52ySC8nuNfstg+MtspTv6X+Rz1XI1a26UMjYzBZIty+ZblM8YJkv7Cm34N
C/2qcB4pxMJsaEcrvpkUnhQZe30cLw0yjRQj6C0uggfLQMru1PI=
=xIeM
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,19 @@
# Canonical URI
Canonical: https://andreijiroh.eu.org/.well-known/security.txt
# Contact details
Contact: mailto:ajhalili2006@andreijiroh.eu.org
Contact: https://andreijiroh.eu.org/contact/security
Contact: https://keybase.io/ajhalili2006
Preferred-Languages: en
# Use my PGP keys on the website or at Keybase
Encryption: https://keybase.io/ajhalili2006/pgp_keys.asc
Encryption: https://andreijiroh.eu.org/keys/pgp.asc
# Security Policy and acknowledgments
Policy: https://andreijiroh.eu.org/security
Acknowledgments: https://andreijiroh.eu.org/security/#thanks
Expires: 2024-09-26T15:59:00.000Z

View File

@ -1,6 +1,5 @@
# internal redirects
/resume /user-manual/resume
#/portfolio /user-manual/resume
/dni /user-manual/dni
# external redirects
@ -20,4 +19,7 @@
/code-of-conduct https://coda.io/@ajhalili2006/readme/community-code-of-conduct-7
# this is obvious, right?
/favicon.ico /assets/images/favicon.png
/favicon.ico /assets/images/favicon.png
# plaintext redirects
/security.txt /.well-known/security.txt

View File

@ -1,32 +0,0 @@
# Contacting ~ajhalili2006
There are so many ways you can contact Andrei Jiroh, but please respect his boundaries, time and mental health.
## Rules of communication
_Last updated: 2023-07-17_
> This is a copy of <https://t.me/ajhalili2006_bio/4>, along with some changes since then. I'll revamp this pretty soon.
TL;DR: [Don't be a dick.](https://www.psychologytoday.com/us/blog/the-author-speaks/201909/don-t-be-dick)[^1] The rest are to cover "whataboutism" from every edge case I could cover.
- Check [my user manual](/user-manual/index.md) and FAQs before contacting via DMs.
- For sensitive manners (like reporting security related issues), use Keybase, Session or Matrix (make sure to enable EE2E when initiating an one-to-one chat with me). If you want to connect through Session, Ill provide my public ID when needed.
- No crypto nonsense (even I use mirror.xyz and some other dapps), self promo hellscape, doxxing, death/swatting threats or calls to violence towards me or anybody.
- Dont dare even send me NSFW/CACP.
- Future employers and recruiters: Please contact via email or LinkedIn only.
- I WILL NOT RESPOND FROM ANYBODY ON FACEBOOK MESSENGER. This applies to both my main and alternative personal profiles,
unless you're either know me IRL or for official business at school and work and your org policies does only allow
communications on Facebook Messenger/WhatsApp.
[^1]: Explainer from admins and mods at `hachyderm.io`: <https://community.hachyderm.io/docs/rule-explainer/#dont-be-a-dick>
## via email
Visit also <https://wiki.andreijiroh.eu.org/wiki/Email> for list of email addresses.
## via socials
Some of my socials are mentioned at my homepage and on my start.page page, but I'll also list them here:
TBD

View File

@ -0,0 +1,40 @@
# All of Andrei Jiroh's contact details
[Go back to "Anything else"](./else.md){ .md-button }
[Go back to main contact page](./index.md){ .md-button }
!!! warning "Horribly work-in-progress, apologies for missing/incompelete content."
This page contains all of Andrei Jiroh's contact details for convenience, though you should not
abuse them (or else get blocked).
## Email
!!! info "Please just use one email address when sending messages privately."
Don't send your email to multiple addresses (even as BCC or CC), it might cause duplication.
The most preferred address to use is either [:e-mail: **ajhalili2006@andreijiroh.eu.org**](mailto:ajhalili2006@andreijiroh.eu.org) or [:e-mail: **ajhalili2006@crew.recaptime.eu.org**](mailto:ajhalili2006@crew.recaptime.eu.org),
although if VK WorkMail has flagged your mail as spam and you don't want to fill up not-spam forms,
[use this Tally form](https://tally.so/r/nrB4o2) as an alternative.
* **Gmail user?** You could try sending mail to [:e-mail: ajhalili2006@gmail.com](mailto:ajhalili2006@gmail.com)
(sharing docs and files over Google Drive are fun but please no spam).
* If you're using Microsoft 365 (personally), you may also try sending (or sharing OneDrive files) to [:e-mail: ajhalili2006@outlook.ph](mailto:ajhalili2006@outlook.ph).
For work-related file sharing, please use my `@crew.recaptime.eu.org` email address instead.
## Over at socials
For the full list, see [:simple-buffer: my Buffer start.page](https://ajhalili2006.start.page).
You can obviously ping/tag me, but please be careful, especially when replying to others' posts.
If you want to slide into DMs, only slide via my main account and not any of my alternate accounts (although
I may look into them but reply on my main).
The following are my main accounts across the internet, in order of preference:
* :openweb-icons-fediverse: [@ajhalili2006@tilde.zone](https://tilde.zone/@ajhalili2006) or [@ajhalili2006@verified.coop](https://verified.coop/@ajhalili2006)
* :material-twitter: [@ajhalili2006@twitter.com](https://twitter.com/@ajhalili2006) (or `@ajhalili2006@x.com` if you're pedantic)
* :simple-tumblr: [@ajhalili2006@tumblr.com](https://tumblr.com/ajhalili2006) ([askbox](https://www.tumblr.com/new/ask/ajhalili2006))
* :simple-linkedin: [@ajhalili2006@linkedin.com](https://linkedin.com/in/ajhalili2006)
* :simple-messenger: [@ajhalili2006](https://m.me/ajhalili2006) [^1]
[^1]: Only used at school and for IRL friends and family members

30
markdown/contact/else.md Normal file
View File

@ -0,0 +1,30 @@
# Contact Andrei Jiroh about anything else
[Go back to contact page](./index.md){ .md-button }
---
!!! info "Thanks for getting in touch! Before you write, here's a few things to remind before you go:"
* Please [read my boundaries](../user-manual/boundaries.md), as well as [general communication policy](../user-manual/communications.md),
[Do Not Interact list](../user-manual/dni.md) and [on neurodivergence and disability](../user-manual/neurodivergence-and-disability.md) before you scroll down.
NOT following them will result in moderation actions, up to and including reporting as spam and blocks.
* If you have a burning question, check other pages in the [main contact page](./index.md) or in the [FAQs](../faq.md).
You may try also use your favorite search engine, forum, or even ask a real-life librarian for help since I can't do
research for you.
* Open source dev/maintainer needing a helping hand for your project? I'm up on [DevSecOps and Infra](../devops.md), [code reviews](../code-reviews.md),
and [community moderation](../community-management.md), although if you're a company, [consider hiring me full-time](./work.md) for maintaining your OSS projects (not open-core or anything under non-OSI approved ones like the BUSL).
If your inquiry isn't answered anywhere in this site or not covered on the main contact page,
I'm reachable at the following contact methods (also on [:simple-buffer: my Buffer start.page](https://ajhalili2006.start.page)):
* :mailbox: personally via [:e-mail: **ajhalili2006@andreijiroh.eu.org**](mailto:ajhalili2006@andreijiroh.eu.org) or via my
Recap Time Squad staff address at [:e-mail: **ajhalili2006@crew.recaptime.eu.org**](mailto:ajhalili2006@crew.recaptime.eu.org)
* :speech_balloon: over at Matrix at [:simple-matrix: @ajhalili2006 on ~environments](https://matrix.to/#/@ajhalili2006:envs.net)
or on [:simple-zulip: our Zulip chat (or via DMs)](https://recaptime-dev.zulipchat.com/#streams/405458/ajhalili2006)
* :information_source: If you want all the contact details, please see [this page](./details.md). Please don't use this to stalk or even spam me.
I do try to reply to messages if we can, but unfortunately workload and time limitations mean that its
often not possible to send personal responses — Im sorry about that. And since I do not read emails most
of the time (apologies, my exective functioning issues cause me to scare my inbox a lot),
please reach me out over at Matrix/Zulip first so I can dig over spam folders (contact VK Support
or Google for help if you got the bounce mail for spam).

28
markdown/contact/index.md Normal file
View File

@ -0,0 +1,28 @@
# Contact Andrei Jiroh
Helllo! **What would you like to talk about**?
!!! warning ""
This page is being revamped similarly to [Tom Scott's contact page](https://www.tomscott.com/contact),
so some links may be broken while being written.
This is also work-in-progress, so use **Anything else** link below and I'll look into it.
## Open-source work and Recap Time Squad
* [💻 Code reviews and pair programming](./code-reviews.md)
* [⚙ DevSecOps and Infra](./devops.md)
* [🛡 Security related](./security.md)
* [💼 Hiring to your company / Contracting](work.md)
## Advertising and public relations
* [📦 Reviewing products](product-reviews.md)
## Collabs and business partnerships
Currently not available yet for that, but come back soon if I may changed my mind.
## Miscellaneous
* [🌍 Anything else](./else.md)

View File

@ -0,0 +1,10 @@
# Product Reviews
[Go back to contact page](./index.md){ .md-button }
---
_Adopted from [Tom Scott's contact page](https://tomscott.com/contact/reviews)_
I don't review products. Please do not ask me to review products. (If I do in the future, I
may only review products I personally use.)

View File

@ -0,0 +1,28 @@
# Security related communications
[Go back to main contact page](./index.md){ .md-button }
---
Please consult [my general security policy](../security.md) and any project
or org/project-specific policies (via its own `SECURITY.md` file) before proceeding here.
Otherwise, you'll be ignored at best or blocked/muted and reported as spam at worst.
## Looking for PGP keys?
If you're looking for my PGP keys, please [visit this page](../keys/index.md).
## Submitting security patches
If you also want to submit a security patch, please DO NOT mention about the vunlerability
within the patch.
### via email
Please send security patches at [`~ajhalili2006/security@lists.sr.ht`](mailto:~ajhalili2006/security@lists.sr.ht)
instead of the public inbox if you using email.
## See also
* [Encrypted Communications](../user-manual/encrypted-communications.md) for additional guidance
regarding using PGP and EE2E chat over Matrix

View File

@ -1,3 +1,55 @@
# Frequently Asked Questions
Working on it soon.
_Last updated: 2023-10-TBD_
[Last updated]: https://mau.dev/andreijiroh.dev/website/-/commits/main/markdown/faq.md
!!! warning "This page is a working draft"
I'll be compiling some more answers to frequently asked questions about me in the future. In the meanwhile, if your
answer is not here, [let me know](./contact/index.md) or
search the internet.
## Disability and neurodivergence
!!! note "Dive deeper"
I may expect to get questions about autism in general, so I compile these resources ahead of time.
* **Personal user manual**: [Neurodivergence and Disability](./user-manual/neurodivergence-and-disability.md)
* **Community resources**: [Public Neurodiversity Support Center (PNDSC)](https://coda.io/@mykola-bilokonsky/public-neurodiversity-support-center), plus resources at [Awesome Neurodiversity](https://linktr.ee/AwesomeND) list
_This section will be updated as soon as things are being ironed out behind the scenes._
## Personal
### Pronouns?
My pronouns are he/they, but I'm more than welcome to use gender-neutral pronouns instead.
### Can I send you a physical letter or gift?
For privacy reasons, I can't publish my home address for obvious privacy reasons, but
I'll reconsider it in the future. If you still want to, options are:
* covering purchases on my wishlist on [Gift App](https://giftapp.com/ajhalili2006)
## All things free/libre and open-source
### Are you an open-source/free software absolutist?
Not necessary as hard as RMS, though I still have to do my own homework on its culture, among other things like self-hosting and defense in depth in terms of security and privacy.
The only problems here why I can't go full in would be the toxicity of the tech/open-source spaces and the same reason
why you still need to use Windows solely at work (bless anyone setting their dev environments in Windows containers).
### Why haven't you reviewed my merge request or email patch?
By the way, please don't harass me over DMs like Duo for not reviewing your patch (although in case of emergency patches like seucrity-related ones,
please be respectful).
## The Bloody Hell PH
### Do you plan to dig anyone's grave (past in this case) to get them cancelled to hell and back?
Wish I could say no thanks on doing a lot of OSINT, but Twitter's (now X) been a hot mess lately and
while writing every single internet shitfuckery (not just people getting cancelled) costs more spoons than in school while masking hard. Sure, I may cover some of them,
but there's a lot of stuff happening across the interwebs and I can't do the homework alone.

View File

@ -1,7 +1,7 @@
---
title: Home
description: |
Welcome to Andrei Jiroh's website! #ActuallyAutistic Filipino web dev,
#ActuallyAutistic Filipino web dev,
open-source maintainer, sometimes writer, always multifandom.
---
@ -11,7 +11,7 @@ description: |
I'm Andrei Jiroh Halili, an future web dev from the Philippines, currently an high school student at day and self-assigned BDFL
and lead open-source maintainer at [Recap Time Squad](https://recaptime.eu.org)[^1]
and writer for my personal blog and The Bloody Hell PH,
and writer for my personal blog and [The Bloody Hell PH](https://fromthebshq.carrd.co),
sometimes I'm contributing to open-source projects.
It might be not obvious for most of you, but behind the scenes I'm neurodivegent,
@ -20,6 +20,7 @@ not only for my mental health.
## Learn more about me
* [**FAQs about me**](./faq.md) - Read this before sending me emails.
* [**Resume**](./user-manual/resume.md) and [**portfolio**](./portfolio/index.md) for those who want to hire me in the future
* [**Personal user manual**](./user-manual/index.md) - Go deeper into the source and
learn more about me than a good ol' profile README.
@ -32,16 +33,22 @@ learn more about me than a good ol' profile README.
!!! info "This list is nonexhaustive"
Consider visiting [my "all-the-links" page](https://ajhalili2006.start.page) for the full list.
* **Code forges**: [![mau.dev](https://img.shields.io/badge/%40ajhalili2006%40mau.dev-6E49CB?&style=flat-square&logo=gitlab)](https://mau.dev/ajhalili2006)
<!--
TODO(ajhalili2006): rework on this similarly to https://aphyr.com/about
-->
* **Code forges** for my open-source, sometimes working-in-public personal projects: [![mau.dev](https://img.shields.io/badge/%40ajhalili2006%40mau.dev-6E49CB?&style=flat-square&logo=gitlab)](https://mau.dev/ajhalili2006)
[![sr.ht](https://img.shields.io/badge/sr.ht-~ajhalili2006-black?style=flat-square)](https://sr.ht/~ajhalili2006)
[![GitLab SaaS](https://img.shields.io/badge/%40ajhalili2006%40gitlab.com-6E49CB?&style=flat-square&logo=gitlab)](https://gitlab.com/ajhalili2006)
[![GitHub](https://img.shields.io/github/followers/ajhalili2006?label=%40ajhalili2006%40github.com&logo=github&style=flat-square)](https://github.com/ajhalili2006)
[![codeberg](https://img.shields.io/badge/%40ajhalili2006%40codeberg.oeg-blue?style=flat-square&logo=codeberg&logoColor=white)](https://codeberg.org/ajhalili2006)
[![tildegit](https://img.shields.io/badge/%40ajhalili2006%40tildegit.org-green?logo=gitea&logoColor=white)](https://tildegit.org/ajhalili2006)
[![codeberg](https://img.shields.io/badge/%40ajhalili2006%40codeberg.org-blue?style=flat-square&logo=codeberg&logoColor=white)](https://codeberg.org/ajhalili2006)
[![tildegit](https://img.shields.io/badge/%40ajhalili2006%40tildegit.org-green?logo=gitea&logoColor=white&style=flat-square)](https://tildegit.org/ajhalili2006)
* **Twitter/X**: [![Twitter](https://img.shields.io/twitter/follow/ajhalili2006?color=blue&label=%40ajhalili2006%40twitter.com&logo=twitter&style=flat-square)](https://twitter.com/ajhalili2006)
* **Reddit**: [![Reddit](https://img.shields.io/reddit/user-karma/combined/andreihalili?label=andreihalili&logo=reddit&style=flat-square)](https://reddit.com/user/andreihalili)
* **Fediverse**: [![Mastodon Follow](https://img.shields.io/mastodon/follow/108807402634952369?color=blue&domain=https%3A%2F%2Ftilde.zone&label=%40ajhalili2006%40tilde.zone&logo=mastodon&style=flat-square)](https://tilde.zone/@ajhalili2006)
[![Static Badge](https://img.shields.io/badge/%40JirohsMind%40the.usualsuspects.lol-blue?style=flat-square&logo=fediverse)](https://the.usualsuspects.lol/@JirohsMind)
* **Fediverse**: [![Main on tildeverse](https://img.shields.io/mastodon/follow/108807402634952369?color=blue&domain=https%3A%2F%2Ftilde.zone&label=%40ajhalili2006%40tilde.zone&logo=mastodon&style=flat-square)](https://tilde.zone/@ajhalili2006)
[![Alt account](https://img.shields.io/badge/%40JirohsMind%40the.usualsuspects.lol-blue?style=flat-square&logo=fediverse)](https://the.usualsuspects.lol/@JirohsMind)
* **Substack**: [![Substack](https://img.shields.io/badge/%40ajhalili2006%20on%20substack-FF6719?style=flat-square&logo=substack&logoColor=white)](https://substack.com/@ajhalili2006)
* **Chat**: [![Matrix](https://img.shields.io/badge/%40ajhalili2006:envs.net-black?&style=flat-square&logo=matrix&logoColor=white)](https://matrix.to/#/@ajhalili2006:envs.net)
[![chat with ~ajhalili2006 on Recap Time Squad's Zulip server](https://img.shields.io/badge/zulip%20chat-%23ajhalili2006%3Arecaptime--dev.zulipchat.com-blue?style=flat-square&logo=zulip)](https://recaptime-dev.zulipchat.com/#narrow/stream/405458-ajhalili2006)
@ -55,7 +62,8 @@ learn more about me than a good ol' profile README.
* [`storj://ajhalili2006-files/archive`](https://static.rtdevcdn.net.eu.org/ajhalili2006/) - usually screenshots and personal snippet hosting stuff
* [**Digital garden**](https://anagora.org/@ajhalili2006) - usually written with Obsidian.md app or Foam VS Code extension
* [**Gemini version of site**](gemini://gemini.andreijiroh.eu.org) ([view via proxy](https://gp.p.psf.lt/gemini/gemini.andreijiroh.eu.org)) - plaintext edition of website
* [**Jiroh's Kooky Insane Stuff**](https://kookyinsanestuff.andreijiroh.eu.org) - More unhinged version of my digital garden, based on Nori's Kooky Insane Stuff in Murder Drones.
* [**Gemini version of site**](gemini://gemini.andreijiroh.eu.org) ([view via proxy](https://gp.p.psf.lt/gemini/gemini.andreijiroh.eu.org)) - plaintext edition of website, hosted on [sourcehut pages](https://gp.p.psf.lt/gemini/srht.site)
[^1]: Not an company, as mentioned in my GitHub and GitLab profiles
[^2]: There are many great resources from the autistic community (and also the wider neurodiversity and disability rights community), especially from [Neuroclastic](https://neuroclastic.com/autism-101-resources-from-the-autistic-community/), if you want to be an ally or simply want to help make inclusivity across intersections mainstream.

View File

@ -5,23 +5,15 @@ This page contains all the cryptographic public keys I use for different purpose
encryption and decryption to signing Git commits and even identity verification without requiring
an government-issued ID.
## Key-signing ceremories
## Keysigning ceremories
If you would like to build your web of trust with me (and probably with your friends), let me know
(via [my meeting booking form](https://calendar.app.google/P8dvgAsvrtqi8mPR9) ([alternative link](https://coda.io/form/Schedule-a-meeting-with-ajhalili2006_deaLq2my-OX)),
or via regular chat venues).
Due to my current schedule as a high school student, I'm only accept asynchorous key-signing ceremories
for the moment.
For asynchorous ceremories, I recommend doing it publicly through [this repo](https://go.recaptime.eu.org/keysigning-ceremory)
and [`#keysigning-ceremories.recaptime.dev:envs.net`](https://matrix.to/#/#keysigning-ceremories.recaptime.dev:envs.net). In case
of in-person ceremories, taking a picture with yours truly (with your own list of PGP fingerprints on a piece of paper) is enough.
_This is moved to [Encrypted communications](../user-manual/encrypted-communications.md#key-signing-ceremories)._
## GPG Keys
You can get all the GPG keys I use publicly, including the 2021 key (as shown on Keybase) and
ProtonMail-specific encryption key in one file [here](./pgp.asc). Make sure to check the fingerpints
and/or key IDs against [this list]($keys-i-use) to ensure its the right key.
and/or key IDs against [this list](#keys-i-use) to ensure its the right key.
```bash
# one-liner import from my website (or via ajhalili2006.vern.cc and ctrl-c.club/~ajhalili2006)
@ -50,7 +42,9 @@ gpg --keyserver hkps://keyserver.ubuntu.com --recv-keys \
(primary email: `ajhalili2006@gmail.com`)
* `0527234A430387EA5695D824A30EBE40AD856D88` - the Feburary 2021 PGP key, as shown on my Keybase profile
(primary email: `andreijiroheugeniohalili24680@gmail.com`)
* `EA957E7086E934F8DB9CAD21940047813E9D641C` - spare signing key for software release, especially on my own Debian package repos/Launchpad PPAs.
* `A715100E58CF60500EE159652F384539C700B263` - Recap Time Squad specific key
* `EA957E7086E934F8DB9CAD21940047813E9D641C` - spare signing key for software release, especially on my own
Debian package repos/Launchpad PPAs.
* `5D69E717C5BC95731C2AD8BD120C218ED2291996` - ProtonMail specific encryption key (`ajhalili2006@proton.me`)
## SSH Keys

View File

@ -4,18 +4,22 @@ title: Portfolio
!!! info "Looking for the chronological version of this?"
*Last updated: 2023-03-21* ([Looking for my resume?](./user-manual/resume.md))
*Last updated: 2023-10-01* ([Looking for my resume?](../user-manual/resume.md))
## work
* [**Recap Time Squad**](https://recaptime.eu.org), *since 2018 as The Pins Team (although started way earlier than that)* - not (officially) an company where I host most of my projects, especially:
* [Community Radar (also known as `radar.community`)](https://communityradar.substack.com), our official newsletter although also inactive due to
* [**Recap Time Squad**](https://recaptime.eu.org), *since 2018 as The Pins Team (although started way earlier than that)* - not (officially)
an company[^1] where I host most of my open-source projects, especially:
* [Community Radar (also known as `radar.community`)](https://communityradar.substack.com), our official newsletter
although also inactive due to
* [Community Lores (also known as `lorebooks.wiki`)](https://lorebooks.eu.org), the documentation arc of the org, mostly hosts documentation projects and stuff
* and various projects I could list here but it might be long
* [**The Bloody Hell PH**](https://fromthebshq.substack.com), *since 2022 as
[`@shitfuckery-at-bullshit-dot-hq@tumblr.com`](https://tumblr.com/shitfuckery-at-bullshit-dot-hq)* - talking about politics a la TheJuiceMedia's Honest Government Ads, multifandom discussions, and then random musings and ramblings
* [**~ajhalili2006's blog**](https://ajhalili2006.substack.com), formerly on [WordPress.com](https://ajhalili2006.wordpress.com) - life updates and personal stuff
[^1]: See <https://mau.dev/recaptime-dev/squad/issue-tracker/-/issues/9> for details.
## community
* honorable mention in Gitpod's [credits to security researchers](https://www.gitpod.io/security/thanks) page per [`gh:gitpod-io/workspace-images#540`](https://github.com/gitpod-io/workspace-images/pull/540)

View File

@ -1,4 +1,4 @@
# ~ajhalili2006's projects
!!! warning "Coming soon"
I'm currently drafting this sometime in the future, but in meanwhile see my [nowpage](/now).
I'm currently drafting this sometime in the future, but in meanwhile see my [nowpage](../now.md).

View File

@ -49,7 +49,7 @@ In participating in our vulnerability disclosure program in good faith, we ask t
## Official Channels
Please report security issues via `security@andreijiroh.eu.org` or <https://andreijiroh.eu.org/contact/security>, providing all relevant information. The more details you provide, the easier it will be for us to triage and fix the issue.
Please report security issues via `ajhalili2006@andreijiroh.eu.org` or <https://andreijiroh.eu.org/contact/security>, providing all relevant information. The more details you provide, the easier it will be for us to triage and fix the issue.
## Safe Harbor
@ -64,4 +64,4 @@ You are expected, as always, to comply with all applicable laws. If legal action
If at any time you have concerns or are uncertain whether your security research is consistent with this policy, please submit a report through one of our Official Channels before going any further.
> Note that the Safe Harbor applies only to legal claims under the control of the organization participating in this policy, and that the policy does not bind independent third parties.
> Note that the Safe Harbor applies only to legal claims under the control of the organization participating in this policy, and that the policy does not bind independent third parties.

View File

@ -1,28 +1,34 @@
# Communications
!!! info "Visit the Coda version of this page for up-to-date content"
[:octicons-link-external-16: Open in Coda](https://coda.io/@ajhalili2006/readme/personal-and-professional-boundaries-9){ .md-button }
[:octicons-report-16: Report inconsistencies between versions](https://go.andreijiroh.eu.org/website-feedback/coda){ .md-button }
This page contains documentation on how to communicate with people in the neurodiversity and the wider disability communities in mind and also on gender neutral communication.
---
!!! info
This page contains documentation on how to communicate with people in the neurodiversity and the wider disability communities in mind and also on gender neutral communication.
Suggestions and feedback to improve this content are welcome and encouraged. Note that these docs might be not applicable to your case if youre considering writing your own personal user manual and I dont speak for anyone else.
Suggestions and feedback to improve this content are welcome and encouraged.
Note that these docs might be not applicable to your case if youre considering writing your own
personal user manual and I dont speak for anyone else.
## TL;DR
1. [Dont be a dick](https://www.psychologytoday.com/us/blog/the-author-speaks/201909/don-t-be-dick) (aka violent, discriminatory, disrespectful or even disturbing in any way).
> Some of them were copied from <https://t.me/ajhalili2006_bio/4> in part for when sliding into DMs.
1. [Dont be a dick](https://www.psychologytoday.com/us/blog/the-author-speaks/201909/don-t-be-dick) (aka violent, discriminatory, disrespectful or even disturbing in any way).[^1]
2. Respect my preferred pronouns and avoid PFL (person-first language) in most cases.
3. Dont @ me during downtime, sleep and day-offs. In case of emergencies, call me over my personal phone number that I provided or through TBD.
3. Dont @ me during downtime, sleep and day-offs. In case of emergencies, call me over my personal phone number that I provided or through provided contact methods.
For sensitive manners (like reporting security related issues), use Keybase, Session or Matrix (make sure to enable EE2E when initiating an one-to-one chat with me). If you want to connect through Session, Ill provide my public ID when needed.
4. No crypto nonsense (even I use mirror.xyz and some other dapps), self promo hellscape, doxxing, death/swatting threats or calls to violence towards me or anybody.
5. Dont dare even send me NSFW/CACP.
6. Future employers and recruiters: Please contact via email or LinkedIn only.
7. I WILL NOT RESPOND FROM ANYBODY ON FACEBOOK MESSENGER. This applies to both my main and alternative personal profiles,
unless you're either know me IRL or for official business at school and work and your org policies does only allow
communications on Facebook Messenger/WhatsApp.
[^1]: Explainer from admins and mods at `hachyderm.io`: <https://community.hachyderm.io/docs/rule-explainer/#dont-be-a-dick>
## Pronouns and Language
My pronouns is `he/they` (technically `he/him/they/them` for long version), although `they/them` is much preferred even if I chose to be identified to my gender at birth.
In terms of discussing about things relating to neurodiversity and disability, I prefer identity first
, especially when discussing about my disability and things like neurodiversity, since I mostly frame ableism and other issues related to these under both social and human rights models of disability.
In terms of discussing about things relating to neurodiversity and disability, I prefer identity first, especially when discussing about my disability and things like neurodiversity,
since I mostly frame ableism and other issues related to these under both social and human rights models of disability.
You might check the [note on disabled and disability](https://www.thesaurus.com/e/writing/person-first-vs-identity-first-language/#note-on-disabled-and-disability) at thesaurus.com,
especially when discussing accessibility across the community. I dont usually gatekeep language relating to disability, although I might do when discrimination and bullying happens or when clarification is needed.
@ -51,7 +57,9 @@ Generally, Im not a fan of sync meetings, especially if iot is scheduled outs
* Work-related stuff should be discussed in Recap Time Squads chatrooms (either public or staff-only, although anything confidential/internal should be stay in staff-only chat).
* Ping me when only needed. Also, DO NOT ping @everyone.
* I don't usually read email, but if you sent me some important emails (via my `@crew.recaptime.eu.org` )
* I don't usually read email, but if you sent me some important emails
(via my `@crew.recaptime.eu.org` or personal addresses),
please proactively reach me out via other contact methods.
## Additional resources

View File

@ -0,0 +1,13 @@
# Encrypted communications
## Key-signing ceremories
If you would like to build your web of trust with me (and probably with your friends), let me know
(via [my meeting booking form](https://calendar.app.google/P8dvgAsvrtqi8mPR9) ([alternative link](https://coda.io/form/Schedule-a-meeting-with-ajhalili2006_deaLq2my-OX)),
or via regular chat venues).
Due to my current schedule as a high school student, I'm only accept asynchorous key-signing ceremories
for the moment.
For asynchorous ceremories, I recommend doing it publicly through [this repo](https://go.recaptime.eu.org/keysigning-ceremory)
and [`#keysigning-ceremories.recaptime.dev:envs.net`](https://matrix.to/#/#keysigning-ceremories.recaptime.dev:envs.net). In case
of in-person ceremories, taking a picture with yours truly (with your own list of PGP fingerprints on a piece of paper) is enough.

View File

@ -3,7 +3,7 @@
This page contains the link to my resume for future employers and those who are
curious on what kind of work I'm doing in the past and present and then some notes from yours truly on how to use them.
[*(Looking for my portfolio? Hop in here.)*](../portfolio.md)
[*(Looking for my portfolio? Hop in here.)*](../portfolio/index.md)
## The basics
@ -12,4 +12,4 @@ me on [LinkedIn](https://linkedin.com/in/ajhalili2006) if you do.
## Need customized ones?
[Contact ~ajhalili2006](../contact.md) over chat or email, especially if you need his phone number and home address.
[Contact ~ajhalili2006](../contact/index.md) over chat or email, especially if you need his phone number and home address.

7
mkdocs.tilde.yml Normal file
View File

@ -0,0 +1,7 @@
INHERIT: mkdocs.yml
site_name: ~ajhalili2006 on tildeverse
site_url: !ENV [TILDE_PUBLIC_HTML_BASE, "https://ctrl-c.club/~ajhalili2006/"]
docs_dir: markdown
site_dir: public_html
extra:
deployment: tilde # for the announcement banner

View File

@ -19,27 +19,34 @@ repo_name: source code
# navbar
nav:
- Main Hub:
- Home:
- index.md
- nowpage: now.md
- Contact: contact.md
- Contact: contact/index.md
- PGP and SSH keys: keys/index.md
- "All my links": "https://ajhalili2006.start.page"
- Legal:
- Security policy: security.md
- Personal user manual:
- Manual Homepage: user-manual/index.md
- Resume: user-manual/resume.md
- DNI List: user-manual/dni.md
- Boundaries: user-manual/boundaries.md
- Neurodivergence and Disability: user-manual/neurodivergence-and-disability.md
- Communications: user-manual/communications.md
- Do Not Interact List: user-manual/dni.md
- Encrypted communications and keys: keys/index.md
- Personals:
- FAQs about me: faq.md
- Flaws and Quirks: user-manual/flaws-and-quirks.md
- Neurodivergence and Disability: user-manual/neurodivergence-and-disability.md
- Community:
- DNI List: user-manual/dni.md
- Boundaries: user-manual/boundaries.md
- Social Media Policy: user-manual/socials.md
- On Roleplaying: user-manual/roleplaying-hellscape.md
- Communications:
- General Communications Policy: user-manual/communications.md
- Encrypted communications: user-manual/encrypted-communications.md
- Portfolio:
- portfolio/index.md
- Projects: portfolio/projects.md
- Communities: portfolio/communities.md
- Tildes: portfolio/tildes.md
- Resume: user-manual/resume.md
- Blog: "https://blog.andreijiroh.eu.org" # todo: point to substack
# theme settings
@ -121,10 +128,11 @@ plugins:
"communities.md": "portfolio/communities.md"
"tildes.md": "portfolio/tildes.md"
"projects.md": "portfolio/projects.md"
#"contact.md": "contact/index.md"
# debugging/bug reporting purposes only, proceed with caution
#- info
- git-revision-date-localized:
enabled: !ENV [FF_ENABLE_COMMIT_DATA, false]
enabled: true
fallback_to_build_date: true
enable_creation_date: true
# TODO: Get Insiders for contributors and authors
@ -144,6 +152,9 @@ markdown_extensions:
- pymdownx.emoji:
emoji_index: !!python/name:materialx.emoji.twemoji
emoji_generator: !!python/name:materialx.emoji.to_svg
options:
custom_icons:
- overrides/.icons
- footnotes
- md_in_html
- admonition

View File

@ -0,0 +1,7 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="-10 0 1034 1024">
<path fill="currentColor"
d="M499 228q-165 0 -281 116q-118 120 -118 284t118.5 282t280.5 118q165 0 287 -119q114 -112 114 -280.5t-116 -284.5t-285 -116zM501 300q135 0 231 96t96 232q0 139 -94 229q-100 98 -234 98t-231 -97t-97 -229.5t98 -232.5q94 -96 231 -96zM500 370q-56 0 -56 56t56 56
t56 -56t-56 -56zM418 503q-11 0 -18.5 7.5t-7.5 18.5v163h46v195h124v-195h46v-163q0 -11 -8 -18.5t-18 -7.5h-164z" />
</svg>

After

Width:  |  Height:  |  Size: 666 B

View File

@ -0,0 +1,7 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="-10 0 1034 1024">
<path fill="currentColor"
d="M499 228q-165 0 -281 117q-118 120 -118 284t118.5 281.5t280.5 117.5q166 0 287 -118q114 -114 114 -281.5t-116.5 -284t-284.5 -116.5zM501 300q136 0 231 97q96 94 96 231.5t-94 229.5q-100 97 -234 97t-231 -96.5t-97 -229.5t98 -232q94 -97 231 -96v-1zM498 418
q-69 0 -116.5 40t-59.5 114h-31l79 79l79 -79h-29q10 -71 90 -71q44 0 67.5 33.5t23.5 96.5q0 61 -25.5 97.5t-67.5 36.5q-84 0 -88 -73h-101q10 75 59.5 115.5t117.5 40.5q92 0 150 -61t58 -153q0 -95 -56 -155.5t-150 -60.5z" />
</svg>

After

Width:  |  Height:  |  Size: 764 B

View File

@ -0,0 +1,8 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="-10 0 1034 1024">
<path fill="currentColor"
d="M499 226q-166 0 -280 117q-58 58 -88.5 131t-30.5 152.5t30 152t87.5 130t130 87.5t152 30t153.5 -30.5t133 -88.5q56 -55 85 -127t29 -153.5t-29.5 -154t-85.5 -128.5q-118 -118 -286 -118zM501 299q135 0 232 96q46 47 70.5 106t24.5 125q0 138 -94 230
q-48 47 -108.5 72t-125 25t-124 -24.5t-106.5 -71.5t-72.5 -106.5t-25.5 -124.5t25.5 -124.5t72.5 -107.5q94 -95 231 -95zM389 502q-50 0 -83.5 33.5t-33.5 91.5t33 91t86 33q34 0 62 -17t43 -46l-49 -25q-14 34 -49 34q-27 0 -40.5 -19t-13.5 -52q0 -70 54 -70
q11 0 23.5 7t20.5 25l54 -28q-32 -58 -107 -58zM621 502q-51 0 -84 33.5t-33 91.5t32.5 91t86.5 33q33 0 60.5 -17t44.5 -46l-50 -25q-14 34 -49 34q-27 0 -40.5 -19t-13.5 -52q0 -70 54 -70q11 0 23.5 7t21.5 25l52 -28q-31 -58 -105 -58z" />
</svg>

After

Width:  |  Height:  |  Size: 1009 B

View File

@ -0,0 +1,13 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="-10 0 1034 1024">
<path fill="currentColor"
d="M455 226q-22 0 -40 8q-26 10 -40 32.5t-15 53.5q-1 52 36 107l1 1q-22 -46 -13 -85t45 -54q27 -10 62 -2.5t68.5 31.5t56.5 58q27 40 30.5 79.5t-16.5 64.5q25 -16 34.5 -46t1.5 -66.5t-33 -73.5q-33 -49 -82.5 -78.5t-95.5 -29.5zM505 368q-19 0 -35 12t-22 31.5t1 38.5
l-104 76q7 6 12 13t8 15l104 -76q16 13 36.5 13t37.5 -12q21 -15 25 -40t-11 -46q-9 -12 -22 -18.5t-27 -6.5h-3zM820 381q-23 0 -47 12q-47 24 -78 83q30 -41 68.5 -51t68.5 15q22 19 31.5 53.5t4 75t-24.5 77.5q-14 25 -32 44l1 2q10 8 18 19q34 -25 57 -68.5t29.5 -90.5
t-4.5 -87.5t-37 -62.5q-24 -21 -55 -21zM298 416q-49 0 -100 32q-42 25 -71 62.5t-40 77.5t0 73q9 26 31 41.5t52 17.5q53 3 109 -31l1 -1q-47 20 -85.5 9.5t-51.5 -47.5q-9 -28 0 -62.5t34.5 -67t60.5 -53.5q42 -25 81.5 -27t63.5 19q-12 -20 -33 -31t-49 -12h-3zM525 512
q-17 4 -34 0v87q-10 3 -19 9q-21 15 -25 40t11 46q12 17 31.5 23t38.5 -1l67 92q-8 9 -11 21l-1 4l-1 15l2 16q3 9 9 18q15 20 40.5 24t46 -11t24.5 -40t-11 -46q-9 -12 -21.5 -18.5t-27.5 -6.5q-11 0 -21 3l-67 -91q13 -16 13.5 -36.5t-12 -37.5t-32.5 -23v-87zM725 526
q-19 1 -35 12q-12 9 -19 22.5t-6 28.5l-84 27q9 16 11 33l52 -17l32 -8q15 21 40.5 25t46 -11t24.5 -40.5t-11 -45.5q-9 -12 -21.5 -19t-27.5 -7h-2zM287 527q-19 1 -35 12q-21 15 -25 40t11 46t40.5 25t46 -11t24.5 -40t-11 -46q-9 -12 -22 -18.5t-27 -7.5h-2zM728 689
q-7 1 -15 1q-52 7 -101 52v0q42 -28 82 -25t59 37q15 26 12 61.5t-21.5 72t-49.5 64.5q-36 32 -74.5 41t-66.5 -7q20 23 50.5 28t66 -8.5t68.5 -42.5q35 -33 57 -75t25.5 -83.5t-14.5 -71.5q-12 -22 -32.5 -33t-45.5 -11zM445 715l-38 54q16 7 28 20l39 -54q-17 -7 -29 -20z
M266 734h-5q-10 1 -19 2q-30 5 -50.5 22.5t-27.5 44.5q-7 34 7.5 72.5t47.5 73t77 55.5q39 19 76.5 21.5t66 -11t40.5 -40.5q-22 24 -61.5 26t-83.5 -19q-37 -18 -65.5 -47.5t-41 -63t-5.5 -62.5q8 -37 45.5 -51.5t86.5 0.5l-1 -1q-45 -21 -87 -22zM371 785q-19 0 -34 11
q-21 15 -25 40.5t11 46t40 24.5t46 -11q17 -12 23 -32h129l-2 -22q0 -6 1 -13h-128q-3 -10 -9 -19l-10 -10l-20 -12q-10 -3 -19 -3h-3z" />
</svg>

After

Width:  |  Height:  |  Size: 2.2 KiB

View File

@ -0,0 +1,10 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="-10 0 1034 1024">
<path fill="currentColor"
d="M539 176q-32 0 -55 22t-25 55t20.5 58t56 27t58.5 -20.5t27 -56t-20.5 -59t-56.5 -26.5h-5zM452 271l-232 118q20 20 25 48l231 -118q-19 -20 -24 -48zM619 298q-13 25 -38 38l183 184q13 -25 39 -38zM477 320l-135 265l40 40l143 -280q-28 -5 -48 -25zM581 336
q-22 11 -46 10l-8 -1l21 132l56 9zM155 370q-32 0 -55 22.5t-25 55t20.5 58t56.5 27t59 -21t26.5 -56t-21 -58.5t-55.5 -27h-6zM245 438q1 9 1 18q-1 19 -10 35l132 21l26 -50zM470 474l-26 51l311 49q-1 -8 -1 -17q1 -19 10 -36zM842 480q-32 1 -55 23t-24.5 55t21 58
t56 27t58.5 -20.5t27 -56.5t-20.5 -59t-56.5 -27h-6zM236 493q-13 25 -39 38l210 210l51 -25zM196 531q-21 11 -44 10l-9 -1l40 256q21 -10 45 -9l8 1zM560 553l48 311q21 -10 44 -9l10 1l-46 -294zM755 576l-118 60l8 56l135 -68q-20 -20 -25 -48zM781 625l-119 231
q28 5 48 25l119 -231q-28 -5 -48 -25zM306 654l-68 134q28 5 48 25l60 -119zM568 671l-281 143q19 20 24 48l265 -135zM513 771l-51 25l106 107q13 -25 39 -38zM222 795q-32 0 -55.5 22.5t-25 55t21 57.5t56 27t58.5 -20.5t27 -56t-20.5 -58.5t-56.5 -27h-5zM311 863
q2 9 1 18q-1 19 -9 35l256 41q-1 -9 -1 -18q1 -18 10 -35zM646 863q-32 0 -55 22.5t-24.5 55t20.5 58t56 27t59 -21t27 -56t-20.5 -58.5t-56.5 -27h-6z" />
</svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View File

@ -0,0 +1,7 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="-28 0 1056 1024">
<path fill="currentColor"
d="M500 177l-518 301h145v549h746v-549h145zM624 421q30 0 58 11t49 32.5t32.5 49t11.5 57.5q0 41 -20.5 75.5t-55 54.5t-75.5 20q-8 0 -17 -1l-17 79q23 9 36.5 28.5t13.5 43.5q0 33 -23 55.5t-55 22.5t-55 -22.5t-23 -55.5q0 -16 7 -31l-88 -57q-15 17 -35.5 27t-43.5 10
q-43 0 -73.5 -30.5t-30.5 -73.5t30.5 -73.5t73.5 -30.5q26 0 49 13t38 35l73 -36q-10 -26 -10 -53q0 -30 11.5 -57.5t32.5 -49t48.5 -32.5t57.5 -11zM495 648l-73 35q5 16 5 33q0 24 -10 45l88 58q23 -25 57 -25h3l16 -79q-27 -8 -49 -25.5t-37 -41.5z" />
</svg>

After

Width:  |  Height:  |  Size: 790 B

View File

@ -0,0 +1,8 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" viewBox="-10 0 1034 1024">
<path fill="currentColor"
d="M499 112q-93 1 -166 11q-81 11 -128 33l-14 8q-16 10 -32 25q-22 21 -38 47q-21 33 -32 73q-14 47 -14 103v37q0 77 1 119q3 113 18 188q19 95 62 154q50 67 134 89q109 29 210 24q46 -3 88 -12q30 -7 55 -17l19 -8l-4 -75l-22 6q-28 6 -57 10q-41 6 -78 4q-53 -1 -80 -7
q-43 -8 -67 -30q-29 -25 -35 -72q-2 -14 -2 -29l25 6q31 6 65 10q48 7 93 9q42 2 92 -2q32 -2 88 -9t107 -30q49 -23 81.5 -54.5t38.5 -63.5q9 -45 13 -109q4 -46 5 -97v-41q0 -56 -14 -103q-11 -40 -32 -73q-16 -26 -38 -47q-15 -15 -32 -25q-12 -8 -14 -8
q-46 -22 -127 -33q-74 -10 -166 -11h-3zM367 267q73 0 109 56l24 39l24 -39q36 -56 109 -56q63 0 101 43t38 117v239h-95v-232q0 -74 -61 -74q-69 0 -69 88v127h-94v-127q0 -88 -69 -88q-61 0 -61 74v232h-95v-239q0 -74 38 -117t101 -43z" />
</svg>

After

Width:  |  Height:  |  Size: 1018 B

View File

@ -7,10 +7,24 @@
{% extends "main.html" %}
{% block content %}
<h1>404 - Not found</h1>
<p>Either the URL has been moved without redirects, taken down for any reasons, or it doesn't exist (yet).</p>
<p>
Either the URL has been moved without redirects, taken down for any reasons, or it doesn't exist (yet).
</p>
<p>
If this is not intended to happen, please report this as a bug in the webiste's issue tracker. Otherwise, you can press back
on your browser or go back to homepage.
</p>
<a class="md-button" href="https://mau.dev/andreijiroh.dev/website/-/issues/new/?issue[title]=Broken link in <URL>">Report this broken link</a>
<a class="md-button" href="/">Go back home</a>
<h2>Troubleshooting tips</h2>
<p>Try checking the URL for any misspellings or improper use of dashes, underscores and periods.</p>
<p>If you're working in this site and you hit an URL configured for redirects (at Cloudflare Pages or similiar), try <a href="https://pypi.org/project/mkdocs-redirects/">configuring redirects in the Mkdocs config first</a>.</p>
<p>Depending on the site version you're viewing, you may need to switch between <a href="https://andreijiroh.eu.org">production</a>
and <a href="https://staging.andreijiroh.eu.org">staging</a> versions of the website.</p>
<p>Try checking the URL for any misspellings or improper use of dashes, underscores and periods.</p>
<p>
If you're working in this site and you hit an URL configured for redirects (at Cloudflare Pages or similiar),
try <a href="https://pypi.org/project/mkdocs-redirects/">configuring redirects in the Mkdocs config first</a>.
</p>
<p>
Depending on the site version you're viewing, you may need to switch between <a href="https://andreijiroh.eu.org">production</a>
and <a href="https://staging.andreijiroh.eu.org">staging</a> versions of the website. (The tilde versions of the site may be
may lag behind Cloudflare Pages deploys.)
</p>
{% endblock %}

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
{"version":3,"sources":["src/overrides/assets/stylesheets/custom/_typeset.scss","../../../../src/overrides/assets/stylesheets/custom.scss","src/templates/assets/stylesheets/utilities/_break.scss","src/overrides/assets/stylesheets/custom/layout/_banner.scss","src/overrides/assets/stylesheets/custom/layout/_hero.scss","src/overrides/assets/stylesheets/custom/layout/_iconsearch.scss","src/overrides/assets/stylesheets/custom/layout/_sponsorship.scss"],"names":[],"mappings":"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","file":"custom.css"}
{"version":3,"sources":["src/overrides/assets/stylesheets/custom/_typeset.scss","../../../../src/overrides/assets/stylesheets/custom.scss","src/templates/assets/stylesheets/utilities/_break.scss","src/overrides/assets/stylesheets/custom/layout/_banner.scss","src/overrides/assets/stylesheets/custom/layout/_hero.scss","src/overrides/assets/stylesheets/custom/layout/_iconsearch.scss","src/overrides/assets/stylesheets/custom/layout/_sponsorship.scss"],"names":[],"mappings":"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","file":"custom.css"}

View File

@ -7,26 +7,32 @@ SPDX-License-Identifier: MIT
{% extends "base.html" %}
{% block extrahead %}
<link rel="stylesheet" href="{{ 'assets/stylesheets/mkdocs-material-styling.css' | url }}">
<script src="https://hypothes.is/embed.js" async></script>
{% endblock %}
<!-- Staging build -->
{% block announce %}
{% if config.extra.deployment == "staging" %}
You're previewig the staging build of @ajhalili2006's website on <a href="https://readthedocs.org">RTD Community</a>. <strong><a href="https://andreijiroh.eu.org">Go back to production</a></strong>
{% else %}
For updates follow <strong>@ajhalili2006</strong> on
<a rel="me" href="https://tilde.zone/@ajhalili2006">
<span class="twemoji mastodon">
{% include ".icons/fontawesome/brands/mastodon.svg" %}
</span>
<strong>the tildeverse</strong>
</a>
and
<a href="https://substack.com/@ajhalili2006">
<span class="twemoji substack">
{% include ".icons/simple/substack.svg" %}
</span>
<strong>Substack</strong>
</a>
{% endif %}
For updates follow <strong>@ajhalili2006</strong> on
<a rel="me" href="https://tilde.zone/@ajhalili2006">
<span class="twemoji mastodon">
{% include ".icons/fontawesome/brands/mastodon.svg" %}
</span>
<strong>the tildeverse</strong>
</a>
and
<a href="https://substack.com/@ajhalili2006">
<span class="twemoji substack">
{% include ".icons/simple/substack.svg" %}
</span>
<strong>Substack</strong>
</a>
{% endblock %}
{% block container %}
<div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
{% block content %}
{% include "partials/content.html" %}
{% endblock %}
</article>
</div>
{% endblock %}

View File

@ -0,0 +1,37 @@
{% if config.extra.deployment %}
<div class="admonition info">
{% if config.extra.deployment == "staging" %}
<p class="admonition-title">
You're previewing the staging build of @ajhalili2006's website on <a href="https://readthedocs.org/projects/ajhalili2006/builds">RTD Community</a>.
</p>
<p>
Deploys might be a bit faster there, but it may contain content not yet ready for production deployment or
we might skipped GitLab CI for the latest commit.
</p>
{% elif config.extra.deployment == "tilde" %}
<p class="admonition-title">You're viewing ~ajhalili2006's website from the tildeverse.</p>
<p>
This site build's content might be outdated due to failing CI, delayed synchorizations and local cache, among other reasons.
</p>
{% endif %}
<a class="md-button" href="https://andreijiroh.eu.org">Go back to production</a>
<a class="md-button" href="https://garden.andreijiroh.eu.org">Why am I seeing this?</a>
</div>
{% endif %}
{% if "material/tags" in config.plugins and tags %}
{% include "partials/tags.html" %}
{% endif %}
{% include "partials/actions.html" %}
{% if "\x3ch1" not in page.content %}
<h1>{{ page.title | d(config.site_name, true)}}</h1>
{% endif %}
{{ page.content }}
{% if page.meta and (
page.meta.git_revision_date_localized or
page.meta.revision_date
) %}
{% include "partials/source-file.html" %}
{% endif %}
{% include "partials/feedback.html" %}
{% include "partials/comments.html" %}

File diff suppressed because one or more lines are too long