Commit Graph

45 Commits

Author SHA1 Message Date
Tom Alexander
369fbaf579
works fine with one parameter. 2020-05-09 15:11:04 -04:00
Tom Alexander
710785139a
Works fine with the partial but without parameters. 2020-05-09 15:08:31 -04:00
Tom Alexander
569b4594be
works fine without the partial. 2020-05-09 15:05:29 -04:00
Tom Alexander
bb3449467a
Running into an error parsing one of the partial test templates. 2020-05-09 15:02:54 -04:00
Tom Alexander
2f515e068d
Implemented the renderer logic.
I should just need to implement ContextElement at this point.
2020-05-08 22:22:30 -04:00
Tom Alexander
b45448edbd
Moved ParametersContext to its own file. 2020-05-08 22:12:35 -04:00
Tom Alexander
1a6db195cb
Starting a context for partial parameters. 2020-05-08 20:58:32 -04:00
Tom Alexander
f240b877b8
Start of rendering partials. 2020-05-08 19:24:32 -04:00
Tom Alexander
bafff8e7a0
Finished transitioning to the new top-level ignored whitespace template element. 2020-05-03 14:44:09 -04:00
Tom Alexander
908ae078b0
Start of making ignored whitespace a top-level template element to handle it in a more generic fashion. 2020-05-03 13:43:49 -04:00
Tom Alexander
b8c59f012b
Expanded the test definition and fixed part of the problem. 2020-05-03 13:21:02 -04:00
Tom Alexander
7670db9259
Identified an issue where tags separated by only whitespace are breaking parsing. 2020-05-03 13:07:27 -04:00
Tom Alexander
f97bb25ca8
Integrated the new span class 2020-05-03 12:48:02 -04:00
Tom Alexander
b8e8f19724
Implemented a new span to trim leading whitespace.
Through my experiements I have concluded that DustJS trims whitespace at the front of a line. To handle this, I implement a new parser that matches a newline followed by any amount of whitespace. This should allow me to trim whitespace at the head of the line because spans start immediately after a tag is closed. So, for example:

```
{foo}
  bar
{/foo}
```

Would be:

```
{foo}\n  bar{/foo}
     ^     ^
     \____/
      span
```

So while there is no magical "start of line" detector like in regular expressions, the first start of a line in a span will always be preceded with a newline character except for the opening of the document. For handling the opening of the document I am already trimming the whitespace in the `template()` parser.
2020-05-03 12:28:55 -04:00
Tom Alexander
f0a69d12b9
First attempt at a section render function.
Running into an issue with generics vs dynamic references.
2020-04-28 20:46:29 -04:00
Tom Alexander
41ad6179d1
Parse self-references and add a test for sections. 2020-04-28 19:02:43 -04:00
Tom Alexander
883bda7a78
Added the signature for passing filters into the render function.
Added the signature for passing filters into the render function but I am not yet using the filters.
2020-04-12 21:54:15 -04:00
Tom Alexander
d30749f709
Updated to the latest nom 2020-04-12 17:39:24 -04:00
Tom Alexander
28b5cf1d34
Fix handling of surrounding whitespace 2020-04-12 16:02:26 -04:00
Tom Alexander
273f6204d8
Rendering my first template with actually following paths.
Before I was hard-coding the path to the reference. Now I am following the full path programmatically using the new ContextElement and Walkable traits.
2020-04-11 22:52:20 -04:00
Tom Alexander
f65a144b3c
Beginning of the render_tag function.
Beginning of the render_tag function. At this point I need to figure out how to access elements in the context.
2020-04-11 19:05:40 -04:00
Tom Alexander
2459d7b418
Rendering spans 2020-04-11 18:25:48 -04:00
Tom Alexander
05d9e20a8f
Add all the helpers 2020-04-07 21:49:28 -04:00
Tom Alexander
15c732b3a3
Also stealing the ParameterizedBlock struct 2020-04-07 20:37:15 -04:00
Tom Alexander
b7120a34de
Forking the partial code for reuse as helper code 2020-04-07 20:21:26 -04:00
Tom Alexander
2ebe4798d5
Add test for quoted partial 2020-04-07 19:53:57 -04:00
Tom Alexander
e2f03de297
Integrated the partial parser into the rest of the grammar 2020-04-07 19:51:06 -04:00
Tom Alexander
8bfa622c4c
parsing out string literals in addition to paths 2020-04-06 23:47:50 -04:00
Tom Alexander
79100fc50f
Introducing a KVPair type 2020-04-06 23:35:09 -04:00
Tom Alexander
dd8b4ac28c
Introducing an RValue enum to handle paths vs literals 2020-04-06 23:30:42 -04:00
Tom Alexander
8641e5a98b
Starting stand-alone parsers for key value pairs 2020-04-06 23:21:03 -04:00
Tom Alexander
ffce2b0569
The extra steps are making it harder to debug, so move parser directly into test 2020-04-06 22:47:24 -04:00
Tom Alexander
647c22b3a9
Initial scaffold for partials 2020-04-06 22:02:10 -04:00
Tom Alexander
989bc6ed2a
Added backslash to the quoted string test 2020-04-06 21:26:08 -04:00
Tom Alexander
a6e48aee6a
Switch to escaped_transform to unescape the text. 2020-04-06 21:09:06 -04:00
Tom Alexander
5463ed2cdf
Added surrounding quotes 2020-04-06 21:03:03 -04:00
Tom Alexander
878cbf56ca
Switch to raw strings 2020-04-06 20:47:17 -04:00
Tom Alexander
a0b032ad4b
I was missing an escape character 2020-04-06 20:45:39 -04:00
Tom Alexander
586823aa8a
first test case failing 2020-04-06 20:34:04 -04:00
Tom Alexander
b3120d2e52
Initial scaffold for developing a quoted string parser 2020-04-06 20:20:53 -04:00
Tom Alexander
41abcb9b4a
Add support for named blocks 2020-04-05 23:47:55 -04:00
Tom Alexander
52824b4d0b
Rename the container parser to conditional.
Rename the container parser to conditional because we are going to have other tags with bodies that do not match the same semantics as the conditional blocks. An example of this is inline partials only support a single key rather than a path.
2020-04-05 19:39:07 -04:00
Tom Alexander
de4f420627
separate out the parser for key because partials don't use a full path, only a key 2020-04-05 19:34:46 -04:00
Tom Alexander
7f2c7151a9
Rename Block to Body because dust uses the name Block for {+ 2020-04-05 19:29:16 -04:00
Tom Alexander
0d659afa2f
Rename duster module to parser 2020-04-05 19:21:43 -04:00