tricycle/elm-actor-framework-template/1.0.0

NOTE: the latest version is 1.0.1

Renamed to bellroy/elm-actor-framework-template. It is published under that name, and new versions come out there.

Versions published as tricycle/elm-actor-framework-template still install under that name. 2 versions of 2 come from the new location (see their notes).

Rerouted (renamed, needs approval). The GitHub user or repository was renamed. The tag is still there, at the new name. The Lamdera package server serves a copy recovered from https://github.com/bellroy/elm-actor-framework-template.

What we checked: The repo moved to github.com/bellroy/elm-actor-framework-template and tag 1.0.0 is there; its commit 069f93f600bd is from 2021-04-07 02:02 UTC, after the version was published (2020-06-30 13:44 UTC); elm.json differs from package.elm-lang.org's; the exposed modules match docs.json; the zip's SHA-1 is not the published one and nothing else confirms its contents.

We could not verify this copy against what was published, so the Lamdera compiler asks before using it (y/n). Without a terminal, as in CI, it stops with an error unless approved:

  • lamdera make --auto-approve-package-rerouting approves rerouted versions for that run,
  • LAMDERA_AUTO_APPROVE_PACKAGE_REROUTING=1 does the same for every run in that environment,
  • LAMDERA_CACHE=off skips the Lamdera package server altogether: packages come from package.elm-lang.org and GitHub only, as with elm, and a rerouted version then fails to download.

Details · package.elm-lang.org's zip: https://github.com/tricycle/elm-actor-framework-template/zipball/1.0.0/

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"