defmodule FirehoseWeb.MicroprintsLive do use FirehoseWeb, :live_view alias Microprints.MicroprintCache alias Microprints.MicroprintComponent @source_dirs ["app", "blogex"] @impl true def mount(_params, _session, socket) do files = scan_source_files() microprints = files |> Enum.map(&process_file/1) {:ok, socket |> assign(:page_title, "Microprints") |> assign(:microprints, microprints) |> assign(:expanded_path, nil) |> assign(:highlighted_path, nil) |> assign(:highlighted_line, nil)} rescue e -> {:ok, socket |> assign(:page_title, "Microprints") |> assign(:microprints, []) |> assign(:expanded_path, nil) |> assign(:highlighted_path, nil) |> assign(:highlighted_line, nil) |> put_flash(:error, "Error loading microprints: #{inspect(e)}")} end @impl true def render(assigns) do ~H"""
Visual fingerprints of source code files. Click a line to highlight it. Click a card to expand and view the source.
<.microprint_legend />