From a2625d7e78646e4d2ef8d1e5b6baec9081c92756 Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Tue, 2 Jan 2024 22:05:13 -0600 Subject: Initial commit --- README | 39 +++++++++++++++++++++++++++++++++++++++ nduja | 5 +++++ 2 files changed, 44 insertions(+) create mode 100644 README create mode 100755 nduja diff --git a/README b/README new file mode 100644 index 0000000..cd76895 --- /dev/null +++ b/README @@ -0,0 +1,39 @@ +NDUJA -- an sms-sized ssg + +nduja is a static site generator that can fit in a text message or an old-school +tweet, just barely. It's 140 bytes long on the nose. In fact, I'll put the +whole thing here for you: + +``` +#!/bin/sh +X()(eval "dd<<. +`awk -vRS= '!/^"$0"

"}//'` +.");N()(X${n%.n});T +` tags to paragraphs not starting with a `<` +2. expands the template file (T) as a shell here-document with its contents. + +if `T` doesn't exist, it's created for you! isn't that neat :) + +I've even added in EXTENSIBILITY: + +If a library file (L) exists, it'll be sourced, meaning you can define whatever +shell functions you need to make writing your site easier. Crucially, you can +redefine these two functions: + +- `X`, the eXpando function, which defines how to plop your content into T. +- `N`, the NDUJA function, which defines what to do to turn a .n file into a + .. whatever. + +Go nuts! You could argue that by redefining those two functions, nduja is not +really text-sized, but i don't care! the actual script contains the +functionality you technically need ;) + +LICENSE: there isn't one, silly! This program is released to the PUBLIC DOMAIN + +see also: unk, nef, ... diff --git a/nduja b/nduja new file mode 100755 index 0000000..b1f4f29 --- /dev/null +++ b/nduja @@ -0,0 +1,5 @@ +#!/bin/sh +X()(eval "dd<<. +`awk -vRS= '!/^"$0"

"}//'` +.");N()(X${n%.n});T +