A Template is a list of Node
s
You can directly use this module to create a Template or you can use one of the packages that build on top of this package to parse a template based on another, friendlier, format.
A Node represents Text, any Element or an Actor.
Text "some test"
Element "strong" [] [ Text "Hello World" ]
Actor <| ActorElement Counter "comp-counter" "counter-1" [] []
An ActorElement
String
The NodeName of an Element or ActorElement
String
The Actor Element Id, this should be unique on your template.
List Attribute
A List of Attribute
( String, String )
A (key, value) representation of a Node attribute
( "class", "Foo" )
( "href", "https://www.example.com" )
List (Node appActors)
A List of Nodes
getActorElementDescendants : List (Node appActors) -> List (ActorElement appActors)
Returns the descending ActorElement for a given List of Nodes
getActorsToSpawn : List (Node appActors) -> List { actor : appActors, reference : String, actorElement : ActorElement appActors }
Convenience function that returns a list containing records supplying the information usually required to spawn the target Actor
toString : List (Node appActors) -> String
Turn a Template into a single String
This can be handy for search results or meta descriptions
[ Element "strong" [] [ Text "a" ]
, Text "b"]
--> "a b"