big refactor using shell script 2git status!

This commit is contained in:
yosh 2023-11-09 13:29:02 -05:00
parent 445b00a579
commit b20f843c47
35 changed files with 270 additions and 365 deletions

View File

@ -1,49 +0,0 @@
<section class="lbarbot">
<div class="titlebar tb-lblue" aria-hidden="true">
<span class="tbl" title="void linux"></span>
<span class="tbr"></span>
</div>
<h2>void linux</h2>
<nav>
<ul class="s">
<li><a href="installation.html">installation</a></li>
<ul class="s">
<li><a href="installation.html#fde">full disk encryption + efistub</a></li>
</ul>
<li><a href="setup.html">basic system setup</a></li>
<ul class="s">
<li><a href="setup.html#users">user(s)</a></li>
<li><a href="setup.html#time">time</a></li>
<li><a href="setup.html#internet">internet</a></li>
<ul class="s">
<li><a href="setup.html#internet-wifi">wifi (wpa_supplicant)</a></li>
<li><a href="setup.html#internet-eduroam">eduroam</a></li>
</ul>
<li><a href="setup.html#sudo">replacing sudo</a></li>
<li><a href="setup.html#xdg">XDG variables</a></li>
</ul>
<li><a href="xorg.html">xorg</a></li>
<ul class="s">
<li><a href="xorg.html#local-services">local services</a></li>
<li><a href="xorg.html#pipewire">pipewire(-pulse)</a></li>
<li><a href="xorg.html#xscreensaver">xscreensaver</a></li>
</ul>
<li><a href="mail.html">mail</a></li>
<ul class="s">
<li><a href="mail.html#claws">claws mail</a></li>
<li><a href="mail.html#aerc">fdm+aerc+msmtp</a></li>
</ul>
<li><a href="software.html">misc. software</a></li>
<ul class="s">
<li><a href="software.html#vim">vim</a></li>
<li><a href="software.html#quiterss">quiterss</a></li>
</ul>
<li><a href="rescuing.html">rescuing a system: the basics</a></li>
<li><a href="xdg.html">forcing XDG (nearly) everywhere</a></li>
<li><a href="addendums.html">addendums</a></li>
<ul class="s">
<li><a href="addendums.html#hw-workarounds">hardware workarounds</a></li>
</ul>
</ul>
</nav>
</section>

View File

@ -1,14 +0,0 @@
<section class="lbarbot bunny">
<div class="titlebar tb-lblue" aria-hidden="true">
<span class="tbl" title="miscellaneous!!"></span>
<span class="tbr"></span>
</div>
<ul class="displist sbgridlist" aria-hidden="true">
<li><a href="https://digboye.newgrounds.com/"><img src="/~yosh/img/buttons/boyslife_button.gif" alt="boyslife"></a></li>
</ul>
<hr>
<ul class="displist sbgridlist" aria-hidden="true">
<li><img src="/~yosh/img/buttons/tosviolation.gif" alt="this page is a tos violation"></li>
<li><img src="/~yosh/img/buttons/anybrowser.gif" alt="best viewed with any browser"></li>
</ul>
</section>

View File

@ -1,18 +0,0 @@
<section class="lbartop">
<div class="titlebar tb-pink" aria-hidden="true">
<span class="tbl" title="navigation"></span>
<span class="tbr"></span>
</div>
<nav>
<h2>navigation</h2>
<ul>
<li><a href="/~yosh/index.html">home</a></li>
<li><a href="/~yosh/info.html">information</a></li>
<li><a href="/~yosh/blog/">blog</a></li>
<li><a href="/~yosh/cool-stuff/">cool stuff</a></li>
<li><a href="/~yosh/random-info/">random info</a></li>
<li><a href="/~yosh/links.html">links</a></li>
<li><a href="/~yosh/credits.html">credits</a></li>
</ul>
</nav>
</section>

View File

@ -1,4 +0,0 @@
<div class="titlebar var-COLOR" aria-hidden="true">
<span class="tbl" title="var-TITLE"></span>
<span class="tbr"></span>
</div>

142
build.sh Executable file → Normal file
View File

