diff --git a/app/helpers/events_helper.rb b/app/helpers/events_helper.rb index f3de24a259b149618126cc45ed4658633c21dfcf..36d78bdf8d33e1eb5714080d52c5912789275fb2 100644 --- a/app/helpers/events_helper.rb +++ b/app/helpers/events_helper.rb @@ -45,18 +45,23 @@ module EventsHelper end: l(event.end_time, format: :at) end - def wrap(s, width = 78) - s.gsub(/(.{1,#{width}})(\s+|\Z)/, "\\1\n") - end - - def display_attr(label, value = @event[label]) - return unless value - Event.human_attribute_name(label).rjust(12) + " #{value}" - end - # Select the events to display in a month, sorted def month_events(events, date) events.select { |e| (e.start_time.to_date..e.end_time.to_date).cover? date } .sort_by(&:city) end + + def display_attr(item, label, value = item[label]) + # return unless value + item.class.human_attribute_name(label).rjust(12) + " #{value}" + end + + def to_markdown(description, line_width = -1) + desc = sanitize description, + tags: %w[p br h1 h2 h3 h4 table tr th td ul ol li a strong + b em i sub sup], + attributes: %w[href] + Kramdown::Document.new(desc, input: :html, line_width: line_width) + .to_kramdown + end end diff --git a/app/views/digests/markdown.html.haml b/app/views/digests/markdown.html.haml index a0f8de3bd306c8caf1535b1868460d92e1714ff1..e02e9c29134c27b0184c004666c5cc5cedceb693 100644 --- a/app/views/digests/markdown.html.haml +++ b/app/views/digests/markdown.html.haml @@ -8,10 +8,7 @@ - @events.sort_by(&:start_time).each do |event| [#{event.region.region.try(:code) || event.region.try(:code)} #{event.city}] [#{event.title}](#{event_url event}) - #{display_date event} \----- - - - Kramdown::Document.new(event.description, input: 'html').to_kramdown.split(/\n/)[0..2].each do |p| - = p - \ + = to_markdown event.description, -1 \ * #{[event.place_name, event.full_address].compact.join ', '} - if event.url.present? diff --git a/app/views/events/index.rss.builder b/app/views/events/index.rss.builder index ae252f0da685756fb55ac2f1dabbe5913f532740..be3c65916197f60a1410f784f4d97db63b3ec94b 100644 --- a/app/views/events/index.rss.builder +++ b/app/views/events/index.rss.builder @@ -12,7 +12,7 @@ def event_to_rss(xml, event) xml.title "#{event.city}: #{event.title}, #{display_date event}" xml.link event_url event - xml.description strip_tags event.description + xml.description event.description xml.content(:encoded) { xml.cdata! event.description } end diff --git a/app/views/events/show.text.haml b/app/views/events/show.text.haml index afcf1627fa9884471cba5b16443a3b045f0b9a88..02d2326da3d84a82458cf94da333e9c57dcc23a8 100644 --- a/app/views/events/show.text.haml +++ b/app/views/events/show.text.haml @@ -1,19 +1,19 @@ -================================================================================ -= display_attr :title -= display_attr :start_time, l(@event.start_time, format: :at) -= display_attr :end_time, l(@event.end_time, format: :at) -= display_attr :place_name -= display_attr :address -= display_attr :city -= display_attr :region, @event.region -= display_attr :locality, t("attributes.locality_#{@event.locality}") -= display_attr :url -= display_attr :contact -= display_attr :submitter -= display_attr :tags, @event.tag_list +============================================================================== += display_attr @event, :title += display_attr @event, :start_time, l(@event.start_time, format: :at) += display_attr @event, :end_time, l(@event.end_time, format: :at) += display_attr @event, :place_name += display_attr @event, :address += display_attr @event, :city += display_attr @event, :region, @event.region += display_attr @event, :locality, t("attributes.locality_#{@event.locality}") += display_attr @event, :url += display_attr @event, :contact += display_attr @event, :submitter += display_attr @event, :tag_list, @event.tag_list - if @event.repeat > 0 - = display_attr :repeat - = display_attr :rule, t(@event.rule, scope: 'activerecord.attributes.event.rule_values') + = display_attr @event, :repeat + = display_attr @event, :rule, t(@event.rule, scope: 'activerecord.attributes.event.rule_values') \ -= Kramdown::Document.new(@event.description, input: 'html').to_kramdown -================================================================================ += to_markdown @event.description, 78 +============================================================================== diff --git a/app/views/orgas/show.text.haml b/app/views/orgas/show.text.haml index a08b178a3363ec3359959bdfc193de5fcb413616..e23fd62f28a740999a5a281d88d9ef5ca08ce445 100644 --- a/app/views/orgas/show.text.haml +++ b/app/views/orgas/show.text.haml @@ -1,20 +1,18 @@ -===================================================== -#{Orga.human_attribute_name(:kind).concat(':').ljust 12 } #{@orga.kind.name} -#{Orga.human_attribute_name(:name).concat(':').ljust 12 } #{@orga.name} -#{Orga.human_attribute_name(:place_name).concat(':').ljust 12 } #{@orga.place_name} -#{Orga.human_attribute_name(:address).concat(':').ljust 12 } #{@orga.address} -#{Orga.human_attribute_name(:city).concat(':').ljust 12 } #{@orga.city} -#{Orga.human_attribute_name(:department).concat(':').ljust 12 } #{@orga.department} -#{Orga.human_attribute_name(:region).concat(':').ljust 12 } #{@orga.region} -#{Orga.human_attribute_name(:url).concat(':').ljust 12 } #{@orga.url} -#{Orga.human_attribute_name(:diaspora).concat(':').ljust 12 } #{@orga.diaspora} -#{Orga.human_attribute_name(:feed).concat(':').ljust 12 } #{@orga.feed} -#{Orga.human_attribute_name(:contact).concat(':').ljust 12 } #{@orga.contact} -#{Orga.human_attribute_name(:submitter).concat(':').ljust 12 } #{@orga.submitter} -#{Orga.human_attribute_name(:tags).concat(':').ljust 12 } #{@orga.tag_list} -- if @orga.active.present? - #{Orga.human_attribute_name(:active).concat(':').ljust 12 } #{t @orga.active.to_s} -- unless @orga.description.blank? - #{Orga.human_attribute_name(:description).concat(':').ljust 12} - = wrap(strip_tags(@orga.description).gsub(/ /, '')).gsub /^/, ' ' -===================================================== +============================================================================== += display_attr @orga, :kind, t("activerecord.attributes.kind.name_#{@orga.kind.name}") += display_attr @orga, :name += display_attr @orga, :place_name += display_attr @orga, :address += display_attr @orga, :city += display_attr @orga, :department += display_attr @orga, :region, @orga.region += display_attr @orga, :url += display_attr @orga, :diaspora += display_attr @orga, :feed += display_attr @orga, :contact += display_attr @orga, :submitter += display_attr @orga, :tag_list, @orga.tag_list += display_attr @orga, :active, t(@orga.active.to_s) +\ += to_markdown @orga.description, 78 +============================================================================== diff --git a/config/locales/models/fr.yml b/config/locales/models/fr.yml index e8130f4e26fc2d15834a915cbbe30c2ba5521058..366f1b7f6f7b15aaa1b80f5234f8c6029714381a 100644 --- a/config/locales/models/fr.yml +++ b/config/locales/models/fr.yml @@ -77,7 +77,7 @@ fr: city: Ville region: Région locality: Portée - url: URL + url: Adresse web contact: Contact submitter: Soumetteur submission_time: En attente depuis