FRAME_BUFFER ENTRY_NO=1
1-MAY-2026
First Post
This is the first post of this lil blog thing! this will eventually become a more refined blog on my main site. but for now its a nice dump for me to write in markdown on my terminal and sync easily with neocities.
So what is this blog all about and how does it work ? ?! Well this blog is pretty much a spot for my production journals as well as for documenting any cool scripts I write or workflows I discover that could be useful for other people.
As for how this blog will be written, it will be written mostly in markdown that will then be converted into HTML via pandocs and staged to neocities via a lil publishing script I wrote. This allows me to work on the blog and the entire neocities page locally while only pushing my posts to neocities hosting when they are no longer in the draft stage :)
This workflow is made possible by using the neocities CLI, if you have it installed take a look at this publishing script! it might help you get a markdown oriented workflow going for your own blog.
using this requires setting up a post-template.html though! I also use yaml metadata in the header of my blog posts which i find useful for the date and titles.
oh btw here is the script I use if you feel like reading it:
#!/bin/bash
ROOT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")/.."; pwd)
FILENAME=$(basename "$1" .md)
echo "--- Generating $FILENAME.html ---"
pandoc -s "$ROOT_DIR/posts/$FILENAME.md" \
--template="$ROOT_DIR/post-template.html" \
-o "$ROOT_DIR/$FILENAME.html"
# 3. Rebuild blog.html index
echo "--- Rebuilding blog.html ---"
# Start the file
cat <<EOF > "$ROOT_DIR/blog.html"
<!DOCTYPE html>
<html>
<head>
<link rel="icon" type="image/x-icon" href="imgs/favicon.ico">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Blog - Frame_Buffer</title>
<link href="/style.css" rel="stylesheet" type="text/css" media="all">
<style>
@import url("https://fonts.googleapis.com/css2?family=JetBrains+Mono:ital,wght@0,100..800;1,100..800&display=swap");
</style>
</head>
<body>
<nav>
<ul>
<li class="featured-item" style="margin-right: 20px;">FRAME_BUFFER</li>
<li><a href="/index.html">Home</a></li>
<li><a href="/blog.html">Blog</a></li>
<li><a href="/about.html">About</a></li>
</ul>
</nav>
<h1>Writing log</h1>
<p>Here is a list of everything I've written so far:</p>
<ul>
EOF
# Loop through all .md files in the posts directory
# Using 'find' is often more reliable than a glob for path handling
find "$ROOT_DIR/posts" -maxdepth 1 -name "*.md" | while read -r post; do
# Extract title and date using 'sed' to be more robust than 'grep'
# This pulls the value after the colon and strips all whitespace/tabs
TITLE=$(sed -n 's/^title:[[:space:]]*//p' "$post" | tr -d '\r')
DATE=$(sed -n 's/^date:[[:space:]]*//p' "$post" | tr -d '\r')
POST_NAME=$(basename "$post" .md)
# Only add to list if TITLE was found
if [ -n "$TITLE" ]; then
echo " <li><span class=\"date\">$DATE</span> - <a href=\"/$POST_NAME.html\">$TITLE</a></li>" >> "$ROOT_DIR/blog.html"
fi
done
echo " </ul></body></html>" >> "$ROOT_DIR/blog.html"
# 4. Build-Directory Deployment to Neocities
cd "$ROOT_DIR" || exit
echo "--- Deploying to Neocities (Build Method) ---"
# Step 1: Create a clean, temporary build directory
BUILD_DIR=".deploy_site"
rm -rf "$BUILD_DIR"
mkdir -p "$BUILD_DIR"
# Step 2: Copy all static assets into the build folder
# This copies all generated HTML, CSS, and your robots.txt file
cp *.html *.css *.txt "$BUILD_DIR/" 2>/dev/null || true
# Step 3: Remove the raw template file so it doesn't become public
rm -f "$BUILD_DIR/post-template.html"
# Step 4: Copy the images folder (preserving its internal structure)
if [ -d "imgs" ]; then
cp -r imgs "$BUILD_DIR/"
fi
# Step 5: Nuke any hidden Mac files that might have snuck in
find "$BUILD_DIR" -name ".DS_Store" -delete
# Step 6: Enter the build directory and deploy
cd "$BUILD_DIR" || exit
# Create a local .gitignore for the CLI to read, just to be doubly safe
echo ".DS_Store" > .gitignore
# Push the contents of this clean folder to the site root
neocities push .
# Step 7: Clean up the temporary workspace
cd ..
rm -rf "$BUILD_DIR"
echo "--- Deployment Complete! ---"
Anyway I’ll soon get to putting a bit more time into writing actual articles, the next posts are the ones worth reading ;) thank ya for reading -Alex
← Back to all posts