@ -1,69 +1,93 @@
#!/bin/sh
set -euf
IFS=";"
BUILD_OUTDIR="${BUILD_OUTDIR:-./build}"
BUILD_SRCDIR="${BUILD_SRCDIR:-./src}"
BUILD_RESOURCEDIR="${BUILD_RESOURCEDIR:-./BUILD_RESOURCES}"
errecho() { echo "$@" >&2; }
BASE="$PWD"
export RESDIR="${RESOURCEDIR:-"${BASE}/include"}"
export BUILDDIR="${BUILDDIR:-"${BASE}/build"}"
export SRCDIR="${SRCDIR:-"${BASE}/src"}"
clean() {
[ -f "$tmpfile" ] && rm -f "$tmpfile"
cleanup() {
[ -f "${inter:-}" ] && rm "$inter"
[ -f "${tmp:-}" ] && rm "$tmp"
[ -f "${filetmp:-}" ] && rm "$filetmp"
true
}
# "$@" here is all the keywords
build_site() {
while read -r file; do
tmpfile="$(mktemp -t website-build.XXXX)"
cp -p -f "$file" "$tmpfile"
# makes the directory structure
out="$BUILD_OUTDIR/${file#"$BUILD_SRCDIR"/}"
mkdir -p "${out%/*}"
if [ "${file##*.}" = "html" ] || [ "${file##*.}" = "php" ]; then
# this for loop call makes $@ available for internal use
if grep -q -E -e '^[[:blank:]]*<!--RES .*-->$' "$tmpfile"; then
while read -r line; do
# format: <!--RES f=file.html;var=... -->
tmp="${line% -->*}"; tmp="${tmp#*<!--RES }" # truncate beg and end
set -- $tmp
replacement="$(cat "$BUILD_RESOURCEDIR/${1##*=}")" # replacement text
shift
# variable replacement stuff
while [ -n "$*" ]; do
# replace variable fixed string
replacement="$(sd -s "var-${1%%=*}" "${1#*=}" <<-EOF
$replacement
EOF
)"
shift
done
sd -s "$line" "$replacement" "$tmpfile"
done <<-EOF
$(grep -E -e '^[[:blank:]]*<!--RES .*-->$' "$tmpfile")
EOF
fi
fi
cmp -s "$tmpfile" "$out" >/dev/null 2>&1 && rm "$tmpfile" || mv -f "$tmpfile" "$out"
done <<-EOF
$(find "$BUILD_SRCDIR" -type f)
EOF
# process an html formatted file
# if a second argument is given, that is the output file
# otherwise, the output file is $BUILDDIR/<filepath>
process_html() {
inter="$(mktemp)"
tmp="$(mktemp)"
[ -n "${2:-}" ] && outfile="$2" || outfile="$1"
while grep -q -E -e '<!--sh[[:space:]]*' "$1"; do
sh -s > "$inter" <<-EOF
$(awk -v FS='<!--sh[[:space:]]+' -v RS='[[:space:]]+-->' \
'NF > 1 {print $NF; exit}' "$1")
EOF
# can this be made smaller?
# the goal is to replace all text between
# <!--sh and --> with the contents of another file
# minus the newline at the end
awk -v repfile="$inter" '
BEGIN {
while (getline var < repfile) {
a[i++] = var
}
close(repfile)
FS="<!--sh[[:space:]]+"
RS="[[:space:]]+-->"
ORS=""
}
NF > 1 && NR == 1 {
print $1
for (n=0; n < (i - 1); n++) {
print a[n] "\n"
}
print a[n]
FS=" "
RS=ORS="\n"
}
NR > 1 { print $0 }' "$1" > "$tmp"
mv "$tmp" "$outfile"
done
}
trap 'clean' INT HUP QUIT
cd "${0%/*}" # cd to script base
while getopts :o:s:r: OPT; do
case "$OPT" in
o) BUILD_OUTDIR="$OPTARG" ;;
s) BUILD_SRCDIR="$OPTARG" ;;
r) BUILD_RESOURCEDIR="$OPTARG" ;;
*) exit 1 ;;
# process a pure markdown file
# uses a special file in RESDIR, `markdown-template.sh` to create the html
# TODO: finish this
# for now, port the rest of unix.dog
process_md() {
tmpmd="$(mktemp)"
lowdown --html-no-skiphtml --html-no-escapehtml -o "$tmpmd" "$1"
mv "$tmpmd" "$1"
process_html "$1"
}
trap 'cleanup' INT HUP QUIT EXIT
# 99% of the time you probably want to be here
cd "$RESDIR"
find "$SRCDIR" -type d -exec sh -c 'for d; do mkdir -p "$BUILDDIR"/"${d#"$SRCDIR"}"; done' sh {} +
while read -r file; do
filetmp="$(mktemp)"
cp -p "$file" "$filetmp"
case "$file" in
*.[hH][tT][mM][lL]) process_html "$filetmp" ;;
*.[mM][dD]) process_md "$filetmp" ;;
*) ;;
esac
done
while [ -n "$*" ]; do
case "$1" in
clean) errecho "cleaning..." && rm -rf "$BUILD_OUTDIR" ;;
build) build_site "$BUILD_RESOURCEDIR"/* ;;
esac
shift
done
if ! cmp -s "$filetmp" "$BUILDDIR"/"${file#"$SRCDIR"}"; then
mv "$filetmp" "$BUILDDIR"/"${file#"$SRCDIR"}"
fi
cleanup
done <<-EOF
$(find "$SRCDIR" -type f)
EOF

2
BUILD_RESOURCES/footer.html → include/footer.sh Normal file → Executable file
View File

@ -1,4 +1,6 @@
cat <<EOF
<footer>
<p>this site is licensed under <a href="https://creativecommons.org/licenses/by-nc-sa/4.0/">CC BY-NC-SA 4.0</a><br>
see the <a href="https://git.unix.dog/yosh/website">source code repository</a></p>
</footer>
EOF

7
BUILD_RESOURCES/head.html → include/head.sh Normal file → Executable file
View File

@ -1,6 +1,11 @@
cat <<EOF
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf8">
<title>var-TITLE</title>
<title>${TITLE:-~yosh}</title>
<link rel="stylesheet" href="/~yosh/style/style.css">
<link rel="alternate" type="application/atom+xml" title="blog atom feed" href="/~yosh/blog/feed.atom">
</head>
EOF

2
BUILD_RESOURCES/header.html → include/header.sh Normal file → Executable file
View File

@ -1,3 +1,5 @@
cat <<EOF
<header>
~yosh@unix.dog
</header>
EOF

3
include/markdown-template.sh Executable file
View File

@ -0,0 +1,3 @@
TITLE="$(grep -m 1 -e '^#[^#]' "$1" | sed -e 's/^#[[:blank:]]*//' -e 's/[[:blank:]]*$//') | ~yosh"
sh ./head.sh

44
include/sidebar.sh Executable file
View File

@ -0,0 +1,44 @@
bar_top() {
cat <<EOF
<section class="lbartop">
$(TB_TITLE="navigation" TB_COLOR="pink" sh titlebar.sh)
<nav>
<h2>navigation</h2>
<ul>
<li><a href="/~yosh/index.html">home</a></li>
<li><a href="/~yosh/info.html">information</a></li>
<li><a href="/~yosh/blog/">blog</a></li>
<li><a href="/~yosh/cool-stuff/">cool stuff</a></li>
<li><a href="/~yosh/random-info/">random info</a></li>
<li><a href="/~yosh/links.html">links</a></li>
<li><a href="/~yosh/credits.html">credits</a></li>
</ul>
</nav>
</section>
EOF
}
bar_bottom() {
cat <<EOF
<section class="lbarbot bunny">
$(TB_TITLE="miscellaneous!!" TB_COLOR="lblue" sh titlebar.sh)
<ul class="displist sbgridlist" aria-hidden="true">
<li><a href="https://digboye.newgrounds.com/"><img src="/~yosh/img/buttons/boyslife_button.gif" alt="boyslife"></a></li>
</ul>
<hr>
<ul class="displist sbgridlist" aria-hidden="true">
<li><img src="/~yosh/img/buttons/tosviolation.gif" alt="this page is a tos violation"></li>
<li><img src="/~yosh/img/buttons/anybrowser.gif" alt="best viewed with any browser"></li>
</ul>
</section>
EOF
}
while [ $# -gt 0 ]; do
case "$1" in
top) bar_top ;;
bottom) bar_bottom ;;
*) ;;
esac
shift
done

6
include/titlebar.sh Executable file
View File

@ -0,0 +1,6 @@
cat <<EOF
<div class="titlebar tb-${TB_COLOR:-green}" aria-hidden="true">
<span class="tbl" title="${TB_TITLE:-${TITLE:-untitled}}"></span>
<span class="tbr"></span>
</div>
EOF

View File

@ -1,14 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<!--RES f=head.html;TITLE=intimacy via jankiness | ~yosh -->
<!--sh TITLE="intimacy via jankiness | ~yosh" ./head.sh -->
<body>
<!--RES f=header.html -->
<!--RES f=sidebar-top.html -->
<!--RES f=sidebar-bottom.html -->
<!--sh ./header.sh -->
<!--sh ./sidebar.sh top bottom -->
<main>
<!--RES f=titlebar.html;COLOR=tb-lblue;TITLE=intimacy via jankiness -->
<!--sh TB_TITLE="intimacy via jankiness" TB_COLOR="lblue" ./titlebar.sh -->
<h1>intimacy via jankiness</h1>
<time>2023-07-10</time>
<p>there's something I like about jankiness. I don't necessarily want to say unmaintainability or poor quality, but jankiness</p>
@ -33,6 +29,6 @@
<p>it's the amateurish sound that I enjoy, a sound that I loosely dub "the sound of experimentation". it's the sound of someone trying something, even if it may be jank in retrospect. that's the kind of sound that I like, and it's the same thing that reflects in the other two sections of this post</p>
<p><a href="index.html">back</a></p>
</main>
<!--RES f=footer.html -->
<!--sh ./footer.sh -->
</body>
</html>

View File

@ -1,14 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<!--RES f=head.html;TITLE=discourse | ~yosh -->
<!--sh TITLE="discourse | ~yosh" ./head.sh -->
<body>
<!--RES f=header.html -->
<!--RES f=sidebar-top.html -->
<!--RES f=sidebar-bottom.html -->
<!--sh ./header.sh -->
<!--sh ./sidebar.sh top bottom -->
<main>
<!--RES f=titlebar.html;COLOR=tb-pink;TITLE=discourse -->
<!--sh TB_TITLE="discourse" TB_COLOR="pink" ./titlebar.sh -->
<h1>discourse</h1>
<time>2023-07-18</time>
<p>discourse is really tiring</p>
@ -20,6 +16,6 @@
<p>I'd rather just stay away and not deal with it all. whatever</p>
<p><a href="index.html">back</a></p>
</main>
<!--RES f=footer.html -->
<!--sh ./footer.sh -->
</body>
</html>

View File

@ -1,14 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<!--RES f=head.html;TITLE=dreams of form | ~yosh -->
<!--sh TITLE="dreams of form | ~yosh" ./head.sh -->
<body>
<!--RES f=header.html -->
<!--RES f=sidebar-top.html -->
<!--RES f=sidebar-bottom.html -->
<!--sh ./header.sh -->
<!--sh ./sidebar.sh top bottom -->
<main>
<!--RES f=titlebar.html;COLOR=tb-pink;TITLE=dreams of form -->
<!--sh TB_TITLE="dreams of form" TB_COLOR="pink" ./titlebar.sh -->
<h1>dreams of form</h1>
<time>2023-08-16</time>
<p>the moments are short, at least that's how they feel</p>
@ -30,6 +26,6 @@
<p>I'm not picky</p>
<p><a href="index.html">back</a></p>
</main>
<!--RES f=footer.html -->
<!--sh ./footer.sh -->
</body>
</html>

View File

@ -1,14 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<!--RES f=head.html;TITLE=moving away from github | ~yosh -->
<!--sh TITLE="github avoidance | ~yosh" ./head.sh -->
<body>
<!--RES f=header.html -->
<!--RES f=sidebar-top.html -->
<!--RES f=sidebar-bottom.html -->
<!--sh ./header.sh -->
<!--sh ./sidebar.sh top bottom -->
<main>
<!--RES f=titlebar.html;COLOR=tb-white;TITLE=moving away from github -->
<!--sh TB_TITLE="github" TB_COLOR="white" ./titlebar.sh -->
<h1>moving away from github</h1>
<time>2023-09-06</time>
<p>I started moving away from github a bit. <a href="https://ratfactor.com/leaving-github">this blog post by ratfactor</a> echoes a lot of my sentiments why</p>
@ -22,6 +18,6 @@
<p>here's to a broken software supply chain, free from the grasp of any one organization</p>
<p><a href="index.html">back</a></p>
</main>
<!--RES f=footer.html -->
<!--sh ./footer.sh -->
</body>
</html>

View File

@ -1,14 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<!--RES f=head.html;TITLE=there are things that I will never understand | ~yosh -->
<!--sh TITLE="mysterious world | ~yosh" ./head.sh -->
<body>
<!--RES f=header.html -->
<!--RES f=sidebar-top.html -->
<!--RES f=sidebar-bottom.html -->
<!--sh ./header.sh -->
<!--sh ./sidebar.sh top bottom -->
<main>
<!--RES f=titlebar.html;COLOR=tb-white;TITLE=there are things that I will never understand -->
<!--sh TB_TITLE="the thought window" TB_COLOR="white" ./titlebar.sh -->
<h1>there are things that I will never understand</h1>
<time>2023-10-16</time>
<p>I type this post while I sit idle in <a href="https://resonite.com">resonite</a>. I'm listening to someone--someone as a part of multiple--talk about their experience in a system</p>
@ -19,6 +15,6 @@
<p>and I wouldn't have it any other way</p>
<p><a href="index.html">back</a></p>
</main>
<!--RES f=footer.html -->
<!--sh ./footer.sh -->
</body>
</html>

View File

@ -1,24 +1,20 @@
<!DOCTYPE html>
<html lang="en">
<!--RES f=head.html;TITLE=blog | ~yosh -->
<!--sh TITLE="blog | ~yosh" ./head.sh -->
<body>
<!--RES f=header.html -->
<!--RES f=sidebar-top.html -->
<!--RES f=sidebar-bottom.html -->
<!--sh ./header.sh -->
<!--sh ./sidebar.sh top bottom -->
<main>
<!--RES f=titlebar.html;COLOR=tb-green;TITLE=blog -->
<!--sh TB_TITLE="blog" ./titlebar.sh -->
<h1>blog</h1>
<p>this will get updated very sporadically. I write only when really compelled to. as such, it might be good to follow this <a href="feed.atom">atom feed</a> with your favorite reader. I'm also updating it manually so bear with me</p>
<ul>
<li><time>2023-07-18</time> - <a href="2023-07-18_discourse.html">discourse</a></li>
<li><time>2023-07-10</time> - <a href="2023-07-10_intimacy-via-jankiness.html">intimacy via jankiness</a></li>
<li><time>2023-07-18</time> - <a href="2023-07-18_discourse.html">discourse</a></li>
<li><time>2023-08-16</time> - <a href="2023-08-16_dreams-of-form.html">dreams of form</a></li>
<li><time>2023-09-06</time> - <a href="2023-09-06_moving-away-from-github.html">moving away from github</a></li>
<li><time>2023-10-16</time> - <a href="2023-10-16_things-i-dont-understand.html">there are things that I will never understand</a></li>
</ul>
</main>
<!--RES f=footer.html -->
<!--sh ./footer.sh -->
</body>
</html>

View File

@ -1,14 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<!--RES f=head.html;TITLE=cool stuff | ~yosh -->
<!--sh TITLE="cool stuff | ~yosh" ./head.sh -->
<body>
<!--RES f=header.html -->
<!--RES f=sidebar-top.html -->
<!--RES f=sidebar-bottom.html -->
<!--sh ./header.sh -->
<!--sh ./sidebar.sh top bottom -->
<main>
<!--RES f=titlebar.html;COLOR=tb-lblue;TITLE=cool stuff!!! -->
<!--sh TB_TITLE="cool stuff!!!" TB_COLOR="lblue" ./titlebar.sh -->
<h1>cool stuff</h1>
<h2>scripts</h2>
<p>I really like shell scripting; I do it to a pretty high degree. here's some standalone scripts I like using</p>
@ -19,6 +15,6 @@
<h2>fonts</h2>
<p>I like cool fonts. especially bitmap fonts. they are really cool</p>
</main>
<!--RES f=footer.html -->
<!--sh ./footer.sh -->
</body>
</html>

View File

@ -1,17 +1,13 @@
<!DOCTYPE html>
<html lang="en">
<!--RES f=head.html;TITLE=~yosh -->
<!--sh ./head.sh -->
<body>
<!--RES f=header.html -->
<!--RES f=sidebar-top.html -->
<!--RES f=sidebar-bottom.html -->
<!--sh ./header.sh -->
<!--sh ./sidebar.sh top bottom -->
<main>
<!--RES f=titlebar.html;COLOR=tb-green;TITLE=credits!! -->
<!--sh TB_TITLE="welcome!" ./titlebar.sh -->
<h1>credits</h1>
<p>renard background image by <a href="https://www.furaffinity.net/user/squeedgemonster">squeedgemonster</a>
</main>
<!--RES f=footer.html -->
<!--sh ./footer.sh -->
</body>
</html>

View File

@ -1,20 +1,16 @@
<!DOCTYPE html>
<html lang="en">
<!--RES f=head.html;TITLE=~yosh -->
<!--sh ./head.sh -->
<body>
<!--RES f=header.html -->
<!--RES f=sidebar-top.html -->
<!--RES f=sidebar-bottom.html -->
<!--sh ./header.sh -->
<!--sh ./sidebar.sh top bottom -->
<main>
<!--RES f=titlebar.html;COLOR=tb-green;TITLE=welcome! -->
<!--sh TB_TITLE="welcome!" ./titlebar.sh -->
<h1>welcome!</h1>
<p>yo what up. welcome to my unix.dog page<br>
take a look around!</p>
<p><img alt="under construction" src="/~yosh/img/construction.gif"><br>
very, very much under construction</p>
</main>
<!--RES f=footer.html -->
<!--sh ./footer.sh -->
</body>
</html>

