Compare commits

...

10 commits

Author SHA1 Message Date
c0f2eec0ea
Update from github to forgejo 2024-03-02 15:32:57 +03:00
cde0bc071e
Pull the tabi theme 2024-03-02 15:32:34 +03:00
aeb4da0b09
Update my email and pgp 2024-03-02 15:16:06 +03:00
Awiteb
b873356146
Remove domain section
Remove the domain section from `about` post
2024-02-27 17:04:27 +03:00
Awiteb
5e501aa8a4
Add CNAME file, contains my domain 2024-02-27 16:58:00 +03:00
Awiteb
37231a687b
Fix typos 2024-02-27 16:50:21 +03:00
Awiteb
ad18b87239
Short up the main paths
- `archive` -> `a`
- `blog` -> `b`
- `projects` -> `p`
2024-02-27 16:47:33 +03:00
Awiteb
7603954f86
Pull the tabi theme 2024-02-27 16:33:06 +03:00
Awiteb
9edb4a81f4
Add Justfile and delete github workflows 2024-02-27 16:21:31 +03:00
Awiteb
0c0ddcf97d
Update checkout to v4 and unbuild the themes 2024-02-20 21:21:04 +03:00
15 changed files with 101 additions and 89 deletions

View file

@ -1,17 +0,0 @@
on:
push:
branches:
- master
jobs:
deploy:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Build and deploy zola
uses: shalzz/zola-deploy-action@master
env:
PAGES_BRANCH: gh-pages
TOKEN: ${{ secrets.PAT }}
BUILD_THEMES: true

1
CNAME Normal file
View file

@ -0,0 +1 @@
4rs.nl

20
Justfile Normal file
View file

@ -0,0 +1,20 @@
OUT_DIR := "public"
@build:
zola build -o {{OUT_DIR}} --force
@deploy: build
#!/usr/bin/env bash
cd {{OUT_DIR}}
git init .
git checkout -B gh-pages
touch .nojekyll
git add .
git commit -m "Deploy blog to github pages"
git remote add origin $(git --git-dir ../.git remote get-url origin)
git push origin gh-pages -f
cd ..
rm -fr {{OUT_DIR}}
@install-tools:
echo "Run: `curl -s -L https://github.com/getzola/zola/releases/download/v0.18.0/zola-v0.18.0-x86_64-unknown-linux-gnu.tar.gz | sudo tar xvzf - -C /usr/local/bin`"

View file

@ -1,3 +1,13 @@
## My personal blog (Arabic) ## My personal blog (Arabic)
This is my personal blog, where I write about programming, open source, and other things that I find interesting. I write in Arabic This is my personal blog, where I write about programming, open source, and other things that I find interesting. I write in Arabic
## Deployment
> [!NOTE]
> This only works in Linux (and maybe MacOS).
To deploy this blog to GitHub Pages, you need to run `deploy` task in the `Justfile` file:
```bash
just deploy
```

View file

