Garados007/elm-svg-parser/1.1.0

NOTE: the latest version is 1.1.2

Rerouted (retagged, needs approval). The tag now points at a different commit than when this version was published. The Lamdera package server serves a copy recovered from https://github.com/Garados007/elm-svg-parser.

What we checked: Tag 1.1.0 is still on github.com/Garados007/elm-svg-parser; its commit 4760b65eaac4 is from 2023-08-14 08:25 UTC, after the version was published (2023-03-15 10:33 UTC); elm.json is byte-identical to 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/Garados007/elm-svg-parser/zipball/1.1.0/

SvgParser

String to SVG parser

Primitives

type SvgNode
= SvgElement Element
| SvgText String
| SvgComment String

A SVG node can be one of the three: SvgElement, SvgText or SvgComment.

type alias Element =
{ name : String
, attributes : List SvgAttribute
, children : List SvgNode
}

An Element consists of a tag name, a list of attributes, a list of children nodes.

<svg xmlns="http://www.w3.org/2000/svg"></svg>

will be parsed as

Element "svg" [ ( "xmlns", "http://www.w3.org/2000/svg" ) ] []
type alias SvgAttribute =
( String, String )

A name/value pair to denote attribute.

Parsing

parse : String -> Result String (Html msg)

Parses String to Html msg. Usually this is the only function you need.

parseToNode : String -> Result String SvgNode

Parses String to SvgNode. Normally you will use parse instead of this.

parse "<svg xmlns=\"http://www.w3.org/2000/svg\"></svg>"
    == Ok (SvgElement (Element "svg" [ ( "xmlns", "http://www.w3.org/2000/svg" ) ] []))
parseToNodes : String -> Result String (List SvgNode)

Same as parseToNode, but returns a list of all the nodes in the string.

nodeToSvg : SvgNode -> Svg msg

Convert SvgNode to Svg msg. This is useful when you want to manipulate SvgNode before conveting to Html msg.

toAttribute : SvgAttribute -> Attribute msg

Convert SvgAttribute to Attribute msg. This is useful when you want to manipulate SvgAttribute before converting to Html msg.