View File

@ -1,14 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<!--RES f=head.html;TITLE=~yosh -->
<!--sh ./head.sh -->
<body>
<!--RES f=header.html -->
<!--RES f=sidebar-top.html -->
<!--RES f=sidebar-bottom.html -->
<!--sh ./header.sh -->
<!--sh ./sidebar.sh top bottom -->
<main>
<!--RES f=titlebar.html;COLOR=tb-green;TITLE=information -->
<!--sh TB_TITLE="welcome!" ./titlebar.sh -->
<h1>myself</h1>
<p>I'm yosh. or yoshi. or yoshiyosh... or yoshiyoshiyosh...<br>
my names get taken a lot. wonder why.<br>
@ -22,7 +18,7 @@
<h2>where do I exist?</h2>
I exist on...
<ul>
<li>NeosVR: <strong>yosh</strong></li>
<li>Resonite: <strong>yosh</strong></li>
<li>irc: usually <strong>yosh</strong>, but sometimes that's taken, which will be indicated. I idle in a few servers, such as... (sorted by most to least generally active)</li>
<ul>
<li><a href="https://libera.chat/">libera.chat</a> (as <strong>yoshiyosh</strong>): ##furry, #voidlinux</li>
@ -40,6 +36,6 @@
<li><a href="matrix:u/yosh:matrix.orangestar.dev"><img src="/~yosh/img/buttons/matrix.gif" alt="matrix"></a></li>
</ul>
</main>
<!--RES f=footer.html -->
<!--sh ./footer.sh -->
</body>
</html>

View File

@ -1,14 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<!--RES f=head.html;TITLE=bookmarks | ~yosh -->
<!--sh TITLE="bookmarks | ~yosh" ./head.sh -->
<body>
<!--RES f=header.html -->
<!--RES f=sidebar-top.html -->
<!--RES f=sidebar-bottom.html -->
<!--sh ./header.sh -->
<!--sh ./sidebar.sh top bottom -->
<main>
<!--RES f=titlebar.html;COLOR=tb-green;TITLE=bookmarks -->
<!--sh TB_TITLE="bookmarks" ./titlebar.sh -->
<h1>bookmarks</h1>
<p>a random collection of general links I like. no organization or whatever</p>
<h2>the links</h2>
@ -18,6 +14,6 @@
<li><a href="https://girders.org/php/2021/10/18/setup-php-fpm/">setup php-fpm</a></li>
</ul>
</main>
<!--RES f=footer.html -->
<!--sh ./footer.sh -->
</body>
</html>

View File

@ -1,14 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<!--RES f=head.html;TITLE=darktable shenanigans | ~yosh -->
<!--sh TITLE="darktable stuff | ~yosh" ./head.sh -->
<body>
<!--RES f=header.html -->
<!--RES f=sidebar-top.html -->
<!--RES f=sidebar-bottom.html -->
<!--sh ./header.sh -->
<!--sh ./sidebar.sh top bottom -->
<main>
<!--RES f=titlebar.html;COLOR=tb-lblue;TITLE=darktable -->
<!--sh TB_TITLE="darktable stuff" TB_COLOR="lblue" ./titlebar.sh -->
<h1>darktable stuff</h1>
<p>here's some random darktable things I have made note of and want written down</p>
<h2>haze removal</h2>
@ -20,6 +16,6 @@
</ul>
<p><a href="https://github.com/darktable-org/darktable/issues/10283">further reading</a></p>
</main>
<!--RES f=footer.html -->
<!--sh ./footer.sh -->
</body>
</html>

View File

@ -1,14 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<!--RES f=head.html;TITLE=furry internet | ~yosh -->
<!--sh TITLE="furry internet | ~yosh" ./head.sh -->
<body>
<!--RES f=header.html -->
<!--RES f=sidebar-top.html -->
<!--RES f=sidebar-bottom.html -->
<!--sh ./header.sh -->
<!--sh ./sidebar.sh top bottom -->
<main>
<!--RES f=titlebar.html;COLOR=tb-pink;TITLE=furry internet -->
<!--sh TB_TITLE="furry internet" TB_COLOR="pink" ./titlebar.sh -->
<h1>furry internet</h1>
<p>a random collection of links to anyone interested in furry sites</p>
<h2>modern sites</h2>
@ -43,6 +39,6 @@
<li><a href="https://www.s-config.com/">s-config</a> - super old site that's still updated. guy who runs it gives off some weird vibes though</li>
</ul>
</main>
<!--RES f=footer.html -->
<!--sh ./footer.sh -->
</body>
</html>

View File

