Elm:
Arbeiten mit YAML

Anleitung:

Elm hat standardmäßig keine eingebaute Bibliothek zur YAML-Analyse. Du musst eine externe JavaScript-Bibliothek verwenden und Elm’s Ports nutzen, um YAML-String zu konvertieren.

port module Main exposing (..)

-- Definiere Ports zum Senden und Empfangen von YAML
port yamlToElm : (String -> msg) -> Sub msg
port elmToYaml : String -> Cmd msg

type alias Model = 
    { content : String }

type Msg
    = ReceiveYaml String
    | SendYaml

-- Initialisiere dein Model
init : Model
init =
    { content = "" }

-- Update-Funktion verarbeitet empfangene YAML-Daten
update : Msg -> Model -> (Model, Cmd Msg)
update msg model =
    case msg of
        ReceiveYaml yamlString ->
            ({ model | content = yamlString }, Cmd.none)

        SendYaml ->
            (model, elmToYaml model.content)

-- Abonniere die Ports
subscriptions : Model -> Sub Msg
subscriptions model =
    yamlToElm ReceiveYaml

-- Main Funktion mit init, update und subscriptions
main : Program () Model Msg
main =
    Platform.program
        { init = init
        , update = update
        , subscriptions = subscriptions
        }

Im zugehörigen JavaScript:

// Abonniere den Port aus Elm
app.ports.elmToYaml.subscribe(function(yamlString) {
  // Verwende eine YAML-JS-Bibliothek zum Parsen
  var data = YAML.parse(yamlString);
  app.ports.yamlToElm.send(data);
});

Tiefgang:

YAML (YAML Ain’t Markup Language) wurde in den frühen 2000ern entwickelt. Die Lesbarkeit und die Einfachkeit stehen im Vordergrund. Alternative Formate wie JSON oder XML sind automatisierter zu parsen, bieten jedoch weniger Mensch-Freundlichkeit. Um YAML in Elm zu verarbeiten, benötigst du JavaScript-Interoperabilität, da Elm eine reine Sprache bleibt und keine arbiträren Seiteneffekte ermöglicht.

Siehe auch: