From d115a3e759e4812fb6417da41aa2ad507415004c Mon Sep 17 00:00:00 2001
From: Case Duckworth
Date: Mon, 1 Jul 2019 12:39:23 -0500
Subject: Move README to I/index.lh and symlink
---
I/index.lh | 178 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 178 insertions(+)
create mode 100644 I/index.lh
(limited to 'I/index.lh')
diff --git a/I/index.lh b/I/index.lh
new file mode 100644
index 0000000..3b84431
--- /dev/null
+++ b/I/index.lh
@@ -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__ 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
rsync
ing 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
+
+
+ - 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
+ - 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.
+
--
cgit 1.4.1-21-gabe81