@ -1,20 +1,16 @@
<!DOCTYPE html>
<html lang="en">
<!--RES f=head.html;TITLE=furry weekend atlanta | ~yosh -->
<!--sh TITLE="furry weekend atlanta | ~yosh" ./head.sh -->
<body>
<!--RES f=header.html -->
<!--RES f=sidebar-top.html -->
<!--RES f=sidebar-bottom.html -->
<!--sh ./header.sh -->
<!--sh ./sidebar.sh top bottom -->
<main>
<!--RES f=titlebar.html;COLOR=tb-pink;TITLE=furry weekend atlanta -->
<!--sh TB_TITLE="furry weekend atlanta" TB_COLOR="pink" ./titlebar.sh -->
<h1>furry weekend atlanta</h1>
<h3>microwaves</h3>
<p>if you don't want cold leftovers, microwaves are at the water fountains next to the women's restroom on the atrium level in the main hotel. that is, if they're still gonna be using that hotel post-2023</p>
<h3>non-good dragon clearance</h3>
<p>the bad dragon booth will probably have a clearance bin where a bunch of merch n shit are all like $5 (at least, this was there in 2023). I missed out on this in 2023 and am still kicking myself about it</p>
</main>
<!--RES f=footer.html -->
<!--sh ./footer.sh -->
</body>
</html>

View File

@ -1,14 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<!--RES f=head.html;TITLE=fursuit making | ~yosh -->
<!--sh TITLE="fursuit making | ~yosh" ./head.sh -->
<body>
<!--RES f=header.html -->
<!--RES f=sidebar-top.html -->
<!--RES f=sidebar-bottom.html -->
<!--sh ./header.sh -->
<!--sh ./sidebar.sh top bottom -->
<main>
<!--RES f=titlebar.html;COLOR=tb-lblue;TITLE=fursuit making!! -->
<!--sh TB_TITLE="fursuit making!!" ./titlebar.sh -->
<h1>fursuit making</h1>
<p>I want to ~eventually~ make my own fursuit. I also know there's 30 million tiny little details in doing so. here's some little "life hacks" I have gathered from people's random twitter posts about fursuit making</p>
<h2>non-electronic</h2>
@ -16,6 +12,6 @@
<li><a href="https://twitter.com/ApricityHats/status/1673413767885910023">tiny silicone spatulas</a> made for kitchen use spread hot glue very well (reportedly better than popsicle sticks!). <a href="https://www.amazon.com/dp/B08SL4N33F">amazon link</a></li>
</ul>
</main>
<!--RES f=footer.html -->
<!--sh ./footer.sh -->
</body>
</html>

View File

@ -1,14 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<!--RES f=head.html;TITLE=random info | ~yosh -->
<!--sh TITLE="random information | ~yosh" ./head.sh -->
<body>
<!--RES f=header.html -->
<!--RES f=sidebar-top.html -->
<!--RES f=sidebar-bottom.html -->
<!--sh ./header.sh -->
<!--sh ./sidebar.sh top bottom -->
<main>
<!--RES f=titlebar.html;COLOR=tb-green;TITLE=random information -->
<!--sh TB_TITLE="random information" ./titlebar.sh -->
<h1>random information</h1>
<p>here's a bunch of random information about various things I have collected across the years. I made this page to consolidate all the random useful stuff I scattered about bookmarks, group chats, etc. in my times on the internet, as well as documentation that I've wrote myself</p>
<h2>big writeups</h2>
@ -33,6 +29,6 @@
<li><a href="./furry-internet.html">furry internet stuff</a></li>
</ul>
</main>
<!--RES f=footer.html -->
<!--sh ./footer.sh -->
</body>
</html>

View File

@ -1,14 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<!--RES f=head.html;TITLE=various learning topics | ~yosh -->
<!--sh TITLE="various resources | ~yosh" ./head.sh -->
<body>
<!--RES f=header.html -->
<!--RES f=sidebar-top.html -->
<!--RES f=sidebar-bottom.html -->
<!--sh ./header.sh -->
<!--sh ./sidebar.sh top bottom -->
<main>
<!--RES f=titlebar.html;COLOR=tb-pink;TITLE=various learning topics -->
<!--sh TB_TITLE="various learning topics" TB_COLOR="pink" ./titlebar.sh -->
<h1>various learning topics</h1>
<p>I have found myself frustrated at how hard it is to find good resources for learning new things. I'm motivated to learn, but picking up conceptual ideas from surface-level youtube videos trying to tie shit together from very dense wikipedia articles and their references just doesn't cut it. here's a random assortment of websites, textbooks, videos, and whatever other resources I have either stashed for my own sake, have looked through enough to consider it satisfactory for describing something I already know, or whatever else I find that seems detailed enough about a topic. who knows</p>
<p>if this gets big enough, I'll make a table of contents</p>
@ -35,6 +31,6 @@
<ul>
<li><a href="https://www.builditsolar.com/Projects/Conservation/conservation.htm">energy conservation for the home</a>. this was brought to my attention by it recommending <cite>Insulate and Weatherize</cite> by Bruce Harley as being one of the most technically complete books on the topic. its ISBN is <code>9781621137030</code>, and I'm sure you'll know where to find it :)</li>
</main>
<!--RES f=footer.html -->
<!--sh ./footer.sh -->
</body>
</html>

View File

