bellroy/elm-actor-framework-template/1.0.0

Formerly tricycle/elm-actor-framework-template. Search finds this package by either name.

Framework.Template

A Template is a list of Nodes

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.

type Node appActors
= Text String
| Element ElementNodeName Attributes (Children appActors)
| Actor (ActorElement appActors)

A Node represents Text, any Element or an Actor.

Text "some test"


Element "strong" [] [ Text "Hello World" ]


Actor <| ActorElement Counter "comp-counter" "counter-1" [] []
type ActorElement appActors
= ActorElement
appActors
ElementNodeName
ActorElementId
Attributes
(Children appActors)

An ActorElement

type alias ElementNodeName =
String

The NodeName of an Element or ActorElement

type alias ActorElementId =
String

The Actor Element Id, this should be unique on your template.

type alias Attributes =
List Attribute

A List of Attribute

type alias Attribute =
( String, String )

A (key, value) representation of a Node attribute

( "class", "Foo" )


( "href", "https://www.example.com" )
type alias Children appActors =
List (Node appActors)

A List of Nodes

getActorElementDescendants : List (Node appActors) -> List (ActorElement appActors)

Returns the descending ActorElement for a given List of Nodes

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"