sssg/README

78 lines
2.7 KiB
Plaintext
Raw Permalink Normal View History

2020-10-25 07:51:56 +00:00
============
*** sssg ***
============
Simple Static Site Generator (or sssg) is just what it sounds like. It's
also written in Bash. It's only meant to have the most bare bones
features, and anything further should be implemented via patches.
# Installation
--------------
To install the script, you can simply run the `install.sh` script. By
default this will install the program to `/usr/local/bin/`. If you wish
to install elsewhere, you can do so by specifying the `$PREFIX`
variable.
# Usage
-------
The basic functionality of sssg is to generate pages that use templates
(e.g. for headers and footers), so as to have static web pages, but
without redundancy on the development side.
The basic structure of an sssg project is a root directory with all the
desired HTML files, and two subdirectories:
- `/_templates/`: used to store HTML templates
- `/_site/`: where the generated site will be output
These are the default directory names, they can be changed by specifying
flags (see `sssg help` for more information). The sssg will parse all
HTML files found in the root directory that are not in the templates or
generated site directories, looking for includes of templates and
parsing variables.
## Templates
2020-10-25 09:24:44 +00:00
To include a template into an HTML file, you would simply add the line
`#/<file>` to the HTML document where `<file>` is the name of the
2020-10-25 07:51:56 +00:00
template file relative to the `_templates/` directory. For example,
supposing the following file structure:
/index.html
/_templates/footer.html
/_templates/header.html
In order to include `header.html` into the `index.html` document, one
2020-10-25 09:24:44 +00:00
would write `#/header.html` within `index.html`, and likewise could be
2020-10-25 07:51:56 +00:00
done with `footer.html`.
## Variables
Often times we find it necessary to use certain variables in our
templates which depend upon the particular page in which they are being
used. The best example would be page titles. Therefore, variables would
be defined in each individual page, and referenced in the templates. All
variables are strings.
To define a variable in an HTML file, a section must be declared at the
2020-10-25 09:24:44 +00:00
beginning of the file which ends with `%%%`. Within this section,
variables are declared and defined by the syntax `<name>=<string>`. Note
that there is no need to use quotes, as everything after the `=` is
considered part of the string until the end of the line. These variables
can then be used in the template files which are imported with the
syntax `${<name>}`. For example:
2020-10-25 07:51:56 +00:00
index.html:
my-title=Home Page
%%%
#{header.html}
...
#{footer.html}
_templates/header.html:
...
<title>${my-title}</title>
...
# Licensing
-----------
This script is licensed under the terms & conditions of the GNU GPL
version 3 or greater (see `LICENSE` file for more information).