@ -1,14 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<!--RES f=head.html;TITLE=posix shell tips | ~yosh -->
<!--sh TITLE="posix shell tips | ~yosh" ./head.sh -->
<body>
<!--RES f=header.html -->
<!--RES f=sidebar-top.html -->
<!--RES f=sidebar-bottom.html -->
<!--sh ./header.sh -->
<!--sh ./sidebar.sh top bottom -->
<main>
<!--RES f=titlebar.html;COLOR=tb-green;TITLE=posix shell!!! -->
<!--sh TB_TITLE="posix shell!!" ./titlebar.sh -->
<h1>posix shell tips and tricks</h1>
<p>there's some very unknown quirky things that you can do with pure posix shell. this will focus on obscure stuff that I've rarely seen documented or talked about elsewhere. if you want some more posix shell tricks, check out the <a href="https://github.com/dylanaraps/pure-sh-bible">pure sh bible</a> by dylan araps</p>
<h3>BASH_REMATCH</h3>
@ -31,6 +27,6 @@ fi
<p>if the users of your script are already expected to have a shell, and if the script does not run with elevated privileges, then <code>eval</code> poses no more of a security threat than whatever the user can do in a normal shell they can access, though it can easily still cause headaches to use</p>
<p><code>eval</code> can also be very useful when building command line arguments from user input, so long as you take great care to escape said input. in posix shell, this is as simple as doing <code>escaped_input="'$(printf '%s' "$input" | sed "s/'/'\\\\''/g")'"</code>. this wraps the input in single quotes, where a shell never expands any special characters within except <code>'</code>, which are also dealt with by replacing them with <code>'\''</code>, as one would in a normal shell. I do this in <a href="https://git.unix.dog/yosh/agetar/src/branch/master/agetar#L64">agetar</a></p>
</main>
<!--RES f=footer.html -->
<!--sh ./footer.sh -->
</body>
</html>

View File

@ -1,14 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<!--RES f=head.html;TITLE=printers. | ~yosh -->
<!--sh TITLE="printers | ~yosh" ./head.sh -->
<body>
<!--RES f=header.html -->
<!--RES f=sidebar-top.html -->
<!--RES f=sidebar-bottom.html -->
<!--sh ./header.sh -->
<!--sh ./sidebar.sh top bottom -->
<main>
<!--RES f=titlebar.html;COLOR=tb-lblue;TITLE=printers. -->
<!--sh TB_TITLE="printers." TB_COLOR="lblue" ./titlebar.sh -->
<h1>printers</h1>
<p>we all know printers suck. ugh. here's some collaged info about them:</p>
<h2>hp printers</h2>

View File

@ -1,14 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<!--RES f=head.html;TITLE=resonite desktop workflow | ~yosh -->
<!--sh TITLE="resonite desktop workflow | ~yosh" ./head.sh -->
<body>
<!--RES f=header.html -->
<!--RES f=sidebar-top.html -->
<!--RES f=sidebar-bottom.html -->
<!--sh ./header.sh -->
<!--sh ./sidebar.sh top bottom -->
<main>
<!--RES f=titlebar.html;COLOR=tb-green;TITLE=resonite desktop workflow -->
<!--sh TB_TITLE="resonite desktop workflow" ./titlebar.sh -->
<h1>resonite desktop workflow</h1>
<p>this page is meant as a text-based version of a <a href="https://www.youtube.com/watch?v=Erg8EbHHjoY">video</a> I made about my desktop workflow in resonite, because text is king</p>
<p>some of the sections will be replaced with links to the eventual resonite wiki when it releases and has applicable up-to-date information. for now, you can probably look at the <a href="https://wiki.neosvr.com/Basic_Controls#New_desktop_mode_controls">neos page</a> and have these controls carry over</p>
@ -49,6 +45,6 @@
<li>z - go much slower</li>
</ul>
</main>
<!--RES f=footer.html -->
<!--sh ./footer.sh -->
</body>
</html>

View File

@ -1,22 +1,18 @@
<!DOCTYPE html>
<html lang="en">
<!--RES f=head.html;TITLE=void linux | ~yosh -->
<!--sh TITLE="void linux | ~yosh" ./head.sh -->
<body>
<!--RES f=header.html -->
<!--RES f=sidebar-top.html -->
<!--RES f=sidebar-bottom-voidlinux.html -->
<!--sh ./header.sh -->
<!--sh ./sidebar.sh top bottom -->
<main>
<!--RES f=titlebar.html;COLOR=tb-green;TITLE=void linux -->
<!--sh TB_TITLE="void linux" ./titlebar.sh -->
<h1>void linux</h1>
<p><a href="https://voidlinux.org/">void linux</a> is probably my favorite linux distribution. I say probably because it's the only one I have ever used outside of a VM for anything significant. who knows. nonetheless, the point is I like it. I also enjoy to do things ""properly"", and by that I mean set stuff up such that things are stable, don't look "hacky" unless required, and can easily be debugged and extended</p>
<p>recently, I wanted to setup void linux from scratch on my laptop. while my desktop I set up from the base as well, I was kinda figuring things out as I went and while I still ended up with a reasonably well-developed machine, I thought I could do better. then, I realized I should probably document this, as while I was guiding a friend on installing and setting up void on an old laptop (hi hex!), I found myself being very torn on what I should include, how I should explain stuff, and all the like, and I don't think I did a very good job of explaining my ideas all in all</p>
<p>this page will have a general focus on the idea of "software minimalism" and/or "connect a bunch of software that do one thing well", but I think that line of thought has been coined and used by overly pretentious people to justify using obtuse stuff, so I must stress that everything here is how I like to do things, and nothing is definitive. I generally do stuff this way to pick and choose what I like, but I do not follow it tooth and nail. I just can't speak for anything I haven't used</p>
<p>do not think of this as a replacement for <a href="https://docs.voidlinux.org/">the void linux manual</a>. the manual is an incredibly helpful and easy-to-navigate piece of documentation that cannot be replaced. think of it more as an extension of it going more into detail for specific software and my opinionated setup. I guess kind of like the arch wiki? I don't know.</p>
<p>without further ado, here's the guide! :D</p>
<a href="installation.html">installation --></a>
<a href="installation.html">installation --&gt;</a>
</main>
<!--RES f=footer.html -->
<!--sh ./footer.sh -->
</body>
</html>

View File

