# natechoe.dev generator A very simple tool to generate natechoe.dev pages. It's effectively just a generic file preprocessor with HTML some auto escaping. Please not that ncdg minifies HTML so these examples aren't really correct. ## Usage There are only 4 features in ncdg: ### Include statements file1.html ``` @%file2.html@ ``` file2.html ```

Title!

Content!

``` Result: ```

Title!

Content!

``` ### Variables file1.html ``` %!title%

@!title@

@%file2.html@ ``` file2.html ``` @=title Title!@

Content!

``` Result: ``` Title!

Title!

Content!

``` A variable expansion can go through multiple variables until one is found. file.html ``` @!var1,var2,var3@ @=var2 value@ ``` Result: ``` value ``` var1 doesn't exist, so ncdg moves on to var2, which does exist, and skips var3. Certain variable names have default variables hello\_world.html ``` @!_filename@ ``` Result: ``` hello_world.html ``` ### Automatic escaping ```
@\
#include  
@
``` Result: ```
#include  <stdio.h>
``` Note that text inside of escaped sections is not minified. Also note that the first character after the code is swallowed. ### Excluding minification ``` @& & this text isn't minified @ ``` Result: ``` & this text isn't minified ``` Used for legacy web pages on my site that I don't want to update ### Nesting ``` @=var Hello world!@ @n @@$ echo '@!var@' | rev @@ @m ``` Turns into ``` @$ echo 'Hello world!' | rev @ ``` Turns into ``` !dlrow olleH ``` Things between an `@n` and `@m` tag get processed twice. You aren't allowed to define variables or include files inside of a nest, so ``` @n @@= dynamic_variable @$./generate_variable_value.sh@ @@ @m ``` and ``` @n @@% @$./get-file.sh@ @@ @m ``` are illegal