@ -1,4 +1,4 @@
base_url = "https://awiteb.is-a.dev" base_url = "https://4rs.nl"
default_language = "ar" default_language = "ar"
theme = "tabi" theme = "tabi"
@ -70,7 +70,7 @@ previous_next_article_links_full_width = false
# $AUTHOR will be replaced by the `author` variable. # $AUTHOR will be replaced by the `author` variable.
# $SEPARATOR will be replaced by the `separator` variable. # $SEPARATOR will be replaced by the `separator` variable.
# Markdown is supported (links, emphasis, etc). # Markdown is supported (links, emphasis, etc).
copyright = "© $CURRENT_YEAR $AUTHOR $SEPARATOR المحتوى الموجود في هذا الموقع متاح بموجب ترخيص [CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/deed.ar)." copyright = "© $CURRENT_YEAR $AUTHOR $SEPARATOR هذا المحتوى مرخص بموجب رخصة [المشاع الإبداعي 4.0](https://creativecommons.org/licenses/by-sa/4.0/deed.ar)"
# Remote repository for your Zola site. # Remote repository for your Zola site.
# Used for `show_remote_changes` and `show_remote_source` (see below). # Used for `show_remote_changes` and `show_remote_source` (see below).
@ -138,9 +138,9 @@ favicon = "/favicon.png"
social_media_card = "img/social_cards/index.jpg" social_media_card = "img/social_cards/index.jpg"
menu = [ menu = [
{name = "blog", url = "blog/"}, {name = "blog", url = "b/"},
{name = "archive", url = "archive/"}, {name = "archive", url = "a/"},
{name = "projects", url = "projects/"}, {name = "projects", url = "p/"},
] ]
# Extra menu to show on the footer, below socials section. # Extra menu to show on the footer, below socials section.
@ -156,13 +156,13 @@ feed_icon = true
# Protect against spambots: # Protect against spambots:
# 1. Use base64 for email (convert at https://www.base64encode.org/ or `printf 'your@email.com' | base64`). # 1. Use base64 for email (convert at https://www.base64encode.org/ or `printf 'your@email.com' | base64`).
# 2. Or, set 'encode_plaintext_email' to true for auto-encoding (only protects on site, not in public repos). # 2. Or, set 'encode_plaintext_email' to true for auto-encoding (only protects on site, not in public repos).
email = "QXdpdGViQHBtLm1l" email = "YUA0cnMubmw="
# Decoding requires ~400 bytes of JavaScript. If JS is disabled, the email won't be displayed. # Decoding requires ~400 bytes of JavaScript. If JS is disabled, the email won't be displayed.
encode_plaintext_email = false # Setting is ignored if email is already encoded. encode_plaintext_email = false # Setting is ignored if email is already encoded.
# The icons available can be found in "social_icons" in the "static" folder # The icons available can be found in "social_icons" in the "static" folder
socials = [ socials = [
{name = "github", url = "https://github.com/TheAwiteb/", icon = "github"}, {name = "forgejo", url = "https://git.4rs.nl/", icon = "forgejo"},
{name = "telegram", url = "https://t.me/TheAwiteb", icon = "telegram"}, {name = "telegram", url = "https://t.me/TheAwiteb", icon = "telegram"},
{name = "Bassam", url = "https://bassam.social/@me", icon = "mastodon"}, {name = "Bassam", url = "https://bassam.social/@me", icon = "mastodon"},
] ]

View file

@ -8,7 +8,7 @@ insert_anchor_links = "left"
[extra] [extra]
header = {title = "اهلآ، انا عويتب", img = "/img/awiteb-profile.png"} header = {title = "اهلآ، انا عويتب", img = "/img/awiteb-profile.png"}
section_path = "blog/_index.md" section_path = "b/_index.md"
social_media_card = "img/social_cards/index.jpg" social_media_card = "img/social_cards/index.jpg"
max_posts = 4 max_posts = 4
+++ +++

View file

@ -4,4 +4,5 @@ path = "archive"
template = "archive.html" template = "archive.html"
[extra] [extra]
section_path = "b/"
+++ +++

View file

@ -1,6 +1,6 @@
+++ +++
paginate_by = 5 paginate_by = 5
path = "/blog" path = "/b"
title = "تدويناتي" title = "تدويناتي"
sort_by = "date" sort_by = "date"
template = "section.html" template = "section.html"

View file

@ -5,9 +5,9 @@ weight = 30
[extra] [extra]
local_image = "/img/projects/salvo-captcha/banner.png" local_image = "/img/projects/salvo-captcha/banner.png"
canonical_url = "https://awiteb.is-a.dev/projects/doteki/" canonical_url = "https://4rs.nl/p/salvo-captcha/"
+++ +++
<!-- social_media_card = "social_cards/projects_doteki.jpg" --> <!-- social_media_card = "/img/projects/salvo-captcha/social.jpg" -->
هي وسيطة تساعدك على اضافة CAPTCHA إلى تطبيقك بسهولة. هي وسيطة تساعدك على اضافة CAPTCHA إلى تطبيقك بسهولة.