@ -1,14 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<!--RES f=head.html;TITLE=void linux | ~yosh -->
<!--sh TITLE="void linux | ~yosh" ./head.sh -->
<body>
<!--RES f=header.html -->
<!--RES f=sidebar-top.html -->
<!--RES f=sidebar-bottom-voidlinux.html -->
<!--sh ./header.sh -->
<!--sh ./sidebar.sh top bottom -->
<main>
<!--RES f=titlebar.html;COLOR=tb-green;TITLE=void linux | installation -->
<!--sh TB_TITLE="void linux | installation" ./titlebar.sh -->
<h1>void linux - installation</h1>
<p>I won't restate the already-well-documented-elsewhere. if you want a basic system steup, no fancy efistub or FDE or whatnot, the <a href="https://docs.voidlinux.org/installation/live-images/guide.html">manual</a> and installer script are both very powerful and go a very long way</p>
<h2 id="fde">full disk encryption + efistub</h2>
@ -127,8 +123,8 @@ PART=1 # the EFI system partition, *not* root
</code>
<p>hopefully everything went well. if something didn't go well and you don't reboot successfully, don't panic. don't go through the entire installation process again unless you fucked up something with the encrypted disk and cannot unlock it at all. otherwise, look at <a href="rescuing.html">rescuing a system</a></p>
<p>addendum: if you want to make this setup basically as secure as possible, you also need to use secure boot and sign your own kernel. this varies wildly from system to system, so I cannot give any specific instructions here. I also haven't done it yet. oops</p>
<a href="setup.html">setting up a system --></a>
<a href="setup.html">setting up a system --&gt;</a>
</main>
<!--RES f=footer.html -->
<!--sh ./footer.sh -->
</body>
</html>

View File

@ -1,14 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<!--RES f=head.html;TITLE=void linux | ~yosh -->
<!--sh TITLE="void linux | ~yosh" ./head.sh -->
<body>
<!--RES f=header.html -->
<!--RES f=sidebar-top.html -->
<!--RES f=sidebar-bottom-voidlinux.html -->
<!--sh ./header.sh -->
<!--sh ./sidebar.sh top bottom -->
<main>
<!--RES f=titlebar.html;COLOR=tb-green;TITLE=void linux | setup -->
<!--sh TB_TITLE="void linux | setup" ./titlebar.sh -->
<h1>void linux - setup</h1>
<p>with void now installed, we need to set it up. this setup process will be geared towards people looking for a one-user desktop experience. I do not have enough experience with multi-user servers/desktops to be 100% confident on what to do in terms of security and whatnot, but this setup guide should also be relatively good for multi-user desktop systems as well (i.e. guest accounts), so long as you take modified/additional steps where applicable</p>
<p>as a reminder, <b>this is not exhaustive</b>. the <a href="https://docs.voidlinux.org/config/index.html">manual</a> has much, much more than what is covered here. these are just a few key things I found needed specifics that weren't elaborated on in said manual</p>
@ -132,8 +128,8 @@ export XDG_STATE_HOME="$HOME/.local/state"
<h3>XDG_RUNTIME_DIR</h3>
<p>the <code>XDG_RUNTIME_DIR</code> variable has a specific way it should be implemented according to the spec. before, this guide showed making a tmpdir in /tmp (because the package showed later didn't exist at the time), but that sucks and is probably prone to some dumb shit happening sometimes. idk.</p>
<p>anyway, install the <code>dumb_runtime_dir</code> package and remove the <code>-</code> from the <code>-session optional pam_dumb_runtime_dir.so</code> line in <code>/etc/pam.d/system-login</code></p>
<a href="xorg.html">xorg --></a>
<a href="xorg.html">xorg --&gt;</a>
</main>
<!--RES f=footer.html -->
<!--sh ./footer.sh -->
</body>
</html>

View File

@ -1,14 +1,10 @@
<!DOCTYPE html>
<html lang="en">
<!--RES f=head.html;TITLE=~yosh -->
<!--sh TITLE="youtube downloading | ~yosh" ./head.sh -->
<body>
<!--RES f=header.html -->
<!--RES f=sidebar-top.html -->
<!--RES f=sidebar-bottom.html -->
<!--sh ./header.sh -->
<!--sh ./sidebar.sh top bottom -->
<main>
<!--RES f=titlebar.html;COLOR=tb-pink;TITLE=youtube downloading -->
<!--sh TB_TITLE="youtube downloading" TB_COLOR="pink" ./titlebar.sh -->
<h1>downloading from youtube for fun, archival, and maybe profit</h1>
<p>this page will guide you through using <a href="https://github.com/yt-dlp/yt-dlp">yt-dlp</a> for downloading videos from not only youtube, but like 30 thousand other sites that it supports. this guide will assume zero prior knowledge on concepts like windows environment variables, using the terminal, ffmpeg, etc. (the *nix instructions will assume basic familiarity with your package manager and the terminal). I made this because a group I'm in recently guided someone through using yt-dlp, and it was slightly disorganized. this should serve as a good introductory guide that you can link to whoever needs to hear it</p>
<h2>I don't want to use yt-dlp</h2>
@ -61,6 +57,6 @@
<p>for videos, the recommended "supported" container to put them in is mp4 with an h264 codec. in ffmpeg, this looks like <code>ffmpeg -i input_file output_file.mp4</code> (ffmpeg automatically assumes h264 codec, so no need to specify it)</p>
<p>PLEASE NOTE! every time you change formats <em>without using -c copy</em>, you naturally lose quality as you're converting to a lossy format (the only exceptions to this are when using inherently lossless formats, like flac, or with niche codec stuff you'll never need). please keep this in mind if video quality is important!</p>
</main>
<!--RES f=footer.html -->
<!--sh ./footer.sh -->
</body>
</html>