Compare commits

..

5 Commits
v1.6.3 ... main

Author SHA1 Message Date
8b760b2897 fix: homebrew permissions on macOS (hopefully)
All checks were successful
Deploy Website / deploy-website (push) Successful in 40s
Publish kewt-git to AUR / publish-aur-git (push) Successful in 20s
Release Standalone Builder / build (release) Successful in 26s
Release Standalone Builder / publish-aur (release) Successful in 20s
Release Standalone Builder / publish-homebrew (release) Successful in 7s
2026-05-12 21:00:19 +02:00
e3bf598dd9 packaging: template cleanup 2026-05-12 20:53:13 +02:00
a086565ede fix: header links
All checks were successful
Deploy Website / deploy-website (push) Successful in 21s
Release Standalone Builder / build (release) Successful in 23s
Release Standalone Builder / publish-aur (release) Successful in 20s
Release Standalone Builder / publish-homebrew (release) Successful in 6s
2026-05-06 13:21:25 +02:00
79bc467bf6 fix: styling
Some checks failed
Deploy Website / deploy-website (push) Successful in 28s
Release Standalone Builder / build (release) Successful in 29s
Release Standalone Builder / publish-aur (release) Failing after 4m6s
Release Standalone Builder / publish-homebrew (release) Successful in 7s
2026-05-05 20:50:59 +02:00
8a5fa202de fix: rsync permissions
All checks were successful
Deploy Website / deploy-website (push) Successful in 27s
2026-05-05 20:44:47 +02:00
12 changed files with 124 additions and 35 deletions

View File

@@ -37,6 +37,7 @@ jobs:
- name: Deploy website - name: Deploy website
run: | run: |
rsync -az --delete \ rsync -rlz --delete --omit-dir-times \
--exclude '/logs/' \
-e "ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no" \ -e "ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no" \
out/ "${{ secrets.REMOTE_HOST }}:/var/www/kewt.krzak.org/" out/ "${{ secrets.REMOTE_HOST }}:/var/www/kewt.krzak.org/"

View File

@@ -16,10 +16,10 @@ jobs:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v4
- name: Setup Arch Linux environment - name: Ensure publish tools are available
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install -y pacman-package-manager curl jq || true sudo apt-get install -y openssh-client git
- name: Prepare AUR files - name: Prepare AUR files
run: | run: |
@@ -27,12 +27,23 @@ jobs:
cp packaging/AUR/PKGBUILD.git aur-work/PKGBUILD cp packaging/AUR/PKGBUILD.git aur-work/PKGBUILD
cp packaging/AUR/.SRCINFO.git aur-work/.SRCINFO cp packaging/AUR/.SRCINFO.git aur-work/.SRCINFO
- name: Setup SSH
run: |
mkdir -p ~/.ssh
printf '%s\n' "${{ secrets.AUR_SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan -H aur.archlinux.org >> ~/.ssh/known_hosts
- name: Publish to AUR - name: Publish to AUR
uses: KSXGitHub/github-actions-deploy-aur@v3.0.1 run: |
with: rm -rf aur-repo
pkgname: kewt-git git clone "ssh://aur@aur.archlinux.org/kewt-git.git" aur-repo
pkgbuild: ./aur-work/PKGBUILD cp aur-work/PKGBUILD aur-repo/PKGBUILD
commit_username: ${{ github.actor }} cp aur-work/.SRCINFO aur-repo/.SRCINFO
commit_email: ${{ github.actor }}@users.noreply.github.com
ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }} cd aur-repo
commit_message: "Update kewt-git to ${{ github.sha }}" git config user.name "${{ github.actor }}"
git config user.email "${{ github.actor }}@users.noreply.github.com"
git add PKGBUILD .SRCINFO
git commit -m "Update kewt-git to ${GITHUB_SHA}" || exit 0
GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa -o IdentitiesOnly=yes -o StrictHostKeyChecking=yes" git push origin HEAD:master

View File

