diff --git a/lib/music_library_web/components/notes_component.ex b/lib/music_library_web/components/notes_component.ex index 96e15b62..87c2f04e 100644 --- a/lib/music_library_web/components/notes_component.ex +++ b/lib/music_library_web/components/notes_component.ex @@ -38,7 +38,7 @@ defmodule MusicLibraryWeb.NotesComponent do <.tabs_panel active={@mode == "read"} name="read">
- {Earmark.as_html!(@form[:notes].value || "", %Earmark.Options{gfm: true}) |> raw()} + {render_notes(@form[:notes].value)}
<.tabs_panel active={@mode == "edit"} name="edit"> @@ -99,4 +99,18 @@ defmodule MusicLibraryWeb.NotesComponent do defp initial_mode(record) when record.notes in [nil, ""], do: "edit" defp initial_mode(_record), do: "read" + + defp render_notes(notes) do + add_a_classes = + &Earmark.AstTools.merge_atts_in_node(&1, + class: + "underline text-zinc-700 hover:text-zinc-500 dark:text-zinc-400 dark:hover:text-zinc-300" + ) + + tsp = Earmark.TagSpecificProcessors.new([{"a", add_a_classes}]) + + (notes || "") + |> Earmark.as_html!(%Earmark.Options{gfm: true, registered_processors: [tsp]}) + |> raw() + end end