View file

@ -26,17 +26,14 @@ social_media_card = "/img/social_cards/about.jpg"
### مكان إستضافتها ### مكان إستضافتها
يتم استضافتها على [GitHub Pages](https://pages.github.com/) وهي خدمة مقدمة من GitHub لإستضافة المواقع التي لاتتطلب خادم لتعمل. يتم استضافتها على [GitHub Pages](https://pages.github.com/) وهي خدمة مقدمة من GitHub لإستضافة المواقع التي لاتتطلب خادم لتعمل.
### النطاق المُستخدم
تستخدم المدونة نطاق [is-a.dev](https://is-a.dev) وهو نطاق مقدم من [Akshay Nair](https://github.com/phenax) إلى العامة لأخذ نطاق فرعي منه بشكل مجاني، لمعرفة المزيد يمكنك إلقاء نظرة على صفحة النطاق.
## طرق التواصل معي ## طرق التواصل معي
طريقة التواصل التي ستستخدمها للتواصل معي تعتمد على سبب التواصل، وهذه هي الطرق ويجب عليك اختيار طريقة التواصل الصحيحة بناءً على سبب تواصل. طريقة التواصل التي ستستخدمها للتواصل معي تعتمد على سبب التواصل، وهذه هي الطرق ويجب عليك اختيار طريقة التواصل المناسبة بناءً على سبب التواصل.
### تعليقات المدونة ### تعليقات المدونة
لكل تدوينة يوجد خانة تعليقات في أسفلها، ستستخدمها إذا كان سبب التواصل هو الإستفسار عن شيء يخص التدوينة نفسها ولا يخرج عن نطاقها. لكل تدوينة يوجد خانة تعليقات في أسفلها، ستستخدمها إذا كان سبب التواصل هو الإستفسار عن شيء يخص التدوينة نفسها ولا يخرج عن نطاقها.
### البريد الإلكتروني ### البريد الإلكتروني
تواصل معي عبر البريد الالكتروني إذا كان موضوعك لايتطلب الدردشة ويمكن الرد عليه برسالة واحدة. تجد البريد الخاص بي أسفل جميع صفحات المدونة، وستجد ايضآ مفتاح الـ PGP الخاص بي، ومن المهم أن تستخدمه عند إرسالك رسالة لي، [للمزيد](https://awiteb.is-a.dev/pgp/). تواصل معي عبر البريد الالكتروني إذا كان موضوعك لايتطلب الدردشة ويمكن الرد عليه برسالة واحدة. تجد البريد الخاص بي أسفل جميع صفحات المدونة، وستجد ايضآ مفتاح الـ PGP الخاص بي، ومن المهم أن تستخدمه عند إرسالك رسالة لي، [للمزيد](https://4rs.nl/pgp/).
### التيليجرام ### التيليجرام
تواصل معي عبر تطبيق التيليجرام إذا كان موضوعك يتطلب الدردشة ولايمكن الرد عليه برسالة واحدة. ستجد التيليجرام الخاص بي أسفل جميع صفحات المدونة تواصل معي عبر تطبيق التيليجرام إذا كان موضوعك يتطلب الدردشة ولايمكن الرد عليه برسالة واحدة. ستجد التيليجرام الخاص بي أسفل جميع صفحات المدونة

View file

@ -14,57 +14,57 @@ social_media_card = "/img/social_cards/pgp.jpg"
<summary>مفتاح الـPGP</summary> <summary>مفتاح الـPGP</summary>
<div dir=ltr> <div dir=ltr>
```plaintext ```txt
-----BEGIN PGP PUBLIC KEY BLOCK----- -----BEGIN PGP PUBLIC KEY BLOCK-----
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 Q6W3yUjcrXRCIftqkLZ87dO+AkkhtCmFFCqhd94=
=oSci =9prh
-----END PGP PUBLIC KEY BLOCK----- -----END PGP PUBLIC KEY BLOCK-----
``` ```
@ -77,4 +77,4 @@ IJtqbB8SmKxXEU1kiIALlOGmPkHMASb30SrB1zftwZLw
## تنويه قبل الإرسال ## تنويه قبل الإرسال
يُفضل إرفاق مفتاحك العام مع الرسالة، ليمكنني الرد عليك بشكل آمن يُفضل إرفاق مفتاحك العام مع الرسالة، ليمكنني الرد عليك بشكل آمن
[pgp.help]: https://pgp.help/#/permalink?pgp=-----BEGIN%20PGP%20PUBLIC%20KEY%20BLOCK-----%0D%0AVersion:%20OpenPGP.js%20v1.5.7%0D%0AComment:%20https:~2F~2Fpgp.help%0D%0A%0D%0AxsFNBGW4vgsBEADhexvUlbMz7X0QecUZgwvpzc1KHRSBTFS5Wgdz1xhOPMnY%0AT11zTLlxRpBdAaGXxJyaxavQqYyi9eqGqGvIhTVUM3zpixAydhPM1Z0gR6Sv%0Ave9AqGjJQDrLwRBujHd0YF8ke4xVHkkaYJGIIWbMp~2FyTVj4InhppBMi6rWRM%0AZyKyOIIuFvPh1IsMxlinEOec8G7~2FCQy8y1v1Js9PakQrSBJMaxRIOuZSacir%0AZU5qUFbthikUynyJ%2BjrEJMwKIg2jeWuDdO2b0928iKj5hOSEu96KOQYuLGbo%0A3VQGMi3PwFZAhrjdeF8Mb5a2BDbPGbtG3u9bhpLTYvrbdD0urStsMXUxVDfO%0AAnt1UQNkrfjhYcNlPyvcMZRbQFgy2nwGminot~2Fi1nEsFHEcYMow2d8sGJYC9%0Ai7A6oC2V4LwAuFzWZ68qgYebBllp7bkAwK7JMgYKRBmxBJD%2B5CP4ihVjcuM9%0AyZr10kFBBqGQUVOLGtEnshXUmJ1iB%2BzYwXBIEVn0cSe1MGUvLIgKb~2F0APItG%0AJJD%2B1hJDnr9RQPDtSGTH67rT3~2FMGQtjR6YiTm7AVCvkbrTx6nBT7jtCs27my%0AL2FT5TrlOTZhBcNrzcczempvJ~2FC%2BQJWIlbMxG1OC77kbi4kZI0ru0cHT3Lhi%0A7PzPIk~2FuZ%2Ba1oX4EAIgIYKVRZlQhD98gDLYMjwARAQABzRVBd2l0ZWIgPEF3%0AaXRlYkBwbS5tZT7CwY4EEwEKADgWIQQEp7LcqFGCpldziCQWyK0LScOciAUC%0AZbi%2BCwIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRAWyK0LScOciATu%0AEACAJdT~2F8w5MOi8lda~2FS2QVCURKhj0HPcHl0Nb7%2BZuhB~2FZvYCM55wFl86eq2%0AvUTdO11FC567TXMbMjxeM~2F4UvPPUdeR6q%2Bvwi4Xvepq0JW0QN8qa9DX3FRfK%0ANonoZKN~2FKwpgdRwuecw1OeaSfZvjkWZjpRIZJG~2F0d5HlLZIPRHLgRCmd2tPq%0AZNV79evijqQnhHaw8AKB9cNGaCUpVp%2BRzfEo7DYd4U2~2FpP%2BI5f7qYq2gjEK3%0Ah1a34Qz0g0nH8q77KKZYyCyXMqa%2BmYWC3~2F0Y6MfRRCoG6NxP6A9SdQAw~2FGu7%0AsfxsprUqT~2FXkGeohcpLcB1AcFOR5fD6FAmEgmmz~2FtNDBKffAl07NnrytibUc%0AESbVO0qSB%2B~2FibO14~2Fi1BlU~2F4JGKLfOrnx9%2BV76gI8shnyAOFDwlj6wPQDrK~2F%0ABUKGjY48T~2FyEkWGiiiV16fUBNp%2Bp2RDIdRX4wEX6ThBzjQXwf43isWTm9HN~2F%0Aarl~2FheD9VFHkbiUQrTXq8qLUl2hqNqmPodLO8~2FyIoJuQIVZBppOAkLHpM%2B6t%0AsLw~2Fcou31msXrwp~2FV76vJzP1bVWsa8bEW%2BjRBiR59fF4gePmULBo~2Fn%2BhoMxP%0AfsQq4~2FG8%2B%2BrvhinBWqjgubmEJDrG0qrELbCj1~2F1C~2F1Uw5labutKFDlHrfw2c%0ALHVHPz0lV6tXatXb0iRDcLcLNM7BTQRluL4LARAArgd~2F9Zp0aBpjfiOHVG47%0ADNnINDk5fkGkhleVBb1HPnCObiQFQte~2FcwJJzkZ4sPu%2BD0Xv88usYCcBwav5%0A4QcBTiQHj6ixjzQz7P%2BD7LHEBLkoj9XJHB9fFXKdt23t2YQ4L2xvh62tlds2%0AyZ4bIy3YehOc%2B%2Bc0USmaRLIxFfCDuPe7nzSKPWtro5T7V1ndRJVxtw8igqzL%0AongALvoNY8i~2F%2BtghuVqcvSXDYnmVJx4ciuI%2BwP0~2FUf0yERJfEXIbSEQaypRY%0A%2BmTZ66zLQG2PU0upywWFmdgRt%2BZumLmb5UTTqYNwBdaRQWg3E3OlFeFGUFKd%0AkeB0NX74Ig1HA~2F%2BFlT9w6Omf9U9OeQdrH4nrNYME0GYb5uskxFbe5omrHrA~2F%0AxCfDVsp65kJSztxtD6VKUwijydmRtfWMtudIkihFhXMd1v0E%2BL%2BIBPkC4neN%0AJJzEqya8xOUocR2NNbQbd7WrzuHnKoXMnJKsVFyaJs3mevZNaCLx1M3rKf6O%0ALKT2y~2F94nx%2BreU%2BaTJ67GPHvoWJiXyaa2eRE1HJ78t1YiZpJh1x0YvXIwofP%0At6XCpAgD75QrvCglVqClKcNAXv~2FwZeC0hWUCqLNuwZ8IX93pOZAP23vNmtji%0Ai~2FgH5QNXRaaJtc%2Ba8ivDr8iPqcUJeph46dM9Mkd25iZ%2BFhw5t5rx621dTFaa%0ALDcAEQEAAcLBdgQYAQoAIBYhBASnstyoUYKmV3OIJBbIrQtJw5yIBQJluL4L%0AAhsMAAoJEBbIrQtJw5yIM5EP~2F2pwGwgKpxPcTOFpAnIqqeR87i~2F8yDe~2FRY%2Bl%0AXgFEmwQhRxWIBPJihISQNCF32Jw47uYxzZG~2Farjim~2FYwVmqHFFqoV02sYOxx%0AYzDUkwGQfoIumO4awb5MbrImr08TPyTi65mUXvJTVWJAQus19QZEF0162c6N%0Acxo7Cuiiujt3h96RdtiH8dY%2BCMYHERfwYi3NP1Yy8LMHeyRjXLOn%2B5vsbnaj%0Ag1aZybFU57psCzfh0nLbdXnlJU08euORPs3Gq%2BsVW60JF9jfKdsMQX0TMVNu%0ACfS3ZtFDPXtrGJcZd%2BsTqYO%2BO2rwtj0vNmaVe892RMGFmHeMhNEa3KZEFngJ%0AykjTSFR~2FzOw%2BRtCwTNdOkH3ZlyC7tC0oFi86mGbiS8zY1TyRvfnbLVcy8D0y%0AmjQ9J35ZTK8HmdQhU1cD04ES1avfO5xksgZITY3Nwahld9PudXPRJcppQUUR%0AoZjK7E28%2BUOBemW~2Fsm%2BO7%2BWjIHAWi0FVfUA6Y~2FcLY87tUDAh4hKjyE0Fg%2BIw%0AsICIu%2BtsCf965AldFEKVsuTwUhLuJInEHEQcWlGoZBfkkxbJl%2BNWWtuEKF08%0A8Z~2FNq3GTmbF2KTKBG1jMWOVRUBtl1rNdh8%2BGhfpVMPvdYTBg0L5Sk~2Fl8Qki7%0AaO8qIJtqbB8SmKxXEU1kiIALlOGmPkHMASb30SrB1zftwZLw%0D%0A%3DJTtY%0D%0A-----END%20PGP%20PUBLIC%20KEY%20BLOCK-----%0D%0A%0D%0A [pgp.help]: https://pgp.help/#/permalink?pgp=-----BEGIN%20PGP%20PUBLIC%20KEY%20BLOCK-----%0A%0AmQINBGXeB%2BoBEACmdJ1TsCoVpFH5echFXkfNBYea3JYqlIqdobqfA1E2LQUffY%2Bh%0ApvsdIkYs%2BUQzLDmFn%2FMbrRJOiNqxNEOAXGU3ofX4Qd%2F8S9lzMab9%2FW3JrqiJfnus%0A2aOHemLR5uOyc6vIWWdqT7azK2gTLPQqJ8OTpDNYUN%2FM6aQyn9eYJY9TgwymORVF%0AnXwgdEP0qTyYgmmpyxd52ux3c6VGTrVBNPSkkCWQlVl7qInbfFbfkB2RI7LpgHIw%0APXwuvGA4SRdtYa0qPcBXtJwO746l74X9qe9TqYtdpC%2BDZuAy0cCJkOel96SgmGTm%0AnVqnK7FzckzgbPP7pC88xIPdjQi%2FyXqKq4GZq53trYM6y%2FmCJBycAEhf%2Fu%2B%2Bn4Yk%0ABVcyXK51TDUr8UTlj%2Fky7gQJbXOlwk30lfi7JqOjWK8aFHm0xQ8oL6bfbJmSVZVL%0ALcy9DPoUMHOx%2BJSP%2FgKnUVFWRmgGdx3r%2Bl1kGnuDSmAKABviwqXoESr%2FBsFsFZ4%2F%0AZvYQb2l5zhKa%2BZi5ACYzcnmmLChiwcXlg1HVxeivu4r6Go8hk42DxIuZ9vq359Va%0AF7Og%2BR8S2nY8ALEIXcUR%2BvsW%2F6c69zlFqdtF%2FZZvBZeCRYfozwKI6m4NACKOPFDJ%0A5MVeVf5MhoJR372ZmVGPmwbYhHMOy8%2B9qTxPqESm2J%2BP%2B2Ii%2FXxuoUZAkwARAQAB%0AtBFBd2l0ZWIgPGFANHJzLm5sPokCTgQTAQoAOBYhBE8OBoaxyFC6%2Be2f3z9rVWQK%0ApmgvBQJl3gfqAhsDBQsJCAcCBhUKCQgLAgQWAgMBAh4BAheAAAoJED9rVWQKpmgv%0A6dsP%2FRHIO5VhblfdWQl9xjBf8C4NiwcBONy49BfVbt6XCH31E4xBGGF3ZJq4aSwb%0ABbCvGA5jM2nsT1%2Fb3p5%2BuCEbPmo0XiDnStsx5YDuivI2zJOHjW7Dddm4hsIjALrH%0ApkOqAlSqZbDiKzEurGmdR3fAos0v3%2BaWzr%2FMGh%2B2PVG81BBS3qs%2BEdWWxkrDZcUs%0AFV7Wwh2v0t7kDBs6Hdbnwynl9h78%2FnE%2BDvkTTnjCFHDNVRmhUMJmmqBvmmZh1oAn%0ADxo6Xzhq6MVP%2B%2FK37VvBrwdBhJ3wWX11GqPdsDX%2BvE17orswEe5XP1oMIr9PYZ2Q%0AZAzzrhylq8FEVJYB5zulxstyTw6L%2F6aThI0syNYzytva02fW5TJHe9Z%2BfTN4grtK%0AGwu%2FvwYsU2ZkG7qsvyMg1SQ1wjkyYrnKiZiCW1hTUI1bRmEZb8RoJ3NA2yzcRWUW%0Ap1Rub1swFzdyDbdIKymjdUYaZ%2B0soRzcy6zqQDXNGQFVUGsbemd%2F%2FR3CNdTWaHDz%0A8cYpEQdMASAOMXI%2F6BUsAu0RIoX4tnv2T5QfdvHAG6pmtvqetFHnJ7J78a82tzQx%0AtJywsfVvOsU7Aui6NO2PqKIE5zsV3xFrDExKF3LCyNE4dQxzF%2BadSiopkti9ChzP%0Ap2VPGAIip39jpt%2FXf0YR5QZ36hm9RGfjW7PnnZbkm%2BZQ%2B1PbuQINBGXeB%2BoBEAC%2B%0A36opwrd%2BZznKoC8VZKSYHCtzOr69ZlQ4ZId3%2FAC9SOglGrcp3wwuMfMICwo9TxWk%0AvQmFW73F8GTds7pai40o0ykQ6DrAznznd9tVud4e7%2BgysoEyrryz1PzLojQqkRNJ%0AF4ZVm%2BkzbC5q8behVoCIkfKjew8tVd%2BZF3YCizwSDM%2FR3nlpLuSipgmReNg55D6c%0ALalTlH4%2BfV3LzjEUVLxQZXqwFWilzHns7n0T1R1Qat%2FxpGA93zMXMbIHUGnaFoRh%0AK1L2souhaOwYPMRcssvHg%2BP9tci9F3f9pkwtZpqvAUx%2FDCdH3n4ZlGMyNuDEp%2Bc1%0A6R2ZpoT7hcvPMvTEXCT7zlIRzVFPiu4dgquLIoNO32Job5AqlAJi5%2BWMIt5NHyvw%0AOq6QTQL0nzE8ZJTsXDUbaw45QIAyam1qbMy4TJ%2Fu0E7BDpUowIjTaHModaFQfEeH%0AqQMT4jguFKYgX5OwRFEUfI%2Bon6c0NbhCzQ0pCDawqZHKvtnYKlhlNu36Zx0ZN7dP%0AdciYFeVwb9b9vR%2FRwhLedcLxZtPHQs0CUj37Xo7UvoniVKEbJDfZ3UkPAX51bREY%0AEdwZuTgHkhNeMNow7HaDDHoZttMYglNBon9%2BMKGiIMvoXagiL2fgKwTpR0yuYjUl%0AXU05MrN5FuNJoWrgrTkTkEw%2Bslr1qMPEFNr9PBGtxQARAQABiQI2BBgBCgAgFiEE%0ATw4GhrHIULr57Z%2FfP2tVZAqmaC8FAmXeB%2BoCGwwACgkQP2tVZAqmaC%2BrEg%2F%2FTVxZ%0A4G8tDUFcPREafaf%2B%2FJkeHS9wfPuGos3ayx4l3WlESG%2FvJqcusJSm%2Bc6VmEVksEbg%0AAl1rfcogbApw9wE3FO9fWZPLnJe1hLgT8gpza2I8T4OmMAm1XCp1H8JjJcxbQIc2%0A6bILu9rV92OFCnY2mK%2B%2B%2FZjJKON2UobuqB3g2KpuCvDI7ctTR2Pqmq%2BxVrBSf3ZY%0APXdD1whtubqf9%2FrWNFowv0oO0fVXab6Og7RdojYZWVqxm1LnPyMIBAXnCUVfhrza%0A1zbqWnP8TemtkLI3uhV%2BWf7SWC4wE6w3cH4awofijgwUe5rv5R5CgVf7ySjC7ojU%0AQ84aIm57nPFXEMEd6SGWtsRJublZ7queqt33DFWXK%2FDcT8f1pvBP12TO6omyB7pR%0Al%2Bn6wtnvZ51r27YOx%2BIh1PXjWvKTX%2BS7fnlUHA4X76EAg0CcCoSgBNYveaMhgnhk%0ADVJRol9AUoOoJUt9WdYSyzx7b9f6LrWLrkJKQHz3q1XV5yPuLLz14E%2BFvXPjmj1m%0AeoWb0Iat52gAxMlat4w6T8MP%2BNOxhQHnsjWh4SsodPAqOeu%2FzZZ5Z47CaaJD89Pl%0AuQ8wO1AyLZ5%2BsH3VXB7dpK2jDPykzV61OVWr6YhWaq5Gk3QG6PVcOKm9LBkp66OW%0AQ6W3yUjcrXRCIftqkLZ87dO%2BAkkhtCmFFCqhd94%3D%0A%3D9prh%0A-----END%20PGP%20PUBLIC%20KEY%20BLOCK-----

View file

@ -6,7 +6,7 @@
# - Update the header of an article or add a new header (command: update) # - Update the header of an article or add a new header (command: update)
# #
# License: MIT License # License: MIT License
# Copyright: (c) 2024 Awiteb <Awiteb@pm.me> # Copyright: (c) 2024 Awiteb <a@4rs.nl>
import sys import sys
@ -52,7 +52,7 @@ def now() -> str:
class Article: class Article:
def __init__(self, name: str) -> None: def __init__(self, name: str) -> None:
self.name = name self.name = name
self.path = f"content/blog/{name}/index.md" self.path = f"content/b/{name}/index.md"
self.headers = { self.headers = {
"global": {}, "global": {},
"taxonomies": {}, "taxonomies": {},

View file

@ -1,11 +1,11 @@
#! /usr/bin/env nu #! /usr/bin/env nu
def main () { def main () {
let paths: list<string> = (git diff --name-only | split row "\n" | filter {|p| $p | str contains "content/blog"}); let paths: list<string> = (git diff --name-only | split row "\n" | filter {|p| $p | str contains "content/b"});
let posts: string = (ls content/blog | filter {|p| $p.type == "dir"} | each {|p| $p.name | sed 's/content\/blog\///g'}); let posts: string = (ls content/b | filter {|p| $p.type == "dir"} | each {|p| $p.name | sed 's/content\/b\///g'});
for post in $posts { for post in $posts {
if $"content/blog/($post)/index.md" in $paths { if $"content/b/($post)/index.md" in $paths {
echo $"`($post)` post has been modified"; echo $"`($post)` post has been modified";
python3 ./scripts/article.py card $post python3 ./scripts/article.py card $post
python3 ./scripts/article.py update $post "global" "updated" $"(date now | format date '%Y-%m-%d')" python3 ./scripts/article.py update $post "global" "updated" $"(date now | format date '%Y-%m-%d')"

@ -1 +1 @@
Subproject commit 8537e301f7656870255f9066aed9aa874f7c168d Subproject commit 07cc4e201d47c946f3e1c1ec16e22f9f34f390b4