<% planning = YAML.load File.read File.join Middleman::Application.root, 'config/2018.yml' def parse_time(time) hour, min = time.split ':' 60 * hour.to_i + min.to_i end %>
<% planning.each do |day, events| %> <%= n = events.size attributes = n == 1 ? nil : { colspan: n } content_tag :th, day, attributes %> <% end %> <% planning.each do |_, events| %> <% events.each do |_, events| %> <% end %> <% end %>
    <% (10..21).each do |hour| %>
  • <%= hour %>:00
  • <% end %>
    <% (events || []).each do |event| %> <% from, to = event[:from], event[:to] duration = parse_time(to) - parse_time(from) classes = [event[:place]] classes << :half if duration <= 30 classes << :double if duration >= 90 classes = classes.join ' ' %> <% content_tag :li, class: classes, data: { from: from, to: to } do %>
    <%= from %> - <%= to %>
    <%= event[:title] %>
    <%= event[:author] %>
    <%= event[:description] %>
    <% end %> <% end %>