2015-07-06 16:27:49 cblgh i was looking at one of your repos before bed 2015-07-06 16:28:45 cblgh and then i dreamt about GRESHUNKELs 2015-07-06 16:29:02 cblgh in which they were watermelon sized croissants, with layers of chocolate 2015-07-06 16:29:07 cblgh and cost 4.2k SEK 2015-07-06 16:29:10 cblgh why wally
lykkin | xbox syntax is the only reason i use greshunkel over other templating languages
GRESHUNKEL is a templating language. And a static site generator. It's actually three different templating languages. I guess technically theres a fourth version as well which we use for docstring generation. It's complicated. Here, just have this table comparing the features of each implementation:
When you're done looking at it and being confused, you can check out specifics and more in-depth documentation over here.
Static Site Generator (Python) | shithouse.tv variant (Lua) | 38-Moths Official (C) | |
---|---|---|---|
Variable Interpolation | xXx @VARIABLE_NAME xXx * |
xXx VARIABLE_NAME xXx ** |
xXx @VARIABLE_NAME xXx |
Arrays/Loops | xXx LOOP i items xXx ... xXx BBL xXx*** |
xXx LOOP i items xXx ... xXx BBL xXx***** |
|
Filter Functions | yYy filter_function ... yYy |
XxX filter_func ... XxX **** |
|
Template Inheritance | xXx PARENT=templates/base.html xXx |
||
Blocks | xXx BLOCK_NAME xXx ... xXx TTYL xXx |
||
Partial templates (inclusion) | xXx SCREAM _include.html xXx |
||
Sub-objects (Dictionaries) | xXx sub_object$name xXx |
xXx @sub_object.name xXx |
|
Array Indexing | xXx sub_object$0 xXx |
||
Looping through sub-objects | xXx LOOP param sub_object$params xXx****** |
||
"Unless" operator | yYy unless [not] MUSIC_SRC yYy |
xXx UNLESSS <NOT> @variable xXx ... xXx ENDLESS xXx |
Caveats:
- * Variables are interpolated differently inside of loops. I don't remember how at the moment, but they are.
- ** If a variable doesn't exist in this variant, the whole line is not rendered. This is important.
- *** Loops do a bunch of weird stuff to syntax. Sometimes things will work, and sometimes they won't. It's a chance to experiment!
- **** Notice that the Xs are alternated here, not to be confused with variable interpolation.
- ***** I don't think you can do loops inside of loops in this version. I don't remember.
- ****** This only works if the name of the variable you're looping through on the sub-object is called 'params'.