commit a6f4a1648673863d7de1f0903e06bdb1ee13c052 Author: Case Duckworth Date: Sat Jan 30 23:47:05 2021 -0600 init diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..4be637a --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +L +O/ \ No newline at end of file diff --git a/I/carpe-diem.html.lh b/I/carpe-diem.html.lh new file mode 100644 index 0000000..c5ea725 --- /dev/null +++ b/I/carpe-diem.html.lh @@ -0,0 +1,49 @@ +Carpe diem + +Fusce tortor quam, egestas in posuere quis, porttitor vel turpis. Donec +vulputate porttitor augue at rhoncus. Proin iaculis consectetur sagittis. +Curabitur venenatis turpis sit amet purus tristique nec posuere risus laoreet. +Nullam nisi sem, dapibus id semper id, egestas vel arcu. Morbi porttitor ipsum +placerat erat consequat sed consequat purus feugiat. Donec auctor elit ut +risus mattis facilisis. Lorem ipsum dolor sit amet, consectetur adipiscing +elit. + +Proin vulputate sapien facilisis leo ornare pulvinar. Fusce tempus massa a +risus semper iaculis. Suspendisse sollicitudin posuere nunc, sit amet rutrum +leo facilisis mattis. Sed ornare auctor dui, vitae rutrum neque auctor sit +amet. Proin ac dui magna. Mauris vehicula interdum augue, nec ultrices libero +egestas quis. Nunc convallis euismod ipsum, id sollicitudin orci consequat ac. +Fusce bibendum congue libero, in rutrum nulla congue non. Cras sit amet risus +tortor, eu pellentesque dui. Phasellus euismod enim non nibh sodales quis +consectetur lorem laoreet. Vivamus a egestas quam. Curabitur in tortor augue, +vitae varius tellus. Integer varius, elit ac gravida suscipit, eros erat +pellentesque nisi, et tristique augue odio id nulla. Aliquam sit amet nunc vel +tellus hendrerit tempus ac vel sem. + +Aenean tincidunt sollicitudin sapien ut porttitor. Curabitur molestie +adipiscing lorem vel scelerisque. Donec vitae interdum est. Proin rutrum +vulputate faucibus. Suspendisse sit amet felis odio, non volutpat ante. Sed eu +lectus quam. Curabitur tristique rhoncus est, vel commodo tortor suscipit +semper. Maecenas feugiat vestibulum nisi id facilisis. Nulla non tincidunt +libero. Praesent ultrices interdum commodo. Sed euismod nisl auctor leo +ultrices rutrum. Aliquam nibh felis, congue molestie blandit at, bibendum at +eros. Aenean tincidunt, tortor iaculis placerat sollicitudin, lorem justo +tempor diam, et posuere sapien leo et magna. Quisque vel aliquam mauris. + +Proin varius tempus fermentum. Cum sociis natoque penatibus et magnis dis +parturient montes, nascetur ridiculus mus. Sed tincidunt nunc id magna +adipiscing non sollicitudin turpis tempor. Etiam vel elit ipsum, quis euismod +velit. Quisque elementum magna vitae quam venenatis lacinia. Sed at arcu +ipsum. Class aptent taciti sociosqu ad litora torquent per conubia nostra, per +inceptos himenaeos. Donec ut lorem ac sapien cursus lacinia sit amet mollis +dolor. Vivamus tempus odio nec magna faucibus sed hendrerit lorem tempor. + +Vestibulum eu nisi arcu. Curabitur nisi risus, fermentum ut lacinia ut, +interdum nec magna. Nunc aliquet gravida massa, eu aliquam lorem faucibus at. +Sed sollicitudin volutpat velit id tempor. In nibh justo, pharetra et pretium +dignissim, tempus in turpis. Phasellus eget lobortis nisl. Phasellus sed +fermentum diam. Nam tempus pharetra odio, quis congue eros imperdiet eu. +Aliquam dui eros, hendrerit et vulputate vel, porta eu eros. Nullam nisi dui, +commodo eget pharetra ut, ornare sit amet nunc. Fusce vel neque urna. Maecenas +nulla ante, egestas at consequat quis, fermentum a enim. Aliquam id tristique +urna. Integer augue justo, scelerisque et consectetur id, rhoncus eget enim. diff --git a/I/index.html.lh b/I/index.html.lh new file mode 120000 index 0000000..32d46ee --- /dev/null +++ b/I/index.html.lh @@ -0,0 +1 @@ +../README.md \ No newline at end of file diff --git a/I/rosa-rosa-rosam.html.lh b/I/rosa-rosa-rosam.html.lh new file mode 100644 index 0000000..fe0de0e --- /dev/null +++ b/I/rosa-rosa-rosam.html.lh @@ -0,0 +1,44 @@ +Rosa Rosa Rosam + +Suspendisse pharetra ullamcorper sem et auctor. Suspendisse vitae tellus eu +turpis dignissim gravida ut ut tortor. Cum sociis natoque penatibus et magnis +dis parturient montes, nascetur ridiculus mus. Morbi aliquam sapien quis nisl +sodales non aliquet nisl iaculis. Curabitur fermentum orci vel sapien +pellentesque id condimentum metus vehicula. Curabitur turpis purus, +scelerisque at interdum quis, placerat sit amet tortor. Aliquam erat volutpat. + +Integer posuere felis non arcu suscipit ullamcorper. Nam tempus risus +venenatis orci sagittis eu aliquam ante tincidunt. Aenean vehicula ipsum id +sapien tincidunt commodo. Aliquam erat volutpat. Curabitur vehicula libero ac +turpis cursus consectetur. Praesent posuere egestas purus et dapibus. Mauris +egestas, lectus vitae scelerisque ultricies, metus lorem tempor nisi, sed +vehicula tortor mauris nec urna. Quisque urna tellus, facilisis at mollis +eget, adipiscing in nisl. Proin quam arcu, euismod et imperdiet sed, ultricies +sed orci. + +Nulla malesuada sem eget lectus scelerisque nec rhoncus metus interdum. In dui +felis, rhoncus id scelerisque eget, vulputate id sem. Nulla facilisi. +Vestibulum eleifend, metus dignissim lacinia ornare, magna nulla vehicula +nisi, sed molestie mauris ipsum vel turpis. Class aptent taciti sociosqu ad +litora torquent per conubia nostra, per inceptos himenaeos. Nulla urna leo, +vehicula eget dignissim a, hendrerit ut risus. Fusce ultricies elementum +placerat. Nam at dolor sed nisi mollis sollicitudin vitae at urna. Vestibulum +iaculis adipiscing eros et mollis. + +Phasellus ultricies elit eu risus sagittis eu dictum ante ultrices. Nulla +congue, augue ac placerat tempor, orci mi luctus nisi, at varius ipsum sem sed +eros. Vivamus eget velit eget felis posuere ornare. In sed metus non est +iaculis facilisis dapibus sit amet enim. Aliquam viverra tortor eget neque +volutpat in auctor urna rutrum. Aliquam ligula augue, congue sit amet rutrum +in, semper vel nulla. Sed tempus porttitor faucibus. Donec cursus sodales +nulla, quis lacinia mi vehicula vel. Sed nec purus orci. Nam leo sapien, +rutrum a ultrices quis, placerat vel ligula. Donec massa quam, pellentesque et +molestie nec, hendrerit id mauris. In hac habitasse platea dictumst. Cras quis +quam sem. Curabitur in arcu diam, in interdum mauris. + +Proin lorem sapien, iaculis et faucibus nec, dictum sed nunc. Pellentesque in +purus justo. Vestibulum facilisis rutrum nisi, a egestas nunc suscipit sed. Ut +quis tortor a arcu bibendum placerat non sed ante. Praesent orci sem, posuere +sit amet cursus molestie, volutpat ut purus. Curabitur aliquam, purus in +pharetra viverra, lorem leo aliquam tellus, vel consequat felis neque et +mauris. Aliquam erat volutpat. diff --git a/I/spqr.html.lh b/I/spqr.html.lh new file mode 100644 index 0000000..88b609a --- /dev/null +++ b/I/spqr.html.lh @@ -0,0 +1,57 @@ +S.P.Q.R. + +Mauris in lorem nisl. Maecenas tempus facilisis ante, eget viverra nisl +tincidunt et. Donec turpis lectus, mattis ac malesuada a, accumsan eu libero. +Morbi condimentum, tortor et tincidunt ullamcorper, sem quam pretium nulla, id +convallis lectus libero nec turpis. Proin dapibus nisi id est sodales nec +ultrices tortor pellentesque. Vivamus vel nisi ac lacus sollicitudin vulputate +ac ut ligula. Nullam feugiat risus eget eros gravida in molestie sapien +euismod. Nunc sed hendrerit orci. Nulla mollis consequat lorem ac blandit. Ut +et turpis mauris. Nulla est odio, posuere id ullamcorper sit amet, tincidunt +vel justo. Curabitur placerat tincidunt varius. Nulla vulputate, ipsum eu +consectetur mollis, dui nibh aliquam neque, at ultricies leo ligula et arcu. +Proin et mi eget tellus sodales lobortis. Sed tempor, urna vel pulvinar +faucibus, lectus urna vehicula ante, at facilisis dolor odio at lorem. Morbi +vehicula euismod urna, et imperdiet urna ornare vitae. + +Sed tincidunt sollicitudin ultrices. In hac habitasse platea dictumst. Morbi +ligula lectus, egestas at ultricies nec, fringilla et tellus. Duis urna lorem, +bibendum a ornare sed, euismod sed nunc. Aliquam tempor massa at velit +fringilla fringilla. Praesent sit amet tempor felis. Maecenas id felis ac +velit aliquam tempor a sit amet orci. Nunc placerat nulla pellentesque sem +commodo cursus. Praesent quis sapien orci, quis ultricies augue. Nam +vestibulum sem non augue semper tincidunt pellentesque ipsum volutpat. Duis +congue, nunc a aliquam luctus, quam ante convallis nisi, ac pellentesque lacus +orci vel turpis. Cum sociis natoque penatibus et magnis dis parturient montes, +nascetur ridiculus mus. Suspendisse hendrerit nisl eu felis sagittis faucibus. +Nunc eu congue lorem. Quisque non nibh nisi, et ultrices massa. Sed vitae erat +vitae nulla pellentesque fermentum. + +Ut diam nunc, consectetur ut ultrices eu, iaculis sed felis. Sed lacinia, odio +et accumsan luctus, arcu ipsum accumsan erat, sit amet malesuada libero lacus +et velit. Donec accumsan tristique tristique. Proin a metus magna, vitae +mattis nisl. Integer a libero ipsum. Mauris faucibus eleifend metus id +sodales. Morbi ornare, nibh nec facilisis imperdiet, turpis sem commodo lorem, +id commodo mauris metus vitae justo. Etiam at pellentesque tortor. Proin +mollis accumsan ligula, nec tempus augue auctor quis. Nulla lacinia, mi quis +lobortis auctor, nisi diam posuere dui, pulvinar feugiat dui libero eget quam. +Fusce eu risus nunc, a consectetur orci. Class aptent taciti sociosqu ad +litora torquent per conubia nostra, per inceptos himenaeos. Maecenas venenatis +aliquet orci, a ultricies sem facilisis eu. Donec dolor purus, porta +condimentum convallis nec, dignissim nec libero. + +Etiam rutrum ultricies dui, et interdum metus elementum et. Nulla sapien nunc, +interdum tristique porttitor in, laoreet vitae mi. Ut vehicula auctor mauris +sit amet bibendum. Phasellus adipiscing mattis libero, eget adipiscing erat +dignissim at. Vivamus convallis malesuada metus nec cursus. Ut cursus, lorem +eleifend sollicitudin condimentum, felis tortor sodales augue, ac tempus lacus +ipsum vitae quam. Vestibulum vitae lacus non tortor vehicula iaculis faucibus +quis massa. + +Cum sociis natoque penatibus et magnis dis parturient montes, nascetur +ridiculus mus. Duis malesuada neque nec ante porttitor accumsan. Suspendisse +potenti. Aliquam in lacus magna, imperdiet laoreet lectus. Praesent id diam +nec ante commodo rhoncus nec vel augue. Pellentesque tortor massa, dignissim +ut sagittis sed, hendrerit vitae nunc. Nam gravida, urna vitae hendrerit +rutrum, felis augue vulputate tortor, ut varius velit libero nec lectus. In +adipiscing massa in est scelerisque ullamcorper. Vivamus in nisi metus. diff --git a/I/tu-quoque.html.lh b/I/tu-quoque.html.lh new file mode 100644 index 0000000..1e5ada2 --- /dev/null +++ b/I/tu-quoque.html.lh @@ -0,0 +1,56 @@ +Tu quoque + +Vestibulum leo turpis, dignissim quis ultrices sit amet, iaculis ac ligula. +Pellentesque tristique, velit eget scelerisque scelerisque, est dolor ultrices +arcu, quis ullamcorper justo arcu luctus mauris. Integer congue molestie nisi +id posuere. Fusce pellentesque gravida tempus. Integer viverra tortor nec eros +mollis quis convallis sem laoreet. Nulla id libero ac erat varius laoreet. +Proin sed est est. Curabitur lacinia fermentum lorem, elementum malesuada +ipsum malesuada ut. Donec suscipit elit id leo vehicula mattis non sed leo. +Morbi varius eleifend varius. Nulla vestibulum, neque vitae aliquam eleifend, +nisi tellus placerat nunc, quis suscipit elit turpis eu tortor. Etiam euismod +convallis lectus quis venenatis. Phasellus laoreet magna in nibh cursus eu +egestas nulla convallis. Aliquam vel ullamcorper risus. Fusce dictum, massa id +consequat viverra, nulla ante tristique est, a faucibus nisi enim nec dui. +Donec metus ligula, condimentum at porttitor eget, lobortis at quam. + +Aenean vel libero in magna ultricies congue in a odio. Donec faucibus rutrum +ornare. Fusce dictum eleifend fermentum. Vestibulum vel nibh a metus porttitor +rhoncus. Pellentesque id quam neque, eget molestie arcu. Integer in elit vel +neque viverra ultricies in eget massa. Nam ut convallis est. Pellentesque eros +eros, sodales non vehicula et, tincidunt ut odio. Cras suscipit ultrices metus +sit amet molestie. Fusce enim leo, vehicula sed sodales quis, adipiscing at +ipsum. + +Nunc tempor dignissim enim, sed tincidunt eros bibendum quis. Curabitur et +dolor augue, id laoreet mi. Nulla cursus felis id dui vehicula vitae ornare +lorem blandit. Cras eget dui nec odio volutpat pharetra. Fusce hendrerit justo +justo, vel imperdiet enim. Vivamus elit risus, interdum ultrices accumsan +eleifend, vestibulum vitae sapien. Integer bibendum ullamcorper tristique. +Nulla quis odio lectus, quis eleifend augue. Integer a ligula mauris. Aenean +et tempus tortor. Quisque at tortor mi. Vivamus accumsan feugiat est a +blandit. Sed vitae enim ut dolor semper sodales. Duis tristique, ante et +placerat elementum, nulla tellus pellentesque sapien, quis posuere velit mi +eget nulla. Sed vestibulum nunc non est porttitor ut rutrum nibh semper. +Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac +turpis egestas. + +Nulla adipiscing ultricies lobortis. Vivamus iaculis nisl vitae tellus laoreet +vitae aliquet lacus mollis. Phasellus ut lacus urna, sed sagittis ante. Etiam +consectetur pretium nisl sed dignissim. Pellentesque convallis, nisl eget +commodo mollis, sem magna consequat arcu, sed pretium ipsum arcu sit amet +neque. Aliquam erat volutpat. Morbi sed mi sed urna vestibulum placerat vitae +vel metus. Fusce ac ante at justo pharetra vehicula. Vivamus vel tortor eget +augue aliquet aliquet at vel odio. Nunc venenatis, magna quis facilisis +fringilla, augue tellus varius neque, in vulputate est eros ut tortor. Duis +lorem neque, aliquam congue posuere id, condimentum non dui. Phasellus ut dui +massa, porttitor suscipit augue. Praesent quis tellus quam, vel volutpat +metus. Vivamus enim est, aliquam in imperdiet et, sagittis eu ligula. +Vestibulum hendrerit placerat orci et aliquet. Cras pharetra, dolor placerat +lobortis tempor, metus odio cursus ligula, et posuere lacus ligula quis dui. + +Donec a lectus eu nibh malesuada aliquam. Proin at metus quam, et tincidunt +leo. Quisque lacus justo, scelerisque sodales pulvinar sed, dignissim ut +sapien. Vivamus diam felis, adipiscing sollicitudin ultricies id, accumsan ac +felis. In eu posuere ligula. Suspendisse potenti. Donec porttitor dictum dui +id vehicula. Integer ante velit, congue id dictum et, adipiscing a tortor. diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..2da9777 --- /dev/null +++ b/LICENSE @@ -0,0 +1,6 @@ +(c) 2020 Case Duckworth + +Everyone is permitted to do whatever with this software, without limitation. +This software comes without any warranty whatsoever. +Don't hurt yourself. +Make good choices. \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..684fbff --- /dev/null +++ b/README.md @@ -0,0 +1,95 @@ +NEF + +an even smaller static site generator + +
+ +from the mind that brought you UNK, comes the new and improved SON OF +UNK, NEF. Where UNK was a bloated one thousand bytes, the +entirety of NEF is four hundred forty-four, over a fifty per cent +reduction in size. + +

