Files
fizzy/app/views/mailers/notification/bundle_mailer/notification.html.erb
T
Mike Dalessio 851f13a934 Render inline code in card titles (#2518)
* Remove unused marked JS dependency

* Remove unused redcarpet dependency

* Render inline code in card titles

Add card_html_title helper that HTML-escapes input then converts
backtick-wrapped text to <code> elements. Apply to card titles in
board preview, card detail, public views, and notification emails.
Style inline code elements in titles to match description styling.

Co-authored-by: Andy Smith <andy@37signals.com>

---------

Co-authored-by: Andy Smith <andy@37signals.com>
2026-02-12 12:07:40 -05:00

23 lines
1.2 KiB
Plaintext

<tr>
<td>
<h1 class="title">Notifications since <%= @bundle.starts_at.strftime("%-l%P on %A, %B %-d") %></h1>
<p class="subtitle margin-block-end-double">
You have <%= link_to pluralize(@notifications.count, "new notification"), notifications_url %><%= " in #{ Current.account.name }" if @user.identity.accounts.many? %>.
</p>
<% @notifications.group_by { |n| n.card.board }.sort_by { |board, _| board.name.downcase }.each do |board, board_notifications| %>
<hr class="notification__board-separator">
<h2 class="notification__board"><%= link_to board.name, board %></h2>
<% board_notifications.group_by(&:card).each do |card, notifications| %>
<%= link_to card, class: "card__title" do %>#<%= card.number %> <%= card_html_title(card) %><% end %>
<%= render partial: "notification/bundle_mailer/notification", collection: notifications, as: :notification %>
<% end %>
<% end %>
<p class="footer">Fizzy emails you about new notifications every few hours. <br>
<%= link_to "Change how often you get these", notifications_settings_url %>
or <%= link_to "unsubscribe from all email notifications", new_notifications_unsubscribe_url(access_token: @unsubscribe_token) %>.
</p>
</td>
</tr>