From 37dcb0a1663a28ed70653777130d2054e54d876e Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Mon, 1 Jul 2019 12:42:31 -0500 Subject: Reverse symlink direction for sr.ht --- I/index.lh | 179 +------------------------------------------------------------ README.md | 179 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 2 files changed, 179 insertions(+), 179 deletions(-) mode change 100644 => 120000 I/index.lh mode change 120000 => 100644 README.md diff --git a/I/index.lh b/I/index.lh deleted file mode 100644 index 3b84431..0000000 --- a/I/index.lh +++ /dev/null @@ -1,178 +0,0 @@ -

UNK

- -

a very small static site generator

- -__UNK__ is an experiment in minimalism. -It is a templating static site generator -with an included markup language -that all fits with 1000 bytes. -There are three main scripts: - - - -__UNK__ and __LHT__ are 250 bytes each, for a total of 500 bytes. -__TM__ takes up the remaining 500 bytes -of the target 1000 bytes. -You are, of course, free to make the template file as large -and involved as you like. - -

DETAILS

- -

unk

- -__UNK__ takes a set of files in a directory, applies a template to them, -and output them into another directory as HTML files ready for a server. -To keep a very small size, __UNK__ delegates most file processing to __TM__, -the main template. It delegates by using an idea found in -shab: -each input file is read as a `heredoc`, which enables -shell interpolation. -So the template, as opposed to the engine, -can do all the heavy-lifting of index generation and navigation and such. - -Content goes into the following (hard-coded) directories: - - - -If there is no __TM__ in the directory where __UNK__ is run, -one will be created that will simply `cat` the file being processed. - -The following variables are made available to __TM__: - - - -as well as this function: - - - -and these aliases (though they're more an artefact of saving space -in the script, but they can be used in templates): - -
    -
  • c: cat
  • -
  • q: test
  • -
  • e: echo
  • -
- -As mentioned above, templates can be nested. -Simply call another template from __TM__ with the __X__ function. - -

lht

- -__LHT__ stands for *Less HyperText*, -because that's what you're writing when you're writing it -(though not much less than HTML). -Basically, -blank lines are interpreted as <p> tag breaks, -unless the previous source paragraph started with -< and ended with >. -It also has support for three inline spans: - -
    -
  • *em* - as em
  • -
  • __strong__ - as strong
  • -
  • `code` as code
  • -
- -Everything else is just HTML. -This means that a valid `.lht` file is *almost* a valid `.md` file, -except where it nests HTML and Markdown -(so it's not really, but you can run it through Markdown in a pinch -and get the basic idea across. -This file, for example, is both `index.lht` and `README.md` -(they're just symlinked to each other), -so it's got some weirdness to keep things compatible between Markdown and LHT. -But if you're just writing for LHT, it can be much simpler.). - -__LHT__ was inspired, in part, by -Writing HTML in HTML -by John Ankarstrom, -as well as some other articles I can't think of right now. -I liked the idea, but some tags in HTML are just annoying to write -over and over, and take me out of the flow of writing prose. -So I fixed those few tags. -__The inline tags are definitely subject to change.__ - -

Why?

- -I was bored and decided I'd try to write a static site generator -that could fit in a -toot -(500 characters). -I -wrote -a few -of them, -making them smaller and smaller each time. -By the end, I was left with a *tiny* script -that delegated almost *all* the work to the template file. -That script became __UNK__ in this repo. - -I was feeling pretty high on my horse after writing the tiny SSG, -so I thought, -maybe -I could try for a tootable Markdown converter next -boy, was I wrong about that. -Markdown is *way* too complicated to fit in 500 bytes. -So I just wrote the Really Important Parts: <p> -and some inlines. - -

LEGAL

- -Copyright © 2019 Case Duckworth -<acdw@acdw.net>. - -This work is free. -You can redistribute it and/or modify it under the terms of -the Do What The Fuck You Want To Public License, Version 2, -as published by Sam Hocevar. -See the LICENSE file for more details. - -

Why this license?

- -I was going to go with a stricter license like the GPL, -but realized that - -
    -
  1. this software isn't so important or time-consuming that I need - others to credit me or redistribute the project under the same terms, - and
  2. -
  3. the GPL is way too long for a project like this. - It's over 35 times bigger than the entirety of this project, - not counting the content or this README. - It would weigh down the entire undertaking. - The WTFPL, by contrast, is a trim 443 characters, - which is right in keeping with the smallness of this project.
  4. -
diff --git a/I/index.lh b/I/index.lh new file mode 120000 index 0000000..32d46ee --- /dev/null +++ b/I/index.lh @@ -0,0 +1 @@ +../README.md \ No newline at end of file diff --git a/README.md b/README.md deleted file mode 120000 index b23acff..0000000 --- a/README.md +++ /dev/null @@ -1 +0,0 @@ -I/index.lh \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..3b84431 --- /dev/null +++ b/README.md @@ -0,0 +1,178 @@ +

