example | ||
inc | ||
src | ||
CMakeLists.txt | ||
LICENSE | ||
README.md |
nhtml
!html, a very simple template language
Syntax
As said above, the Template Language is simple. That also implies a few limitations:
- No Parametric instantiation (for now) since this would bloat the compiler too much (I was in no need for that feature when writing this compiler).
- No language integration of any kind. This makes this template compiler useful for static webcontent only!
Sooo, how does it work?
-
text enclosed with
""
will be placed in the html output, but will be html escaped and\n
will be replaced with<br/>
. -
text enclosed with () will be placed without any changes.
-
One can include other files by writing either
@<filename>
, e.g.@hi.nhtml
or@"<filename>"
, e.g.@"filename with spaces.nhtml"
These files will pe pasted in place unless they end with.nhtml
, in which case they get compiled before getting pasted. -
There are comment blocks (
/*text*/
) and linecomments (//text
) like there are in C. -
A left curly brace (
{
) opens a tag, a coresponding right curly brace (}
) closes it. -
Finally, tag names are simply written as text and can be accompied by an attribute set enclosed in
[]
. So in order to e.g. produce<div style="color:white">Hi</div>
, the corresponding nhtml would look something likediv[style=color:white]{"Hi"}
. -
If the Attributes Key-Name is
class
, its pair can be written as.<value>
instead ofclass=<value>
. Note that multiple mentions of the same attribute key will result in the attribute values beeing concatenated with a space. So e.g.p[.A class=hi]{}
will become<p class="A hi"></p>
.
That about covers everything this little thing can do :) For a simple demo, look in example.
How to compile
The Project used cmake to build. It has no hard dependencies but it requires unix-style pathnames. (/path/to/file
) for includes to work.
on linux
Simply install cmake for your distro
Ubuntu
apt-get install cmake
Arch Linux
pacman -S cmake
The create a subdirectory for the build to reside in
mkdir build
cd build
And run cmake
Release: cmake -G"Unix Makefiles" ..
Debug: cmake -G"Unix Makefiles" .. -DCMAKE_BUILD_TYPE=DEBUG
after that run make
and you should be left with a compiled version of the !html compiler nhtmlc
How to use
./nhtmlc [-o <filename>] file [file...]
-I Add Path to include paths
--output
-o The output file to write the html to
When missing this option, stdout is used instead
-v Enable verbose output
--help Print this usage
When given multple input files, the resulting html is concatenated into output.