~ajhalili2006's personal website, built with Zensical (successor of Material for Mkdocs) andreijiroh.dev
mkdocs-material zensical website cf-pages
1

Configure Feed

Select the types of activity you want to include in your feed.

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>

Andrei Jiroh Halili (May 5, 2023, 9:24 AM UTC) 4df05ae9 81902a0b

+224 -32
+15
.env.example
··· 1 + # wrangler specifics, DO NOT LEAK SHIT! 2 + # see https://developers.cloudflare.com/workers/wrangler/system-environment-variables/ for details 3 + # After selecting your CF account, copy the account ID after dash.cloudflare.com/ into the 4 + # variable below. 5 + CLOUDFLARE_ACCOUNT_ID=cf0bd808c6a294fd8c4d8f6d2cdeca05 6 + # DO NOT PASTE IT IN .env.example file! 7 + CLOUDFLARE_API_TOKEN= 8 + # CLI options stuff 9 + WRANGLER_SEND_METRICS=true 10 + WRANGLER_LOG=log 11 + 12 + # build configurations as feature flags 13 + FF_ENABLE_COMMIT_DATA=true 14 + # applies at build time, make sure required deps for 15 + FF_GENERATE_SOCIAL_CARDS=false
+27
.gitlab-ci.yml
··· 22 22 - lint 23 23 - deploy 24 24 25 + build:mr: 26 + extends: [ .setupkit ] 27 + stage: build 28 + script: 29 + - bash ./bin/build.sh 30 + artifacts: 31 + paths: 32 + - public 33 + untracked: false 34 + when: on_success 35 + expire_in: "21 days" 36 + cache: 37 + paths: 38 + - .cache 39 + - .venv 40 + key: pages-build-main 41 + rules: 42 + - if: $CI_COMMIT_BRANCH != 'main' && $CI_PIPELINE_SOURCE == "merge_request" 43 + changes: 44 + - mkdocs.yml 45 + - markdown/* 46 + - markdown/**/* 47 + - .gitlab-ci.yml 48 + - docker/Dockerfile 49 + - package*.json 50 + - .trigger-deploy 51 + 25 52 build:main: 26 53 extends: [ .setupkit ] 27 54 stage: build
+4
.gitpod.Dockerfile
··· 1 + # syntax=docker/dockerfile:1 1 2 FROM gitpod/workspace-full 2 3 3 4 # https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#linux ··· 8 9 libjpeg-dev \ 9 10 libpng-dev \ 10 11 libz-dev 12 + 13 + # https://docs.docker.com/build/install-buildx/ 14 + COPY --from=docker/buildx-bin:latest /buildx /usr/libexec/docker/cli-plugins/docker-buildx 11 15 12 16 # brew maintenance + install ShellCheck and Hadolint 13 17 RUN brew update && brew install hadolint shellcheck
+2
.gitpod.yml
··· 15 15 source .venv/bin/activate 16 16 pip3 install -r requirements.txt 17 17 command: | 18 + source .venv/bin/activate 19 + 18 20 # since it might not be carried on venv shell, we did this instead 19 21 FF_ENABLE_COMMIT_DATA=true mkdocs serve 20 22 name: site-localdev
+1
.wakatime-project
··· 1 + tildeweb-ajhalili2006
+20 -10
README.md
··· 1 1 # ~ajhalili2006's website 2 2 3 - 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.) 3 + [![Hosted on pages.dev](https://img.shields.io/badge/hosted%20on-pages.dev-orange?style=for-the-badge&logo=cloudflare)](https://pages.dev) 4 + [![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) 4 5 5 - Site content (exluding external content) is licensed 6 - under CC BY-SA 4.0. 6 + This is my sources for both [`andreijiroh.(eu.org|dev)`](https://andreijiroh.eu.org) and tilde userpages in Ctrl-C Club and ~vern, 7 + built with Mkdocs + [Material theme](https://go.andreijiroh.eu.org/mkdocs-material) by [~squidfunk](https://go.andreijiroh.eu.org/squidfunk). 8 + (Sources for Gemini version of the website is available at `gmi` directory.) 7 9 8 10 ## Development 9 11 10 12 ```bash 11 13 # clone the repo 12 14 # pick one on the clone URLs 13 - git clone https://mau.dev/ajhalili2006/tildeverse-web 14 - git clone git@git.sr.ht:~ajhalili2006/tildeverse-web 15 + glab repo clone https://mau.dev/ajhalili2006/tildeverse-web 16 + gh repo clone ajhalili2006/tildeverse-web 17 + git clone git@git.sr.ht:~ajhalili2006/tildeweb 15 18 16 19 # maybe do this on a feature branch 17 - git switch -c username/my-suggestion-here 20 + git switch -c your-git-username/your-suggestion-here 18 21 19 22 # install deps via venv 20 23 python3 -m venv venv ··· 28 31 # done? 29 32 git stage . && git commit --signoff 30 33 31 - # send patches via GitLab through the CLI 32 - glab -R https://mau.dev/ajhalili2006/tildeverse-web mr create --allow-collaboration -b main 34 + # send patches via GitLab or GitHub through the CLI 35 + glab -R https://mau.dev/ajhalili2006/tildeverse-web mr create --allow-collaboration -b main 36 + gh -R ajhalili2006/tildeverse-web pr create # might automatically closes PR due to mirror status 33 37 34 38 # or via my public inbox on sourcehut 35 39 # see https://git-send-email.io for setup and guide 36 40 git config sendemail.to "~ajhalili2006/public-inbox@lists.sr.ht" 37 - git config format.subjectPrefix "PATCH tildeweb" 41 + git config format.subjectPrefix "PATCH tildeweb" # identification in archives + builds.sr.ht 38 42 git config --global sendemail.annotate yes 39 - git config --global format.signOff true 43 + git config --global format.signOff true # needed for compliance with Linux DCO 40 44 git send-email HEAD^ 41 45 ``` 42 46 ··· 46 50 Please be reminded that while this is a personal open-source project, please expect long waiting 47 51 times during pathc reviews and don't be disappointed when I disagree on stuff and chose not to merge 48 52 the patches for any reasons, including mental health breaks. 53 + 54 + ## License 55 + 56 + Unless otherwise noted, 57 + 58 + The only thing that's not covered by this is [the favicon version](markdown/assets/images/favicon.png) of my profile picture.
+8
mkdocs.yml
··· 110 110 - redirects: 111 111 redirect_maps: 112 112 "user-manual/portfolio.md": "portfolio.md" 113 + "dni.md": "user-manual/dni.md" 114 + "resume.md": "user-manual/resume.md" 115 + "blog.md": "https://ajhalili2006.substack.com" 116 + "socials.md": "https://ajhalili2006.start.page" 113 117 # debugging/bug reporting purposes only, proceed with caution 114 118 #- info 115 119 - git-revision-date-localized: ··· 137 141 - md_in_html 138 142 - admonition 139 143 - abbr 144 + - pymdownx.caret 145 + - pymdownx.keys 146 + - pymdownx.mark 147 + - pymdownx.tilde 140 148 141 149 # extras 142 150 extra:
+5 -3
package.json
··· 3 3 "version": "0.1.0", 4 4 "description": "Personal website for my tildes + Gemini version of blog posts", 5 5 "scripts": { 6 - "dev": "./bin/localdev.sh", 7 - "build": "mkdocs build", 8 - "docker:ci": "docker build -t dock.mau.dev/ajhalili2006/tildeverse-web/build-ci:localdev ./docker" 6 + "start": "npm run dev", 7 + "dev": "bash ./bin/localdev.sh", 8 + "build": "bash ./bin/build.sh", 9 + "deploy": "./bin/deploykit-pages.sh", 10 + "docker:ci": "DOCKER_BUILDKIT=1 docker build -t dock.mau.dev/ajhalili2006/tildeverse-web/build-ci:localdev ./docker" 9 11 }, 10 12 "repository": { 11 13 "type": "git",
+1 -1
requirements.txt
··· 1 1 mkdocs-git-revision-date-localized-plugin==1.2.0 2 - mkdocs-material==9.1.4 2 + mkdocs-material==9.1.9 3 3 mkdocs-minify-plugin==0.6.4 4 4 mkdocs-redirects==1.2.0 5 5 pillow
+4 -2
.vscode/settings.json
··· 15 15 "meta", 16 16 "global", 17 17 "deps-dev", 18 - "docker" 18 + "docker", 19 + "scripts" 19 20 ], 20 21 "conventionalCommits.autoCommit": false, 21 22 "conventionalCommits.promptCI": true, 22 - "git.alwaysSignOff": true 23 + "git.alwaysSignOff": true, 24 + "gitlens.remotes": [{ "domain": "mau.dev", "type": "GitLab" }] 23 25 }
+5 -3
bin/deploykit-pages.sh
··· 1 1 #!/usr/bin/env bash 2 - set -e 2 + set -ea 3 3 if [[ $DEBUG != "" ]]; then 4 4 set -x 5 5 fi 6 6 7 7 ## source vars from .env first ## 8 8 _root_directory_git=$(git rev-parse --show-toplevel) 9 - export "$(xargs < "$_root_directory_git/.env")" 9 + # shellcheck file=/dev/null 10 + source "$_root_directory_git/.env" 10 11 11 12 _branch_name_git=$(git rev-parse --abbrev-ref HEAD) 12 13 _commit_sha=$(git rev-parse HEAD) ··· 49 50 50 51 if [[ $DEBUG != "" ]]; then 51 52 set +x 52 - fi 53 + fi 54 + set +a
+15 -6
docker/Dockerfile
··· 1 - FROM python:alpine3.17 1 + # Since hadolint isn't in the package repos for Alpineyet, we'll copying from the offical 2 + # Docker image instead. 3 + FROM ghcr.io/hadolint/hadolint:latest-alpine AS hadolint-binary 4 + 5 + # Since we're building against edge at risk 6 + FROM alpine:edge AS buildkit 7 + 8 + COPY --stage=hadolint-binary /bin/hadolint /usr/bin/hadolint 2 9 3 10 # https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/#linux but for Alpine 11 + # hadolint ignore=DL3018,DL3013 4 12 RUN apk add --no-cache \ 5 13 cairo-dev \ 6 14 freetype-dev \ ··· 9 17 libpng-dev \ 10 18 zlib-dev \ 11 19 bash \ 12 - coreutils 13 - RUN /usr/local/bin/pip3 install \ 20 + coreutils \ 21 + python3 \ 22 + py3-pip \ 23 + py3-wheel \ 24 + shellcheck \ 25 + && pip3 install --no-cache \ 14 26 mkdocs-material \ 15 27 mkdocs-redirects \ 16 28 mkdocs-git-revision-date-localized-plugin \ 17 29 pillow \ 18 30 cairosvg 19 - 20 - ENTRYPOINT [ "mkdocs" ] 21 - CMD [ "serve" ]
+4 -3
markdown/_redirects
··· 1 1 # internal redirects 2 2 /resume /user-manual/resume 3 - /portfolio /user-manual/resume 3 + #/portfolio /user-manual/resume 4 + /dni /user-manual/dni 4 5 5 6 # external redirects 6 7 /blog https://ajhalili2006.substack.com 7 8 /pkgs https://gcdn.todo.com 8 - /socials https://ajhalili2006.bio.link 9 + /socials https://ajhalili2006.start.page 9 10 10 11 # user manual 11 12 /manual /user-manual ··· 16 17 /privacy/coda /legal/privacy/coda 17 18 /legal/privacy/coda https://coda.io/@ajhalili2006/readme/privacy-policy-for-coda-hosted-pages-4 18 19 /coc https://coda.io/@ajhalili2006/readme/community-code-of-conduct-7 19 - /code-of/conduct https://coda.io/@ajhalili2006/readme/community-code-of-conduct-7 20 + /code-of-conduct https://coda.io/@ajhalili2006/readme/community-code-of-conduct-7 20 21 21 22 # this is obvious, right? 22 23 /favicon.ico /assets/images/favicon.png
+65
.github/workflows/deploybot.yml
··· 1 + # Simple workflow for deploying static content to GitHub Pages 2 + name: Deploy website CI 3 + 4 + on: 5 + # Runs on pushes targeting the default branch 6 + push: 7 + branches: ["main"] 8 + 9 + # Allows you to run this workflow manually from the Actions tab 10 + workflow_dispatch: 11 + 12 + # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages 13 + permissions: 14 + contents: read 15 + pages: write 16 + id-token: write 17 + 18 + # Allow only one concurrent deployment, skipping runs queued between the run in-progress and latest queued. 19 + # However, do NOT cancel in-progress runs as we want to allow these production deployments to complete. 20 + concurrency: 21 + group: "pages" 22 + cancel-in-progress: false 23 + 24 + jobs: 25 + gh-pages: 26 + environment: 27 + name: github-pages 28 + url: ${{ steps.deployment.outputs.page_url }} 29 + runs-on: ubuntu-latest 30 + steps: 31 + - name: Checkout 32 + uses: actions/checkout@v3 33 + - name: Setup Python 34 + uses: actions/setup-python@v4.6.0 35 + with: 36 + python-version: 3.10 37 + cache: pip 38 + - name: Install dependencies 39 + uses: brettcannon/pip-secure-install@v1.0.0 40 + - name: Setup Pages 41 + uses: actions/configure-pages@v3 42 + - name: Build 43 + run: | 44 + sudo apt-get install \ 45 + libcairo2-dev libfreetype6-dev libffi-dev libjpeg-dev libpng-dev libz-dev \ 46 + --yes 47 + FF_ENABLE_COMMIT_DATA=true FF_GENERATE_SOCIAL_CARDS=true mkdocs build --use-directory-urls 48 + - name: Upload artifact 49 + uses: actions/upload-pages-artifact@v1 50 + with: 51 + path: './public' 52 + - name: Deploy to GitHub Pages 53 + id: deployment 54 + uses: actions/deploy-pages@v2 55 + repo-sync: 56 + runs-on: ubuntu-latest 57 + steps: 58 + - name: Checkout repository with full history 59 + uses: actions/checkout@v3 60 + with: 61 + fetch-depth: 0 62 + - name: Setup Git user details 63 + run: | 64 + git config --global user.name "Recap Time Bot" 65 + git config --global user.email "service-accounts+git@recaptime.eu.org"
+20
markdown/user-manual/boundaries.md
··· 6 6 7 7 --- 8 8 9 + ## General 10 + 11 + * Don’t leak nor spill beans on what shouldn’t be discussed, especially confidential and personal stuff. 12 + * Read my personal user manual in full before you ask. 13 + * For fandom-related stuff and other things, consider [reading my DNI](./dni.md) 14 + 15 + ## Personal 16 + 17 + !!! note 18 + 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). 19 + 20 + ## Professional 21 + 22 + ## What happened when boundaries are disrespected? 23 + 24 + Hopefully tantrums, meltdowns and shutdowns don’t happen in front of your own eyes in levels I can’t handle, especially the silent ones. 25 + 26 + In most cases, I might be frustated 27 + 28 + ## What about your DNI (Do Not Interact) list?
+6 -3
markdown/user-manual/communications.md
··· 40 40 41 41 ### Office Hours 42 42 43 + !!! warning "Currently left TBD due to school" 44 + 43 45 | Day | Regular Hours in PHT | Holidays / Rest Days [^1] | 44 46 | --- | --- | --- | 45 - | Weekdays | | | 46 - | Weekends | | | 47 + | Weekdays | TBD | TBD | 48 + | Weekends | TBD | TBD | 47 49 48 50 ### Recap Time Squad specifics 49 51 50 52 * 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). 51 53 * Ping me when only needed. Also, DO NOT ping @everyone. 54 + * I don't usually read email, but if you sent me some important emails (via my `@crew.recaptime.eu.org` ) 52 55 53 56 ## Additional resources 54 57 55 58 TBD 56 59 57 - [^1]: My regular rest days usually happen on Saturdays. 60 + [^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
··· 1 + # Do Not Interact List 2 + 3 + !!! info "This content is also available on my multifandom Tumblr" 4 + 5 + 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. 6 + 7 + 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). 8 + 9 + ## Table of contents 10 + 11 + * General Shitfuckeries 12 + * Shippers 13 + * Dream Stans/Supporters 14 + 15 + ## Shippers 16 + 17 + 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. 18 + 19 + ## (Toxic) Dream Stans/Supporters 20 + 21 + 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
··· 21 21 22 22 ## Contents 23 23 24 - Most of the links below will redirect you to the Coda version of my personal README 24 + Although they originally editied in Coda, I slowly moving some of them here. 25 25 26 26 * [:material-chat: Communications](./communications.md) 27 27 * [:material-fence: Personal and professional boundaries](./boundaries.md)