Follow Us

Download

It's a good idea to read the docs before downloading. mkws@4.0.5.tgz contains the amd64 Linux binaries.

Deploy to Netlify Deploy to Vercel

mkws(1)Efficient Static Site Generator

wget -O - https://mkws.sh/mkws@4.0.5.tgz | tar -xzvf -
mv ws.sh example.com && cd example.com
cat <<EOF > index.upphtml
<p>
#!
echo hello, world
#!
</p>
EOF
./bin/mkws https://example.com
* applies to Linux

You can create more *.upphtml files to make additional pages, mkws(1) will pick up the new files. The layout file is held in ./share/l.upphtml.

Also, you can always modify your ./bin/mkws script, if it's the case.

Templates

Templating is handled via pp(1).That means you can write sh(1) code in your templates:

<ul>
#!
i=1
while test $i -le 5
do
if test 0 -eq 0
then
#!
	<li class=even>$i</li>
#!
else
#!
	<li class=odd>$i</li>
#!
fi
i=$((i + 1))
done
#!
</ul>

pp(1) outputs:

<ul>
        <li class=odd>1</li>
        <li class=even>2</li>
        <li class=odd>3</li>
        <li class=even>4</li>
        <li class=odd>5</li>
</ul>

Download

It's a good idea to read the docs before downloading. mkws@4.0.5.tgz contains the amd64 Linux binaries.

Deploy to Netlify Deploy to Vercel

Simple

mkws(1) is as simple as it gets when it comes to static site generators while staying very powerful, it uses pp(1) under the hood which leverages the power of the sh(1) command language interpreter.

One Language

Forget custom languages, custom templates, CSS preprocessing languages, write all your HTML templates, unpreprocessed CSS or any other templating needs in POSIX compliant sh(1). For small, simple websites, it's enough.

Blazing Fast

Blazing fast both in rendering and development speed. Because pp(1) uses sh(1) you already have a REPL in your terminal, that means you can test your commands there and just paste them in your templates. Also, your experience with the UNIX environment will translate. Rendering means just translating your templates to sh(1) code and running it.

Highly Extensible

Running on pp(1) templates, mkws(1) can use any UNIX utility inside its templates. You can use existing ones, or write your own. Also, you can modify the generator or extend it yourself, in fact it's recommended.

Minimal Dependencies

mkws(1)'s only dependencies are pp(1) and lmt(1) from lts(5) both of which are included in the download archives as statically compiled portable binaries.

POSIX Compliant

mkws(1) is POSIX compliant and highly portable.

Mentions