# `Nous.Workflow.Mermaid`
[🔗](https://github.com/nyo16/nous/blob/v0.17.1/lib/nous/workflow/mermaid.ex#L1)

Generate Mermaid flowchart diagrams from workflow graphs.

## Example

    graph = Nous.Workflow.new("pipeline")
      |> Nous.Workflow.add_node(:a, :agent_step, %{agent: nil}, label: "Plan")
      |> Nous.Workflow.add_node(:b, :parallel, %{branches: [:c, :d]}, label: "Search")
      |> Nous.Workflow.add_node(:c, :transform, %{transform_fn: &Function.identity/1}, label: "Web")
      |> Nous.Workflow.add_node(:d, :transform, %{transform_fn: &Function.identity/1}, label: "Papers")
      |> Nous.Workflow.add_node(:e, :agent_step, %{agent: nil}, label: "Report")
      |> Nous.Workflow.connect(:a, :b)
      |> Nous.Workflow.connect(:b, :e)

    IO.puts Nous.Workflow.Mermaid.to_mermaid(graph)

Output:

    ```mermaid
    flowchart TD
        a["Plan"]
        b{{"Search (parallel)"}}
        c["Web"]
        d["Papers"]
        e["Report"]
        a --> b
        b --> e
        b -.-> c
        b -.-> d
    ```

# `to_mermaid`

```elixir
@spec to_mermaid(
  Nous.Workflow.Graph.t(),
  keyword()
) :: String.t()
```

Generate a Mermaid flowchart string from a workflow graph.

## Options

- `:direction` — flowchart direction, one of `"TD"`, `"LR"` (default: `"TD"`)

---

*Consult [api-reference.md](api-reference.md) for complete listing*
