added readme

This commit is contained in:
davidovski 2023-07-21 11:47:56 +02:00
parent 2722747c09
commit ba97d2402b
2 changed files with 48 additions and 4 deletions

40
README.md Normal file
View file

@ -0,0 +1,40 @@
# shblg
a static site generator written (entirely) in posix shell
this repository contains two parts: md2html and shblg
## md2html
md2html provides a simple and lightweight way to render a markdown file into html
most standard markdown syntax works
### usage
when using standalone:
md2html file.md > output.html
when using with shblg, prepend a shebang to your markdown file:
#!/usr/bin/env md2html
## shblg
shblg is a static site generator that generates a site using a directory full of executable files
shblg recurses through this directory and executes files, sending their stdout to the rendered directory
the intended use is to use various interpreters for input pages to generate an output, for example `md2html` can be added through a shebang to allow the input markdown to be *"executed"* to output html.
shblg will ignore any files that are not executable and instead copy them directly, so ensure that any input files that need to be executed have the `+x` mode
shblg does not make any changes to the source filenames when generating its output, so ensure that you keep file extensions to match the output file's format
### example usage
for example, if you would like to use shblg to generate the site in `example/` and save the output in `html/`
shblg -i example/ html/

View file

@ -2,9 +2,13 @@
INPUT_DIR=blog
OUTPUT_DIR=dist
PAGE_TEMPLATE=blog/template.html
while getopts ":o:i:t:" opt; do
usage () {
printf "%s\n" "Usage: shblg [-i input_dir] [-o output_dir]"
exit 1
}
while getopts ":o:i:h" opt; do
case "$opt" in
o)
OUTPUT_DIR=$OPTARG/
@ -14,8 +18,8 @@ while getopts ":o:i:t:" opt; do
i)
INPUT_DIR=$(realpath $OPTARG)
;;
t)
PAGE_TEMPLATE=$(realpath $OPTARG)
h)
usage
;;
esac
done