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

chore(global): usual commit-them-all to avoid data loss

Gonna start over on the workspace due to technical diffculties.

Signed-off-by: Andrei Jiroh Halili <ajhalili2006@gmail.com>

+15
.env.example
···
+
# wrangler specifics, DO NOT LEAK SHIT!
+
# see https://developers.cloudflare.com/workers/wrangler/system-environment-variables/ for details
+
# After selecting your CF account, copy the account ID after dash.cloudflare.com/ into the
+
# variable below.
+
CLOUDFLARE_ACCOUNT_ID=cf0bd808c6a294fd8c4d8f6d2cdeca05
+
# DO NOT PASTE IT IN .env.example file!
+
CLOUDFLARE_API_TOKEN=
+
# CLI options stuff
+
WRANGLER_SEND_METRICS=true
+
WRANGLER_LOG=log
+
+
# build configurations as feature flags
+
FF_ENABLE_COMMIT_DATA=true
+
# applies at build time, make sure required deps for
+
FF_GENERATE_SOCIAL_CARDS=false
+65
.github/workflows/deploybot.yml
···
+
# Simple workflow for deploying static content to GitHub Pages
+
name: Deploy website CI
+
+
on:
+
# Runs on pushes targeting the default branch
+
push:
+
branches: ["main"]
+
+
# Allows you to run this workflow manually from the Actions tab
+
workflow_dispatch:
+
+
# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages
+
permissions:
+
contents: read
+
pages: write
+
id-token: write
+
+
# Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued.
+
# However, do NOT cancel in-progress runs as we want to allow these production deployments to complete.
+
concurrency:
+
group: "pages"
+
cancel-in-progress: false
+
+
jobs:
+
gh-pages:
+
environment:
+
name: github-pages
+
url: ${{ steps.deployment.outputs.page_url }}
+
runs-on: ubuntu-latest
+
steps:
+
- name: Checkout
+
uses: actions/checkout@v3
+
- name: Setup Python
+
uses: actions/setup-python@v4.6.0
+
with:
+
python-version: 3.10
+
cache: pip
+
- name: Install dependencies
+
uses: brettcannon/pip-secure-install@v1.0.0
+
- name: Setup Pages
+
uses: actions/configure-pages@v3
+
- name: Build
+
run: |
+
sudo apt-get install \
+
libcairo2-dev libfreetype6-dev libffi-dev libjpeg-dev libpng-dev libz-dev \
+
--yes
+
FF_ENABLE_COMMIT_DATA=true FF_GENERATE_SOCIAL_CARDS=true mkdocs build --use-directory-urls
+
- name: Upload artifact
+
uses: actions/upload-pages-artifact@v1
+
with:
+
path: './public'
+
- name: Deploy to GitHub Pages
+
id: deployment
+
uses: actions/deploy-pages@v2
+
repo-sync:
+
runs-on: ubuntu-latest
+
steps:
+
- name: Checkout repository with full history
+
uses: actions/checkout@v3
+
with:
+
fetch-depth: 0
+
- name: Setup Git user details
+
run: |
+
git config --global user.name "Recap Time Bot"
+
git config --global user.email "service-accounts+git@recaptime.eu.org"
+27
.gitlab-ci.yml
···
- lint
- deploy
+
build:mr:
+
extends: [ .setupkit ]
+
stage: build
+
script:
+
- bash ./bin/build.sh
+
artifacts:
+
paths:
+
- public
+
untracked: false
+
when: on_success
+
expire_in: "21 days"
+
cache:
+
paths:
+
- .cache
+
- .venv
+
key: pages-build-main
+
rules:
+
- if: $CI_COMMIT_BRANCH != 'main' && $CI_PIPELINE_SOURCE == "merge_request"
+
changes:
+
- mkdocs.yml
+
- markdown/*
+
- markdown/**/*
+
- .gitlab-ci.yml
+
- docker/Dockerfile
+
- package*.json
+
- .trigger-deploy
+
build:main:
extends: [ .setupkit ]
stage: build
+4
.gitpod.Dockerfile
···
+
# syntax=docker/dockerfile:1
FROM gitpod/workspace-full
# https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#linux
···
libjpeg-dev \
libpng-dev \
libz-dev
+
+
# https://docs.docker.com/build/install-buildx/
+
COPY --from=docker/buildx-bin:latest /buildx /usr/libexec/docker/cli-plugins/docker-buildx
# brew maintenance + install ShellCheck and Hadolint
RUN brew update && brew install hadolint shellcheck
+2
.gitpod.yml
···
source .venv/bin/activate
pip3 install -r requirements.txt
command: |
+
source .venv/bin/activate
+
# since it might not be carried on venv shell, we did this instead
FF_ENABLE_COMMIT_DATA=true mkdocs serve
name: site-localdev
+4 -2
.vscode/settings.json
···
"meta",
"global",
"deps-dev",
-
"docker"
+
"docker",
+
"scripts"
],
"conventionalCommits.autoCommit": false,
"conventionalCommits.promptCI": true,
-
"git.alwaysSignOff": true
+
"git.alwaysSignOff": true,
+
"gitlens.remotes": [{ "domain": "mau.dev", "type": "GitLab" }]
}
+1
.wakatime-project
···
+
tildeweb-ajhalili2006
+20 -10
README.md
···
# ~ajhalili2006's website
-
This is my sources for both [`andreijiroh.dev`](https://andreijiroh.eu.org) and tilde userpages in Ctrl-C Club and ~vern, built with Mkdocs + Material theme by ~squidfunk. (Sources for Gemini version of the website is available at `gmi` directory.)
+
[![Hosted on pages.dev](https://img.shields.io/badge/hosted%20on-pages.dev-orange?style=for-the-badge&logo=cloudflare)](https://pages.dev)
+
[![GitLab last commit](https://img.shields.io/gitlab/last-commit/ajhalili2006/tildeverse-web?gitlab_url=https%3A%2F%2Fmau.dev&style=for-the-badge)](https://mau.dev/ajhalili2006/tildeverse-web/commits)
-
Site content (exluding external content) is licensed
-
under CC BY-SA 4.0.
+
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.)
## Development
```bash
# clone the repo
# pick one on the clone URLs
-
git clone https://mau.dev/ajhalili2006/tildeverse-web
-
git clone git@git.sr.ht:~ajhalili2006/tildeverse-web
+
glab repo clone https://mau.dev/ajhalili2006/tildeverse-web
+
gh repo clone ajhalili2006/tildeverse-web
+
git clone git@git.sr.ht:~ajhalili2006/tildeweb
# maybe do this on a feature branch
-
git switch -c username/my-suggestion-here
+
git switch -c your-git-username/your-suggestion-here
# install deps via venv
python3 -m venv venv
···
# done?
git stage . && git commit --signoff
-
# send patches via GitLab through the CLI
-
glab -R https://mau.dev/ajhalili2006/tildeverse-web mr create --allow-collaboration -b main
+
# send patches via GitLab or GitHub through the CLI
+
glab -R https://mau.dev/ajhalili2006/tildeverse-web 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"
-
git config format.subjectPrefix "PATCH tildeweb"
+
git config format.subjectPrefix "PATCH tildeweb" # identification in archives + builds.sr.ht
git config --global sendemail.annotate yes
-
git config --global format.signOff true
+
git config --global format.signOff true # needed for compliance with Linux DCO
git send-email HEAD^
```
···
Please be reminded that while this is a personal open-source project, please expect long waiting
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
+
+
Unless otherwise noted,
+
+
The only thing that's not covered by this is [the favicon version](markdown/assets/images/favicon.png) of my profile picture.
+5 -3
bin/deploykit-pages.sh
···
#!/usr/bin/env bash
-
set -e
+
set -ea
if [[ $DEBUG != "" ]]; then
set -x
fi
## source vars from .env first ##
_root_directory_git=$(git rev-parse --show-toplevel)
-
export "$(xargs < "$_root_directory_git/.env")"
+
# shellcheck file=/dev/null
+
source "$_root_directory_git/.env"
_branch_name_git=$(git rev-parse --abbrev-ref HEAD)
_commit_sha=$(git rev-parse HEAD)
···
if [[ $DEBUG != "" ]]; then
set +x
-
fi
+
fi
+
set +a
+15 -6
docker/Dockerfile
···
-
FROM python:alpine3.17
+
# Since hadolint isn't in the package repos for Alpineyet, we'll copying from the offical
+
# Docker image instead.
+
FROM ghcr.io/hadolint/hadolint:latest-alpine AS hadolint-binary
+
+
# Since we're building against edge at risk
+
FROM alpine:edge AS buildkit
+
+
COPY --stage=hadolint-binary /bin/hadolint /usr/bin/hadolint
# https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#linux but for Alpine
+
# hadolint ignore=DL3018,DL3013
RUN apk add --no-cache \
cairo-dev \
freetype-dev \
···
libpng-dev \
zlib-dev \
bash \
-
coreutils
-
RUN /usr/local/bin/pip3 install \
+
coreutils \
+
python3 \
+
py3-pip \
+
py3-wheel \
+
shellcheck \
+
&& pip3 install --no-cache \
mkdocs-material \
mkdocs-redirects \
mkdocs-git-revision-date-localized-plugin \
pillow \
cairosvg
-
-
ENTRYPOINT [ "mkdocs" ]
-
CMD [ "serve" ]
+4 -3
markdown/_redirects
···
# internal redirects
/resume /user-manual/resume
-
/portfolio /user-manual/resume
+
#/portfolio /user-manual/resume
+
/dni /user-manual/dni
# external redirects
/blog https://ajhalili2006.substack.com
/pkgs https://gcdn.todo.com
-
/socials https://ajhalili2006.bio.link
+
/socials https://ajhalili2006.start.page
# user manual
/manual /user-manual
···
/privacy/coda /legal/privacy/coda
/legal/privacy/coda https://coda.io/@ajhalili2006/readme/privacy-policy-for-coda-hosted-pages-4
/coc https://coda.io/@ajhalili2006/readme/community-code-of-conduct-7
-
/code-of/conduct https://coda.io/@ajhalili2006/readme/community-code-of-conduct-7
+
/code-of-conduct https://coda.io/@ajhalili2006/readme/community-code-of-conduct-7
# this is obvious, right?
/favicon.ico /assets/images/favicon.png
+20
markdown/user-manual/boundaries.md
···
---
+
## General
+
+
* Don’t leak nor spill beans on what shouldn’t be discussed, especially confidential and personal stuff.
+
* Read my personal user manual in full before you ask.
+
* For fandom-related stuff and other things, consider [reading my DNI](./dni.md)
+
+
## Personal
+
+
!!! note
+
Looking for mental health parts, especially on neurodivergence/disability? You might be looking at [:material-wheelchair-accessibility::fontawesome-solid-brain: Neurodivergence and Disability](./neurodivergence-and-disability.md).
+
+
## Professional
+
+
## What happened when boundaries are disrespected?
+
+
Hopefully tantrums, meltdowns and shutdowns don’t happen in front of your own eyes in levels I can’t handle, especially the silent ones.
+
+
In most cases, I might be frustated
+
+
## What about your DNI (Do Not Interact) list?
+6 -3
markdown/user-manual/communications.md
···
### Office Hours
+
!!! warning "Currently left TBD due to school"
+
| Day | Regular Hours in PHT | Holidays / Rest Days [^1] |
| --- | --- | --- |
-
| Weekdays | | |
-
| Weekends | | |
+
| Weekdays | TBD | TBD |
+
| Weekends | TBD | TBD |
### Recap Time Squad specifics
* Work-related stuff should be discussed in Recap Time Squad’s 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` )
## Additional resources
TBD
-
[^1]: My regular rest days usually happen on Saturdays.
+
[^1]: My regular rest days usually happen on Saturdays, although they might be adjusted because of holidays and other reasons.
+21
markdown/user-manual/dni.md
···
+
# Do Not Interact List
+
+
!!! info "This content is also available on my multifandom Tumblr"
+
+
This page contains the list of people where ~ajhalili2006 specifically does not want to interact with them. It is expected for those who are affected by this DNI list to avoid following him, although blocking him is too much unless otherwise needed.
+
+
If spotted (even when following the Community Code of Conduct) in my his personal spaces (not in professional settings including Recap Time Squad, although his boundaries still apply), expect moderation actions up to and including wielding banhammers against your Tumblr blogs (plus other accounts across the internet).
+
+
## Table of contents
+
+
* General Shitfuckeries
+
* Shippers
+
* Dream Stans/Supporters
+
+
## Shippers
+
+
I’m not a pro-shipper, although sometimes things go horribly wrong when I ship people that shouldn’t be shipped. I’m more of a silent “ship responsibly” advocate like anyone else.
+
+
## (Toxic) Dream Stans/Supporters
+
+
I do not generally banhammer any people who support/stan Dream and the crew (aka Dream Team for the uninitiated), unless they do things toxic do fans in the interwebs.
+1 -1
markdown/user-manual/index.md
···
## Contents
-
Most of the links below will redirect you to the Coda version of my personal README
+
Although they originally editied in Coda, I slowly moving some of them here.
* [:material-chat: Communications](./communications.md)
* [:material-fence: Personal and professional boundaries](./boundaries.md)
+8
mkdocs.yml
···
- redirects:
redirect_maps:
"user-manual/portfolio.md": "portfolio.md"
+
"dni.md": "user-manual/dni.md"
+
"resume.md": "user-manual/resume.md"
+
"blog.md": "https://ajhalili2006.substack.com"
+
"socials.md": "https://ajhalili2006.start.page"
# debugging/bug reporting purposes only, proceed with caution
#- info
- git-revision-date-localized:
···
- md_in_html
- admonition
- abbr
+
- pymdownx.caret
+
- pymdownx.keys
+
- pymdownx.mark
+
- pymdownx.tilde
# extras
extra:
+5 -3
package.json
···
"version": "0.1.0",
"description": "Personal website for my tildes + Gemini version of blog posts",
"scripts": {
-
"dev": "./bin/localdev.sh",
-
"build": "mkdocs build",
-
"docker:ci": "docker build -t dock.mau.dev/ajhalili2006/tildeverse-web/build-ci:localdev ./docker"
+
"start": "npm run dev",
+
"dev": "bash ./bin/localdev.sh",
+
"build": "bash ./bin/build.sh",
+
"deploy": "./bin/deploykit-pages.sh",
+
"docker:ci": "DOCKER_BUILDKIT=1 docker build -t dock.mau.dev/ajhalili2006/tildeverse-web/build-ci:localdev ./docker"
},
"repository": {
"type": "git",
+1 -1
requirements.txt
···
mkdocs-git-revision-date-localized-plugin==1.2.0
-
mkdocs-material==9.1.4
+
mkdocs-material==9.1.9
mkdocs-minify-plugin==0.6.4
mkdocs-redirects==1.2.0
pillow