Compare commits
10 commits
e090a4bde5
...
c0f2eec0ea
Author | SHA1 | Date | |
---|---|---|---|
c0f2eec0ea | |||
cde0bc071e | |||
aeb4da0b09 | |||
|
b873356146 | ||
|
5e501aa8a4 | ||
|
37231a687b | ||
|
ad18b87239 | ||
|
7603954f86 | ||
|
9edb4a81f4 | ||
|
0c0ddcf97d |
15 changed files with 101 additions and 89 deletions
17
.github/workflows/cd.yml
vendored
17
.github/workflows/cd.yml
vendored
|
@ -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
1
CNAME
Normal file
|
@ -0,0 +1 @@
|
||||||
|
4rs.nl
|
20
Justfile
Normal file
20
Justfile
Normal 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`"
|
10
README.md
10
README.md
|
@ -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
|
||||||
|
```
|
||||||
|
|
14
config.toml
14
config.toml
|
@ -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"},
|
||||||
]
|
]
|
||||||
|
|
|
@ -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
|
||||||
+++
|
+++
|
||||||
|
|
|
@ -4,4 +4,5 @@ path = "archive"
|
||||||
template = "archive.html"
|
template = "archive.html"
|
||||||
|
|
||||||
[extra]
|
[extra]
|
||||||
|
section_path = "b/"
|
||||||
+++
|
+++
|
|
@ -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"
|
|
@ -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 إلى تطبيقك بسهولة.
|
||||||
|
|
|
@ -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/).
|
||||||
|
|
||||||
### التيليجرام
|
### التيليجرام
|
||||||
تواصل معي عبر تطبيق التيليجرام إذا كان موضوعك يتطلب الدردشة ولايمكن الرد عليه برسالة واحدة. ستجد التيليجرام الخاص بي أسفل جميع صفحات المدونة
|
تواصل معي عبر تطبيق التيليجرام إذا كان موضوعك يتطلب الدردشة ولايمكن الرد عليه برسالة واحدة. ستجد التيليجرام الخاص بي أسفل جميع صفحات المدونة
|
||||||
|
|
|
@ -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-----
|
||||||
|
|
|
@ -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": {},
|
||||||
|
|
|
@ -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
|
Loading…
Reference in a new issue