1
0
forked from N0VA/kewt

Compare commits

..

5 Commits

Author SHA1 Message Date
8b760b2897 fix: homebrew permissions on macOS (hopefully) 2026-05-12 21:00:19 +02:00
e3bf598dd9 packaging: template cleanup 2026-05-12 20:53:13 +02:00
a086565ede fix: header links 2026-05-06 13:21:25 +02:00
79bc467bf6 fix: styling 2026-05-05 20:50:59 +02:00
8a5fa202de fix: rsync permissions 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
run: |
rsync -az --delete \
rsync -rlz --delete --omit-dir-times \
--exclude '/logs/' \
-e "ssh -i ~/.ssh/id_rsa -o StrictHostKeyChecking=no" \
out/ "${{ secrets.REMOTE_HOST }}:/var/www/kewt.krzak.org/"

View File

@@ -16,10 +16,10 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4
- name: Setup Arch Linux environment
- name: Ensure publish tools are available
run: |
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
run: |
@@ -27,12 +27,23 @@ jobs:
cp packaging/AUR/PKGBUILD.git aur-work/PKGBUILD
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
uses: KSXGitHub/github-actions-deploy-aur@v3.0.1
with:
pkgname: kewt-git
pkgbuild: ./aur-work/PKGBUILD
commit_username: ${{ github.actor }}
commit_email: ${{ github.actor }}@users.noreply.github.com
ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
commit_message: "Update kewt-git to ${{ github.sha }}"
run: |
rm -rf aur-repo
git clone "ssh://aur@aur.archlinux.org/kewt-git.git" aur-repo
cp aur-work/PKGBUILD aur-repo/PKGBUILD
cp aur-work/.SRCINFO aur-repo/.SRCINFO
cd aur-repo
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
run: |
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
run: |
@@ -95,15 +95,26 @@ jobs:
-e "s/SHA256SUM_PLACEHOLDER/${CHECKSUM}/g" \
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
uses: KSXGitHub/github-actions-deploy-aur@v3.0.1
with:
pkgname: kewt-bin
pkgbuild: ./aur-work/PKGBUILD
commit_username: ${{ github.actor }}
commit_email: ${{ github.actor }}@users.noreply.github.com
ssh_private_key: ${{ secrets.AUR_SSH_PRIVATE_KEY }}
commit_message: "Update kewt-bin to ${{ github.ref_name }}"
run: |
rm -rf aur-repo
git clone "ssh://aur@aur.archlinux.org/kewt-bin.git" aur-repo
cp aur-work/PKGBUILD aur-repo/PKGBUILD
cp aur-work/.SRCINFO aur-repo/.SRCINFO
cd aur-repo
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:
runs-on: local

View File

@@ -23,10 +23,17 @@ function unique_id(raw_id, 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) {
id = unique_id(strip_markdown(line))
if (enable_header_links == "true") {
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 {
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/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 -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/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
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 -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"
rm "$temp_file"

View File

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

View File

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

View File

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

View File

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

View File

@@ -1,12 +1,9 @@
---
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
Told you
Probably should've mentioned the catgirl too
| --- | --- |
| ```!![/styles.css]``` | <img style="vertical-align: top;" src="catgirl.jpg"> |
![catgirl.jpg]

View File

@@ -37,6 +37,11 @@ body {
}
header {
display: flex;
align-items: flex-start;
justify-content: space-between;
gap: 16px;
flex-wrap: wrap;
padding: 20px;
padding-bottom: 0;
border-bottom: 1px solid var(--code-border);
@@ -45,6 +50,8 @@ header {
header h1 {
margin: 0;
flex: 1 1 auto;
min-width: 0;
font-size: 35px;
font-weight: bold;
font-style: italic;
@@ -114,6 +121,12 @@ a {
margin-left: -10px;
}
#side-bar a.current-page:hover,
#side-bar a.current-page:focus {
color: var(--fg);
background: transparent;
}
a:hover {
background: var(--fg);
color: var(--bg);
@@ -131,6 +144,53 @@ h3 {
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 {
background: var(--code-bg);
color: var(--code-fg);
@@ -455,9 +515,10 @@ tr:nth-child(even) {
.kewt-search-header {
display: inline-flex;
gap: 4px;
margin-left: auto;
margin-left: 0;
vertical-align: middle;
font-style: normal;
flex: 0 0 auto;
}
.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
# 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
KEWT_INVOKED_AS="$0" "$tmpdir/kewt.sh" "$@"
KEWT_INVOKED_AS="$0" sh "$tmpdir/kewt.sh" "$@"
exit $?
#==PAYLOAD==