@@ -75,7 +75,7 @@ jobs:
- name: Setup Arch Linux environment - name: Setup Arch Linux environment
run: | run: |
sudo apt-get update sudo apt-get update
sudo apt-get install -y pacman-package-manager curl jq || true sudo apt-get install -y openssh-client curl jq
- name: Render PKGBUILD and SRCINFO - name: Render PKGBUILD and SRCINFO
run: | run: |
@@ -95,15 +95,26 @@ jobs:
-e "s/SHA256SUM_PLACEHOLDER/${CHECKSUM}/g" \ -e "s/SHA256SUM_PLACEHOLDER/${CHECKSUM}/g" \
packaging/AUR/.SRCINFO.template > aur-work/.SRCINFO packaging/AUR/.SRCINFO.template > aur-work/.SRCINFO
- name: Setup AUR SSH
run: |
mkdir -p ~/.ssh
printf '%s\n' "${{ secrets.AUR_SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan -H aur.archlinux.org >> ~/.ssh/known_hosts
- name: Publish to AUR - name: Publish to AUR
uses: KSXGitHub/github-actions-deploy-aur@v3.0.1 run: |
with: rm -rf aur-repo
pkgname: kewt-bin git clone "ssh://aur@aur.archlinux.org/kewt-bin.git" aur-repo
pkgbuild: ./aur-work/PKGBUILD cp aur-work/PKGBUILD aur-repo/PKGBUILD
commit_username: ${{ github.actor }} cp aur-work/.SRCINFO aur-repo/.SRCINFO
commit_email: ${{ github.actor }}@users.noreply.github.com
ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }} cd aur-repo
commit_message: "Update kewt-bin to ${{ github.ref_name }}" git config user.name "${{ github.actor }}"
git config user.email "${{ github.actor }}@users.noreply.github.com"
git add PKGBUILD .SRCINFO
git commit -m "Update kewt-bin to ${GITHUB_REF_NAME}" || exit 0
GIT_SSH_COMMAND="ssh -i ~/.ssh/id_rsa -o IdentitiesOnly=yes -o StrictHostKeyChecking=yes" git push origin HEAD:master
publish-homebrew: publish-homebrew:
runs-on: local runs-on: local

View File