installation

+ +clone this repo. +NEF requires a POSIX environment. + +

use

+ +create the following files and directories in the same directory as NEF: + + + +

layouts

+ +the L file is basically a big here-doc, meaning that you can write +arbitrary shell in it however you'd like. the following variables and functions +are made available to L's environment (in addition, of course, to +whatever NEF's environment is): + + + +the default L also runs each input file through the +X function (UNK devotees will be aware of the X function; +it's basically shab but stupider and +smaller), meaning that input files can basically function as templates +themselves, and create their own fun. + +

uh, yeah, that's it

+ +look, the script is a super short POSIX shell script. it's barely usable by +itself. you're probably going to throw it out and write something else -- +that's what I do. + +

legal

+ +UNK used the WTFPL, which is the +shortest license I've been able to find. however, for NEF, 443 bytes is +far too long: it basically doubles the size of the repo! so I +wrote my own license, which I'm calling the good choices license, or +GCL for short. you can read the LICENSE file, or just read it here: + +
+(c) 2020 Case Duckworth <acdw@acdw.net> + +Everyone is permitted to do whatever with this software, without limitation. +This software comes without any warranty whatsoever. +Don't hurt yourself. +Make good choices. +
+ +a trim 169 bytes, exclusive of the copyright information! + +

contributing

+ +uh... send me an email? yeah. do that. diff --git a/S/not-this-day.gif b/S/not-this-day.gif new file mode 100644 index 0000000..6c9e464 Binary files /dev/null and b/S/not-this-day.gif differ diff --git a/nef b/nef new file mode 100755 index 0000000..704b6b6 --- /dev/null +++ b/nef @@ -0,0 +1,10 @@ +#!/bin/sh +rm -r O;mkdir O;cp -r S O;alias P=echo T=sed\ q +X()(eval "$(P 'cat<<.';cat;P;P .)");H()(awk -F' +' -vRS='' '!/^<.*>$/{$0="

"$0"

"}{print}') +[ -x H ]&&H=./H||H=H +[ -f L ]||P '$(T $F) + +

$(T $F)

$(sed 1d $F|X|$H)
/ $(for P in I/*;do +[ $P = $F ]||(N=${P#I/};P "$(T $P) ") +done)'>L;for F in I/*;do N=${F#I/};XO/${N%.*};done