andreasewering/elm-placeholder/1.0.0

NOTE: the latest version is 2.2.0

Renamed to anmolitor/elm-placeholder. That is where the repository lives now. It has not been published as a package under the new name.

Versions published as andreasewering/elm-placeholder still install under that name. 4 versions of 4 come from the new location (see their notes).

Rerouted (renamed, verified). 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/anmolitor/elm-placeholder.

What we checked: The repo moved to github.com/anmolitor/elm-placeholder. Rebuilt with git archive from commit 85f2068a0eca of https://github.com/anmolitor/elm-placeholder (zip prefix andreasewering-elm-placeholder-9287198/, America/Los_Angeles times): the zip is byte-identical to the one package.elm-lang.org recorded, SHA-1 91fb22d99f81675615e19254ee0659ddd8f8bb2f.

The Lamdera compiler uses this copy and prints a one-line notice saying so. elm itself fails to download this version.

Details · package.elm-lang.org's zip: https://github.com/andreasewering/elm-placeholder/zipball/1.0.0/

Placeholder.Internal

This module allows defining placeholder parsers based on a non-supported Syntax as well as using the internal Template type for different purposes.

Template

type alias Template =
{ placeholders : List String
, segments : List String
}

A Template includes an ordered list of placeholders and text segments. Templates coming from this module guarantee that:

> not (List.isEmpty segments)
> List.length segments == List.length placeholders + 1
templateParser : Syntax -> Parser Template

A parser for a Template based on a Syntax. In this form, it can be combined nicely with other Parsers.

parseTemplate : Syntax -> String -> Result String Template

Parse a String into a Template based on a Syntax. Example:

> parseTemplate { startSymbol = "${", endSymbol = "}" } "This is ${name}s example"
{ segments = ["This is ", "s example"], placeholders = ["name"]}

Syntax

type alias Syntax =
{ startSymbol : String
, endSymbol : String
}

A Syntax tells the templateParser how to distinguish placeholders from regular text. At the moment, this can only be configured by setting start and end symbol.

parsePlaceholder1 : Syntax -> String -> Result String (F1 String)

Parse a String into a function substituting the argument at the position marked by the Syntax. Examples:

> f = parsePlaceholder1 { startSymbol = "${", endSymbol = "}" } "This is ${name}s example"
Ok <function> : Result String (F1 String)


> Result.map ((|>) "Andy") f
Ok ("This is Andys example") : Result String String


> parsePlaceholder1 { startSymbol = "${", endSymbol = "}" } "No placeholder"
Err ("Expected more placeholders.") : Result String (F1 String)


> parsePlaceholder1 { startSymbol = "${", endSymbol = "}" } "${multiple}${placeholders}"
Err ("Expected less placeholders.") : Result String (F1 String)
parsePlaceholder2 : Syntax -> String -> Result String (F2 String)

Parse a String into a function substituting the arguments at the two positions marked by the Syntax.

parsePlaceholder3 : Syntax -> String -> Result String (F3 String)

Parse a String into a function substituting the arguments at the three positions marked by the Syntax.

parsePlaceholder4 : Syntax -> String -> Result String (F4 String)

Parse a String into a function substituting the arguments at the four positions marked by the Syntax.