defmodule Mse25Web.FeedView do use Mse25Web, :html def rss(items, _host) do ~s""" madr.se The online home of Anders Englöf Ytterström, a metalhead and musician living and working in Borlänge, Sweden. sv https://madr.se/ yttan@fastmail.se (Anders Englöf Ytterström) yttan@fastmail.se (Anders Englöf Ytterström) #{Enum.map(items, &rss_item/1)} """ end def calendar(upcoming) do ~s""" BEGIN:VCALENDAR VERSION:2.0 PRODID:-//https://madr.se//kommande-evenemang METHOD:PUBLISH #{upcoming |> Enum.map(fn %{title: title, starts_at: starts_at, ends_at: ends_at, longitude: longitude, latitude: latitude, lead: lead, venue: venue, region: region} -> ~s""" BEGIN:VEVENT UID:#{title}.#{starts_at}@madr.se DTSTAMP:#{starts_at}T000000 DTSTART;VALUE=DATE:#{starts_at} DTEND;VALUE=DATE:#{ends_at} SUMMARY:#{title} DESCRIPTION:#{lead} LOCATION:#{venue}\, #{region} GEO:#{latitude};#{longitude} END:VEVENT """ end) |> Enum.join("")}END:VCALENDAR """ end def event_map(markers) do ~s""" (function(g, document) { "use strict"; const mapData = [ #{markers |> Enum.map(fn %{date: date, latitude: latitude, longitude: longitude, title: title, region: region, venue: venue} -> ~s""" { location: [#{longitude}, #{latitude}], title: "#{title}", date: "#{date}", region: "#{region}", venue: "#{venue}" } """ end) |> Enum.join(",")} ] // insert Leaflet styles () to and