UNK

+ +

a very small static site generator

+ +__UNK__ is an experiment in minimalism. +It is a templating static site generator +with an included markup language +that all fits with 1000 bytes. +There are three main scripts: + +
    +
  • UNK +
  • LHT +
  • TMUNK.
  • +
+ +__UNK__ and __LHT__ are 250 bytes each, for a total of 500 bytes. +__TM__ takes up the remaining 500 bytes +of the target 1000 bytes. +You are, of course, free to make the template file as large +and involved as you like. + +

DETAILS

+ +

unk

+ +__UNK__ takes a set of files in a directory, applies a template to them, +and output them into another directory as HTML files ready for a server. +To keep a very small size, __UNK__ delegates most file processing to __TM__, +the main template. It delegates by using an idea found in +shab: +each input file is read as a `heredoc`, which enables +shell interpolation. +So the template, as opposed to the engine, +can do all the heavy-lifting of index generation and navigation and such. + +Content goes into the following (hard-coded) directories: + +
    +
  • I/, + for written (Input) content + (the pages of the site),
  • +
  • S/, for Static content + (css, images, etc.), &
  • +
  • O/, for the (Output) + website, ready for rsyncing to a server.
  • +
+ +If there is no __TM__ in the directory where __UNK__ is run, +one will be created that will simply `cat` the file being processed. + +The following variables are made available to __TM__: + +
    +
  • FN: the FileName + (with directories removed) of the file being processed
  • +
  • TT: the TiTle + (the first line) of the file
  • +
  • BD: the BoDy + (the rest) of the file
  • +
+ +as well as this function: + +
    +
  • XeXpand: + the shab stand-in. + It is much simpler than shab, + and will fail if the template + (or if it nests templates, one of the nested ones) + has a ZZ on a line by itself, + due to its heredoc nature.
  • +
+ +and these aliases (though they're more an artefact of saving space +in the script, but they can be used in templates): + +
    +
  • c: cat
  • +
  • q: test
  • +
  • e: echo
  • +
+ +As mentioned above, templates can be nested. +Simply call another template from __TM__ with the __X__ function. + +

lht

+ +__LHT__ stands for *Less HyperText*, +because that's what you're writing when you're writing it +(though not much less than HTML). +Basically, +blank lines are interpreted as <p> tag breaks, +unless the previous source paragraph started with +< and ended with >. +It also has support for three inline spans: + +
    +
  • *em* + as em
  • +
  • __strong__ + as strong
  • +
  • `code` as code
  • +
+ +Everything else is just HTML. +This means that a valid `.lht` file is *almost* a valid `.md` file, +except where it nests HTML and Markdown +(so it's not really, but you can run it through Markdown in a pinch +and get the basic idea across. +This file, for example, is both `index.lht` and `README.md` +(they're just symlinked to each other), +so it's got some weirdness to keep things compatible between Markdown and LHT. +But if you're just writing for LHT, it can be much simpler.). + +__LHT__ was inspired, in part, by +Writing HTML in HTML +by John Ankarstrom, +as well as some other articles I can't think of right now. +I liked the idea, but some tags in HTML are just annoying to write +over and over, and take me out of the flow of writing prose. +So I fixed those few tags. +__The inline tags are definitely subject to change.__ + +

Why?

+ +I was bored and decided I'd try to write a static site generator +that could fit in a +toot +(500 characters). +I +wrote +a few +of them, +making them smaller and smaller each time. +By the end, I was left with a *tiny* script +that delegated almost *all* the work to the template file. +That script became __UNK__ in this repo. + +I was feeling pretty high on my horse after writing the tiny SSG, +so I thought, +maybe +I could try for a tootable Markdown converter next +boy, was I wrong about that. +Markdown is *way* too complicated to fit in 500 bytes. +So I just wrote the Really Important Parts: <p> +and some inlines. + +

LEGAL

+ +Copyright © 2019 Case Duckworth +<acdw@acdw.net>. + +This work is free. +You can redistribute it and/or modify it under the terms of +the Do What The Fuck You Want To Public License, Version 2, +as published by Sam Hocevar. +See the LICENSE file for more details. + +

Why this license?

+ +I was going to go with a stricter license like the GPL, +but realized that + +
    +
  1. this software isn't so important or time-consuming that I need + others to credit me or redistribute the project under the same terms, + and
  2. +
  3. the GPL is way too long for a project like this. + It's over 35 times bigger than the entirety of this project, + not counting the content or this README. + It would weigh down the entire undertaking. + The WTFPL, by contrast, is a trim 443 characters, + which is right in keeping with the smallness of this project.
  4. +
-- cgit 1.4.1-21-gabe81