@@ -23,10 +23,17 @@ function unique_id(raw_id, candidate) {
seen_ids[candidate]++ seen_ids[candidate]++
return candidate "-" seen_ids[candidate] return candidate "-" seen_ids[candidate]
} }
function has_inline_link(line) {
return (index(line, "<a ") > 0 || index(line, "<a\t") > 0)
}
function print_heading(tag, line, id) { function print_heading(tag, line, id) {
id = unique_id(strip_markdown(line)) id = unique_id(strip_markdown(line))
if (enable_header_links == "true") { if (enable_header_links == "true") {
print "<" tag " id=\"" id "\">" line " <a href=\"#" id "\" class=\"header-anchor\" aria-label=\"Link to this section\">#</a></" tag ">" if (has_inline_link(line)) {
print "<" tag " id=\"" id "\">" line " <a href=\"#" id "\" class=\"header-anchor\" aria-label=\"Link to this section\">#</a></" tag ">"
} else {
print "<" tag " id=\"" id "\"><a href=\"#" id "\" class=\"header-link\">" line "<span class=\"header-anchor\" aria-hidden=\"true\">#</span></a></" tag ">"
}
} else { } else {
print "<" tag " id=\"" id "\">" line "</" tag ">" print "<" tag " id=\"" id "\">" line "</" tag ">"
} }

View File

@@ -62,7 +62,6 @@ awk -v custom_admonitions="$CUSTOM_ADMONITIONS" -f "$awk_dir/blockquote_to_admon
awk -f "$awk_dir/fenced_code.awk" "$temp_file" > "$temp_file.tmp" && mv "$temp_file.tmp" "$temp_file" awk -f "$awk_dir/fenced_code.awk" "$temp_file" > "$temp_file.tmp" && mv "$temp_file.tmp" "$temp_file"
awk -f "$awk_dir/indented_code.awk" "$temp_file" > "$temp_file.tmp" && mv "$temp_file.tmp" "$temp_file" awk -f "$awk_dir/indented_code.awk" "$temp_file" > "$temp_file.tmp" && mv "$temp_file.tmp" "$temp_file"
awk -f "$awk_dir/pipe_tables.awk" "$temp_file" > "$temp_file.tmp" && mv "$temp_file.tmp" "$temp_file" awk -f "$awk_dir/pipe_tables.awk" "$temp_file" > "$temp_file.tmp" && mv "$temp_file.tmp" "$temp_file"
awk -v enable_header_links="$ENABLE_HEADER_LINKS" -f "$awk_dir/headers.awk" "$temp_file" > "$temp_file.tmp" && mv "$temp_file.tmp" "$temp_file"
awk -f "$awk_dir/definition_lists.awk" "$temp_file" > "$temp_file.tmp" && mv "$temp_file.tmp" "$temp_file" awk -f "$awk_dir/definition_lists.awk" "$temp_file" > "$temp_file.tmp" && mv "$temp_file.tmp" "$temp_file"
awk -f "$awk_dir/lists.awk" "$temp_file" > "$temp_file.tmp" && mv "$temp_file.tmp" "$temp_file" awk -f "$awk_dir/lists.awk" "$temp_file" > "$temp_file.tmp" && mv "$temp_file.tmp" "$temp_file"
@@ -78,5 +77,6 @@ awk -f "$awk_dir/paragraphs.awk" "$temp_file" > "$temp_file.tmp" && mv "$temp_fi
# Inline styles # Inline styles
awk -v emoji_file="$awk_dir/emoji.tsv" -f "$awk_dir/emoji.awk" "$temp_file" > "$temp_file.tmp" && mv "$temp_file.tmp" "$temp_file" awk -v emoji_file="$awk_dir/emoji.tsv" -f "$awk_dir/emoji.awk" "$temp_file" > "$temp_file.tmp" && mv "$temp_file.tmp" "$temp_file"
awk -f "$awk_dir/markdown_inline.awk" "$temp_file" > "$temp_file.tmp" && mv "$temp_file.tmp" "$temp_file" awk -f "$awk_dir/markdown_inline.awk" "$temp_file" > "$temp_file.tmp" && mv "$temp_file.tmp" "$temp_file"
awk -v enable_header_links="$ENABLE_HEADER_LINKS" -f "$awk_dir/headers.awk" "$temp_file" > "$temp_file.tmp" && mv "$temp_file.tmp" "$temp_file"
awk -v input_file="$1" -v site_root="$MARKDOWN_SITE_ROOT" -v fallback_file="$MARKDOWN_FALLBACK_FILE" -v script_dir="$script_dir" -f "$awk_dir/markdown_embed.awk" "$temp_file" awk -v input_file="$1" -v site_root="$MARKDOWN_SITE_ROOT" -v fallback_file="$MARKDOWN_FALLBACK_FILE" -v script_dir="$script_dir" -f "$awk_dir/markdown_embed.awk" "$temp_file"
rm "$temp_file" rm "$temp_file"

View File

@@ -1,7 +1,7 @@
pkgbase = kewt-git pkgbase = kewt-git
pkgdesc = A minimalist, 100% POSIX, static site generator inspired by werc and kew pkgdesc = A minimalist, 100% POSIX, static site generator inspired by werc and kew
pkgver = r0.0000000 pkgver = r0.0000001
pkgrel = 3 pkgrel = 1
url = https://kewt.krzak.org url = https://kewt.krzak.org
arch = any arch = any
license = ISC license = ISC

View File

@@ -1,7 +1,7 @@
pkgbase = kewt-bin pkgbase = kewt-bin
pkgdesc = A minimalist, 100% POSIX, static site generator inspired by werc and kew pkgdesc = A minimalist, 100% POSIX, static site generator inspired by werc and kew
pkgver = VERSION_PLACEHOLDER pkgver = VERSION_PLACEHOLDER
pkgrel = 2 pkgrel = 1
url = https://kewt.krzak.org url = https://kewt.krzak.org
arch = any arch = any
license = ISC license = ISC

View File

@@ -1,7 +1,7 @@
# Maintainer: n0va <n0va@krzak.org> # Maintainer: n0va <n0va@krzak.org>
pkgname=kewt-git pkgname=kewt-git
pkgver=r0.0000000 pkgver=r0.0000001
pkgrel=2 pkgrel=1
pkgdesc="A minimalist, 100% POSIX, static site generator inspired by werc and kew" pkgdesc="A minimalist, 100% POSIX, static site generator inspired by werc and kew"
arch=('any') arch=('any')
url="https://kewt.krzak.org" url="https://kewt.krzak.org"

View File

@@ -8,6 +8,7 @@ class Kewt < Formula
def install def install
bin.install "kewt" bin.install "kewt"
chmod 0755, bin/"kewt"
generate_completions_from_executable(bin/"kewt", "--dump-zsh-completions", shells: [:zsh]) generate_completions_from_executable(bin/"kewt", "--dump-zsh-completions", shells: [:zsh])
end end

View File

@@ -1,12 +1,9 @@
--- ---
title = "Heaven" title = "Heaven"
content_warning = "This page may contain CSS" content_warning = "This page may have bad effects on people with an allergy to cats"
--- ---
# Heaven # Heaven
Told you Told you
Probably should've mentioned the catgirl too ![catgirl.jpg]
| --- | --- |
| ```!![/styles.css]``` | <img style="vertical-align: top;" src="catgirl.jpg"> |

View File

@@ -37,6 +37,11 @@ body {
} }
header { header {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 16px;
flex-wrap: wrap;
padding: 20px; padding: 20px;
padding-bottom: 0; padding-bottom: 0;
border-bottom: 1px solid var(--code-border); border-bottom: 1px solid var(--code-border);
@@ -45,6 +50,8 @@ header {
header h1 { header h1 {
margin: 0; margin: 0;
flex: 1 1 auto;
min-width: 0;
font-size: 35px; font-size: 35px;
font-weight: bold; font-weight: bold;
font-style: italic; font-style: italic;
@@ -114,6 +121,12 @@ a {
margin-left: -10px; margin-left: -10px;
} }
#side-bar a.current-page:hover,
#side-bar a.current-page:focus {
color: var(--fg);
background: transparent;
}
a:hover { a:hover {
background: var(--fg); background: var(--fg);
color: var(--bg); color: var(--bg);
@@ -131,6 +144,53 @@ h3 {
font-weight: normal; font-weight: normal;
} }
.header-link {
color: var(--fg);
display: inline;
text-decoration: underline;
text-decoration-color: var(--fg-muted);
}
.header-link:hover,
.header-link:focus {
background: var(--fg);
color: var(--bg);
text-decoration-color: var(--fg);
}
.header-anchor {
opacity: 0;
margin-left: 0.25em;
transition: opacity 0.15s ease;
}
h1:hover > .header-anchor,
h2:hover > .header-anchor,
h3:hover > .header-anchor,
h4:hover > .header-anchor,
h5:hover > .header-anchor,
h6:hover > .header-anchor,
h1:focus-within > .header-anchor,
h2:focus-within > .header-anchor,
h3:focus-within > .header-anchor,
h4:focus-within > .header-anchor,
h5:focus-within > .header-anchor,
h6:focus-within > .header-anchor,
h1:hover .header-link .header-anchor,
h2:hover .header-link .header-anchor,
h3:hover .header-link .header-anchor,
h4:hover .header-link .header-anchor,
h5:hover .header-link .header-anchor,
h6:hover .header-link .header-anchor,
h1:focus-within .header-link .header-anchor,
h2:focus-within .header-link .header-anchor,
h3:focus-within .header-link .header-anchor,
h4:focus-within .header-link .header-anchor,
h5:focus-within .header-link .header-anchor,
h6:focus-within .header-link .header-anchor {
opacity: 1;
}
pre { pre {
background: var(--code-bg); background: var(--code-bg);
color: var(--code-fg); color: var(--code-fg);
@@ -455,9 +515,10 @@ tr:nth-child(even) {
.kewt-search-header { .kewt-search-header {
display: inline-flex; display: inline-flex;
gap: 4px; gap: 4px;
margin-left: auto; margin-left: 0;
vertical-align: middle; vertical-align: middle;
font-style: normal; font-style: normal;
flex: 0 0 auto;
} }
.kewt-search-header input[type="text"] { .kewt-search-header input[type="text"] {

View File

@@ -17,10 +17,10 @@ tmpdir=$(mktemp -d "/tmp/kewt.XXXXXX")
trap 'rm -rf "$tmpdir"' EXIT HUP INT TERM trap 'rm -rf "$tmpdir"' EXIT HUP INT TERM
# Extract payload # Extract payload
sed '1,/^#==PAYLOAD==$/d' "$0" | tar -xz -C "$tmpdir" LC_ALL=C sed '1,/^#==PAYLOAD==$/d' "$0" | tar -xz -C "$tmpdir"
# Pass control to the extracted script # Pass control to the extracted script
KEWT_INVOKED_AS="$0" "$tmpdir/kewt.sh" "$@" KEWT_INVOKED_AS="$0" sh "$tmpdir/kewt.sh" "$@"
exit $? exit $?
#==PAYLOAD== #==PAYLOAD==