{"id":2546,"date":"2020-05-26T19:24:13","date_gmt":"2020-05-26T17:24:13","guid":{"rendered":"https:\/\/paroisse-herbasse.fr\/?page_id=2546"},"modified":"2026-06-01T08:48:40","modified_gmt":"2026-06-01T06:48:40","slug":"feuie-dannonces","status":"publish","type":"page","link":"https:\/\/paroisse-herbasse.fr\/index.php\/feuie-dannonces\/","title":{"rendered":"Annonces paroissiales"},"content":{"rendered":"<p>[et_pb_section fb_built=\u00a0\u00bb1&Prime; _builder_version=\u00a0\u00bb4.27.6&Prime; module_class=\u00a0\u00bbannonces-refonte-section\u00a0\u00bb custom_padding=\u00a0\u00bb0px||0px||true|false\u00a0\u00bb][et_pb_row _builder_version=\u00a0\u00bb4.27.6&Prime; module_class=\u00a0\u00bbannonces-refonte-wrap\u00a0\u00bb][et_pb_column type=\u00a0\u00bb4_4&Prime; _builder_version=\u00a0\u00bb4.27.6&Prime;][et_pb_code _builder_version=\u00a0\u00bb4.27.6&Prime; admin_label=\u00a0\u00bbRefonte annonces dynamiques\u00a0\u00bb]<\/p>\n<style>\nbody.page-id-2546 #main-content { background: #fff9ed; }\nbody.page-id-2546 #main-content > .container {\n  width: 100% !important;\n  max-width: none !important;\n  margin: 0 !important;\n  padding-top: 0 !important;\n}\nbody.page-id-2546 #main-content .container:before { display: none !important; }\nbody.page-id-2546 #left-area {\n  float: none !important;\n  width: 100% !important;\n  margin: 0 !important;\n  padding: 0 !important;\n}\nbody.page-id-2546 #sidebar { display: none !important; }\nbody.page-id-2546 .entry-title.main_title,\nbody.page-id-2546 .et_post_meta_wrapper { display: none !important; }\nbody.page-id-2546 article.page,\nbody.page-id-2546 .entry-content { margin: 0 !important; padding: 0 !important; }\nbody.page-id-2546 #page-container { overflow-x: hidden !important; }\nbody.page-id-2546 .annonces-refonte-section {\n  padding: 0 !important;\n}\nbody.page-id-2546 .annonces-refonte-section .annonces-refonte-wrap {\n  width: 100% !important;\n  max-width: none !important;\n  margin: 0 !important;\n  padding: 0 !important;\n}\nbody.page-id-2546 .annonces-refonte-section .et_pb_column,\nbody.page-id-2546 .annonces-refonte-section .et_pb_module,\nbody.page-id-2546 .annonces-refonte-section .et_pb_code_inner {\n  width: 100% !important;\n  margin: 0 !important;\n  padding: 0 !important;\n}<\/p>\n<p>body.page-id-2546 .annonces-page {\n  --ink: #071a5f;\n  --muted: #536284;\n  --paper: #fff9ed;\n  --line: #eadfd0;\n  --teal: #079aa6;\n  --teal-dark: #057985;\n  --pink: #ef2d6f;\n  --gold: #f5a800;\n  --shadow: 0 14px 38px rgba(7,26,95,.09);\n  margin: 0;\n  background:\n    radial-gradient(circle at 0 18%, rgba(7,154,166,.12), transparent 24%),\n    radial-gradient(circle at 100% 6%, rgba(245,168,0,.15), transparent 20%),\n    radial-gradient(circle at 94% 82%, rgba(239,45,111,.10), transparent 20%),\n    var(--paper);\n  color: var(--ink);\n  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n  line-height: 1.55;\n}\nbody.page-id-2546 .annonces-page * { box-sizing: border-box; }\nbody.page-id-2546 .annonces-page a { color: inherit; }\nbody.page-id-2546 .annonces-page br {\n  display: none;\n}\nbody.page-id-2546 .annonces-page-inner {\n  width: min(1180px, calc(100% - 32px));\n  margin: 0 auto;\n  padding: 58px 0;\n}\nbody.page-id-2546 .annonces-eyebrow {\n  display: inline-flex;\n  margin: 0 0 16px;\n  padding: 7px 10px;\n  border-radius: 8px;\n  background: var(--gold);\n  color: #fff !important;\n  font-size: 13px;\n  font-weight: 850;\n  line-height: 1.1;\n  text-transform: uppercase;\n}\nbody.page-id-2546 .annonces-page h1,\nbody.page-id-2546 .annonces-page h2,\nbody.page-id-2546 .annonces-page h3 {\n  margin: 0;\n  color: var(--ink) !important;\n  font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", sans-serif;\n  font-weight: 850;\n  line-height: 1.08;\n  letter-spacing: 0;\n}\nbody.page-id-2546 .annonces-page h1 {\n  max-width: 850px;\n  font-size: clamp(42px, 6vw, 76px);\n}\nbody.page-id-2546 .annonces-lead {\n  max-width: 760px;\n  margin: 18px 0 0;\n  color: #273260 !important;\n  font-size: 19px;\n  font-weight: 700;\n}\nbody.page-id-2546 .annonces-actions {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 12px;\n  margin-top: 24px;\n}\nbody.page-id-2546 .annonces-button {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  min-height: 46px;\n  border: 1px solid transparent;\n  border-radius: 8px;\n  padding: 12px 18px;\n  background: var(--pink);\n  color: #fff !important;\n  font-size: 16px;\n  font-weight: 850;\n  line-height: 1.2;\n  text-align: center;\n  text-decoration: none !important;\n  box-shadow: 0 12px 24px rgba(239,45,111,.20);\n}\nbody.page-id-2546 .annonces-button.secondary {\n  border-color: rgba(7,26,95,.14);\n  background: #fff;\n  color: var(--ink) !important;\n  box-shadow: 0 10px 22px rgba(7,26,95,.08);\n}\nbody.page-id-2546 .annonces-button.gold {\n  background: var(--gold);\n  color: var(--ink) !important;\n  box-shadow: 0 12px 24px rgba(245,168,0,.22);\n}\nbody.page-id-2546 .annonces-featured {\n  display: grid;\n  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);\n  gap: 22px;\n  margin-top: 34px;\n  align-items: stretch;\n}\nbody.page-id-2546 .annonces-next,\nbody.page-id-2546 .annonces-tools,\nbody.page-id-2546 .annonces-event {\n  border: 1px solid var(--line);\n  border-radius: 8px;\n  background: rgba(255,255,255,.92);\n  box-shadow: var(--shadow);\n}\nbody.page-id-2546 .annonces-next {\n  padding: 28px;\n  border-top: 6px solid var(--pink);\n}\nbody.page-id-2546 .annonces-tools {\n  padding: 24px;\n  border-top: 6px solid var(--teal);\n}\nbody.page-id-2546 .annonces-meta {\n  display: flex;\n  flex-wrap: wrap;\n  gap: 9px;\n  margin: 0 0 18px;\n}\nbody.page-id-2546 .annonces-pill {\n  display: inline-flex;\n  align-items: center;\n  min-height: 32px;\n  padding: 6px 10px;\n  border-radius: 8px;\n  background: #fff9ed;\n  color: var(--teal-dark);\n  font-size: 13px;\n  font-weight: 850;\n  text-transform: uppercase;\n}\nbody.page-id-2546 .annonces-next h2 {\n  margin-bottom: 12px;\n  font-size: clamp(28px, 3.3vw, 42px);\n}\nbody.page-id-2546 .annonces-next p {\n  margin: 0;\n  color: #24304d !important;\n  font-size: 17px;\n  font-weight: 700;\n}\nbody.page-id-2546 .annonces-filters {\n  display: grid;\n  grid-template-columns: minmax(0, 1fr) 170px;\n  gap: 12px;\n  margin-top: 16px;\n}\nbody.page-id-2546 .annonces-page input,\nbody.page-id-2546 .annonces-page select {\n  width: 100%;\n  min-height: 48px;\n  border: 1px solid rgba(7,26,95,.14);\n  border-radius: 8px;\n  background: #fff;\n  color: var(--ink);\n  font: inherit;\n  font-weight: 700;\n  padding: 12px 14px;\n}\nbody.page-id-2546 .annonces-summary {\n  display: grid;\n  grid-template-columns: repeat(3, minmax(0, 1fr));\n  gap: 12px;\n  margin-top: 18px;\n}\nbody.page-id-2546 .annonces-summary-item {\n  padding: 14px;\n  border-radius: 8px;\n  background: #fff9ed;\n  color: var(--muted);\n  font-size: 14px;\n  font-weight: 750;\n}\nbody.page-id-2546 .annonces-summary-item strong {\n  display: block;\n  color: var(--ink);\n  font-size: 24px;\n  line-height: 1;\n}\nbody.page-id-2546 .annonces-section-head {\n  display: flex;\n  justify-content: space-between;\n  gap: 20px;\n  align-items: end;\n  margin: 42px 0 18px;\n}\nbody.page-id-2546 .annonces-section-head h2 {\n  font-size: clamp(32px, 4vw, 52px);\n}\nbody.page-id-2546 .annonces-events {\n  display: grid;\n  grid-template-columns: repeat(3, minmax(0, 1fr));\n  gap: 18px;\n}\nbody.page-id-2546 .annonces-month-heading {\n  grid-column: 1 \/ -1;\n  display: flex;\n  align-items: center;\n  gap: 14px;\n  margin: 10px 0 0;\n  color: var(--ink);\n  font-size: clamp(26px, 3vw, 36px);\n  font-weight: 900;\n  line-height: 1.1;\n  text-transform: capitalize;\n}\nbody.page-id-2546 .annonces-month-heading:after {\n  content: \"\";\n  height: 1px;\n  flex: 1 1 auto;\n  background: var(--line);\n}\nbody.page-id-2546 .annonces-event {\n  display: grid;\n  min-height: 210px;\n  overflow: hidden;\n  border-top: 6px solid var(--teal);\n}\nbody.page-id-2546 .annonces-event.highlight {\n  border-top-color: var(--pink);\n}\nbody.page-id-2546 .annonces-event-body {\n  padding: 20px;\n}\nbody.page-id-2546 .annonces-event-title {\n  margin: 12px 0 14px;\n  font-size: 22px;\n}\nbody.page-id-2546 .annonces-event-place {\n  display: flex;\n  gap: 8px;\n  align-items: flex-start;\n  color: var(--muted);\n  font-size: 15px;\n  font-weight: 750;\n}\nbody.page-id-2546 .annonces-event-place span {\n  color: var(--teal-dark);\n  font-weight: 900;\n}\nbody.page-id-2546 .annonces-empty {\n  grid-column: 1 \/ -1;\n  padding: 24px;\n  border: 1px dashed var(--line);\n  border-radius: 8px;\n  background: rgba(255,255,255,.75);\n  color: var(--muted);\n  font-weight: 750;\n}\n@media (max-width: 980px) {\n  body.page-id-2546 .annonces-featured,\n  body.page-id-2546 .annonces-events {\n    grid-template-columns: 1fr;\n  }\n  body.page-id-2546 .annonces-section-head {\n    display: block;\n  }\n}\n@media (max-width: 640px) {\n  body.page-id-2546 .annonces-page-inner {\n    padding: 40px 0;\n  }\n  body.page-id-2546 .annonces-filters,\n  body.page-id-2546 .annonces-summary {\n    grid-template-columns: 1fr;\n  }\n  body.page-id-2546 .annonces-next,\n  body.page-id-2546 .annonces-tools {\n    padding: 22px;\n  }\n}\n<\/style>\n<div class=\"annonces-page\">\n  <main class=\"annonces-page-inner\">\n    <pee class=\"annonces-eyebrow\">Annonces paroissiales<\/pee>\n<h1>La vie de la paroisse, semaine apr\u00e8s semaine<\/h1>\n<pee class=\"annonces-lead\">Retrouvez les rendez-vous et temps forts annonc\u00e9s par la paroisse pour les prochains jours.<\/pee>\n<div class=\"annonces-actions\">\n      <a class=\"annonces-button\" href=\"https:\/\/paroisse-herbasse.fr\/wp-content\/uploads\/2026\/05\/semaine-31-mai-au-7-juin-2026-5.pdf\">T\u00e9l\u00e9charger la feuille d&#x27;annonce du 31 mai au 7 juin 2026<\/a><br \/>\n      <a class=\"annonces-button gold\" href=\"#annonces\">Voir les annonces<\/a><br \/>\n      <a class=\"annonces-button secondary\" href=\"https:\/\/paroisse-herbasse.fr\/index.php\/horaires-esses-des-dianches\/\">Horaires des messes<\/a>\n    <\/div>\n<section class=\"annonces-featured\" aria-label=\"Mise en avant et filtres\">\n<article class=\"annonces-next\" id=\"annoncesNextEvent\">\n<div class=\"annonces-meta\"><span class=\"annonces-pill\">Prochain rendez-vous<\/span><\/div>\n<h2>Chargement&#8230;<\/h2>\n<pee>Les annonces vont s&rsquo;afficher dans quelques instants.<\/pee>\n      <\/article>\n<aside class=\"annonces-tools\">\n<h2>Filtrer les annonces<\/h2>\n<div class=\"annonces-filters\">\n          <input id=\"annoncesSearch\" type=\"search\" placeholder=\"Rechercher un \u00e9v\u00e9nement, un lieu...\"><br \/>\n          <select id=\"annoncesPeriod\"><option value=\"upcoming\" selected>\u00c0 venir<\/option><option value=\"week\">Cette semaine<\/option><option value=\"month\">Ce mois-ci<\/option><option value=\"all\">Tout afficher<\/option><\/select>\n        <\/div>\n<div class=\"annonces-summary\">\n<div class=\"annonces-summary-item\"><strong id=\"annoncesCountAll\">0<\/strong> annonces<\/div>\n<div class=\"annonces-summary-item\"><strong id=\"annoncesCountUpcoming\">0<\/strong> \u00e0 venir<\/div>\n<div class=\"annonces-summary-item\"><strong id=\"annoncesCountPlaces\">0<\/strong> lieux<\/div>\n<\/p><\/div>\n<\/aside>\n<\/section>\n<section id=\"annonces\">\n<div class=\"annonces-section-head\">\n<h2>Agenda paroissial<\/h2>\n<\/p><\/div>\n<div class=\"annonces-events\" id=\"annoncesEvents\"><\/div>\n<\/section>\n<p>  <\/main>\n<\/div>\n<p><script>\n(function () {\n  var CSV_URL = \"https:\/\/docs.google.com\/spreadsheets\/d\/e\/2PACX-1vT5dLbNUcnOEqQ8Uk-b0KSDIkZsMfZnrSme9ZwP_24amF44-hRk5WYLH6XhSC7wb6SlWucgra8Wl2Y_\/pub?gid=0&single=true&output=csv\";\n  var FALLBACK_CSV = `Les annonces de la paroisse,,,\nDate,heure,,Lieu\nsamedi 30 mai 2026 ,18h00,Finale de la ligue des champions \u00e0 la paroisse et barbecue,Maison paroissiale\nlundi 1 juin 2026 ,20h20,Soir\u00e9e de Louange et d'Adoration Ephata,Coll\u00e9giale de St Donat\nmercredi 3 juin 2026 ,15h00,Messe \u00e0 l'EPHAD de St Donat,EPHAD de St Donat\njeudi 4 juin 2026 ,20h00,Soir\u00e9e Bible et Vin,Maison paroissiale\ndimanche 7 juin 2026 ,,Qu\u00eate imp\u00e9r\u00e9e pour les batiments dioc\u00e9sains,\ndimanche 7 juin 2026 ,18h30,Procession de la F\u00eate-Dieu et repas partag\u00e9,Bathernay`;\n  var monthIndex = {\n    janvier: 0, fevrier: 1, f\u00e9vrier: 1, mars: 2, avril: 3, mai: 4, juin: 5,\n    juillet: 6, aout: 7, ao\u00fbt: 7, septembre: 8, octobre: 9, novembre: 10, decembre: 11, d\u00e9cembre: 11\n  };\n  var allEvents = [];<\/p>\n<p>  function parseCsv(text) {\n    var rows = [];\n    var row = [];\n    var value = \"\";\n    var quoted = false;\n    for (var i = 0; i < text.length; i += 1) {\n      var char = text[i];\n      var next = text[i + 1];\n      if (char === '\"' &#038;&#038; quoted &#038;&#038; next === '\"') {\n        value += '\"';\n        i += 1;\n      } else if (char === '\"') {\n        quoted = !quoted;\n      } else if (char === \",\" &#038;&#038; !quoted) {\n        row.push(value);\n        value = \"\";\n      } else if ((char === \"\\n\" || char === \"\\r\") &#038;&#038; !quoted) {\n        if (char === \"\\r\" &#038;&#038; next === \"\\n\") i += 1;\n        row.push(value);\n        if (row.some(function (cell) { return cell.trim(); })) rows.push(row);\n        row = [];\n        value = \"\";\n      } else {\n        value += char;\n      }\n    }\n    if (value || row.length) {\n      row.push(value);\n      if (row.some(function (cell) { return cell.trim(); })) rows.push(row);\n    }\n    return rows;\n  }\n\n  function parseFrenchDate(rawDate, rawTime) {\n    var cleaned = rawDate.trim().toLowerCase();\n    var parts = cleaned.match(\/(?:lundi|mardi|mercredi|jeudi|vendredi|samedi|dimanche)\\s+(\\d{1,2})\\s+([a-z\u00e9\u00fb]+)\\s+(\\d{4})\/i);\n    if (!parts) return null;\n    var day = Number(parts[1]);\n    var month = monthIndex[parts[2]];\n    var year = Number(parts[3]);\n    var timeParts = (rawTime || \"\").match(\/(\\d{1,2})h(?:(\\d{2}))?\/);\n    var hours = timeParts ? Number(timeParts[1]) : 9;\n    var minutes = timeParts &#038;&#038; timeParts[2] ? Number(timeParts[2]) : 0;\n    return new Date(year, month, day, hours, minutes);\n  }\n\n  function normalizeRows(rows) {\n    return rows.slice(2).map(function (row, index) {\n      var dateText = (row[0] || \"\").trim();\n      var timeText = (row[1] || \"\").trim();\n      var title = (row[2] || \"\").trim();\n      var place = (row[3] || \"\").trim();\n      return {\n        id: index,\n        dateText: dateText,\n        timeText: timeText,\n        title: title,\n        place: place,\n        date: parseFrenchDate(dateText, timeText)\n      };\n    }).filter(function (event) { return event.dateText &#038;&#038; event.title; });\n  }\n\n  function formatDate(date) {\n    return new Intl.DateTimeFormat(\"fr-FR\", {\n      weekday: \"long\",\n      day: \"numeric\",\n      month: \"long\"\n    }).format(date);\n  }\n\n  function monthLabel(date) {\n    if (!date) return \"Autres annonces\";\n    return new Intl.DateTimeFormat(\"fr-FR\", {\n      month: \"long\",\n      year: \"numeric\"\n    }).format(date);\n  }\n\n  function monthKey(date) {\n    if (!date) return \"unknown\";\n    return date.getFullYear() + \"-\" + String(date.getMonth() + 1).padStart(2, \"0\");\n  }\n\n  function isSameWeek(date, now) {\n    var start = new Date(now);\n    start.setHours(0, 0, 0, 0);\n    start.setDate(start.getDate() - ((start.getDay() + 6) % 7));\n    var end = new Date(start);\n    end.setDate(start.getDate() + 7);\n    return date >= start && date < end;\n  }\n\n  function isInCurrentMonth(date, now) {\n    var start = new Date(now);\n    start.setHours(0, 0, 0, 0);\n    var end = new Date(now.getFullYear(), now.getMonth() + 1, 1);\n    return date >= start && date < end;\n  }\n\n  function eventMatches(event) {\n    var search = document.getElementById(\"annoncesSearch\").value.trim().toLowerCase();\n    var period = document.getElementById(\"annoncesPeriod\").value;\n    var now = new Date();\n    var haystack = (event.title + \" \" + event.place + \" \" + event.dateText + \" \" + event.timeText).toLowerCase();\n    if (search &#038;&#038; haystack.indexOf(search) === -1) return false;\n    if (period === \"upcoming\" &#038;&#038; event.date &#038;&#038; event.date < now) return false;\n    if (period === \"week\" &#038;&#038; event.date &#038;&#038; !isSameWeek(event.date, now)) return false;\n    if (period === \"month\" &#038;&#038; event.date &#038;&#038; !isInCurrentMonth(event.date, now)) return false;\n    return true;\n  }\n\n  function escapeHtml(value) {\n    return String(value)\n      .replace(\/&#038;\/g, \"&amp;\")\n      .replace(\/<\/g, \"&lt;\")\n      .replace(\/>\/g, \"&gt;\")\n      .replace(\/\"\/g, \"&quot;\")\n      .replace(\/'\/g, \"&#039;\");\n  }<\/p>\n<p>  function renderFeatured(events) {\n    var now = new Date();\n    var next = events.find(function (event) { return event.date && event.date >= now; }) || events[0];\n    var target = document.getElementById(\"annoncesNextEvent\");\n    if (!target) return;\n    if (!next) {\n      target.innerHTML = '<\/p>\n<div class=\"annonces-meta\"><span class=\"annonces-pill\">Prochain rendez-vous<\/span><\/div>\n<h2>Aucune annonce<\/h2>\n<pee>La feuille ne contient pas encore d\u2019annonce.<\/pee>';\n      return;\n    }\n    target.innerHTML =\n      '<\/p>\n<div class=\"annonces-meta\">' +\n      '<span class=\"annonces-pill\">' + (next.date ? formatDate(next.date) : escapeHtml(next.dateText)) + '<\/span>' +\n      (next.timeText ? '<span class=\"annonces-pill\">' + escapeHtml(next.timeText) + '<\/span>' : '') +\n      '<\/div>\n<p>' +\n      '<\/p>\n<h2>' + escapeHtml(next.title) + '<\/h2>\n<p>' +\n      (next.place ? '<pee>' + escapeHtml(next.place) + '<\/pee>' : '');\n  }<\/p>\n<p>  function renderEvents() {\n    var container = document.getElementById(\"annoncesEvents\");\n    if (!container) return;\n    var filtered = allEvents.filter(eventMatches);\n    if (!filtered.length) {\n      container.innerHTML = '<\/p>\n<div class=\"annonces-empty\">Aucune annonce ne correspond \u00e0 ce filtre.<\/div>\n<p>';\n      return;\n    }\n    var now = new Date();\n    var currentMonth = \"\";\n    container.innerHTML = filtered.map(function (event, index) {\n      var isUpcoming = event.date && event.date >= now;\n      var key = monthKey(event.date);\n      var heading = \"\";\n      if (key !== currentMonth) {\n        currentMonth = key;\n        heading = '<\/p>\n<h3 class=\"annonces-month-heading\">' + escapeHtml(monthLabel(event.date)) + '<\/h3>\n<p>';\n      }\n      return heading + (\n        '<\/p>\n<article class=\"annonces-event ' + (isUpcoming &#038;&#038; index === 0 ? 'highlight' : '') + '\">' +\n          '<\/p>\n<div class=\"annonces-event-body\">' +\n            '<\/p>\n<div class=\"annonces-meta\">' +\n              '<span class=\"annonces-pill\">' + (event.date ? formatDate(event.date) : escapeHtml(event.dateText)) + '<\/span>' +\n              (event.timeText ? '<span class=\"annonces-pill\">' + escapeHtml(event.timeText) + '<\/span>' : '') +\n            '<\/div>\n<p>' +\n            '<\/p>\n<h3 class=\"annonces-event-title\">' + escapeHtml(event.title) + '<\/h3>\n<p>' +\n            (event.place ? '<\/p>\n<div class=\"annonces-event-place\"><span>Lieu<\/span><\/p>\n<div>' + escapeHtml(event.place) + '<\/div>\n<\/div>\n<p>' : '') +\n          '<\/p><\/div>\n<p>' +\n        '<\/article>\n<p>'\n      );\n    }).join(\"\");\n  }<\/p>\n<p>  function renderSummary(events) {\n    var now = new Date();\n    var upcoming = events.filter(function (event) { return event.date && event.date >= now; });\n    var places = {};\n    events.forEach(function (event) { if (event.place) places[event.place] = true; });\n    document.getElementById(\"annoncesCountAll\").textContent = events.length;\n    document.getElementById(\"annoncesCountUpcoming\").textContent = upcoming.length;\n    document.getElementById(\"annoncesCountPlaces\").textContent = Object.keys(places).length;\n  }<\/p>\n<p>  function loadEvents() {\n    fetch(CSV_URL, { cache: \"no-store\" })\n      .then(function (response) {\n        if (!response.ok) throw new Error(\"HTTP \" + response.status);\n        return response.text();\n      })\n      .then(function (text) {\n        allEvents = normalizeRows(parseCsv(text));\n      })\n      .catch(function (error) {\n        allEvents = normalizeRows(parseCsv(FALLBACK_CSV));\n        if (window.console) console.warn(\"Chargement des annonces impossible, utilisation des donn\u00e9es de secours.\", error);\n      })\n      .then(function () {\n        renderFeatured(allEvents);\n        renderSummary(allEvents);\n        renderEvents();\n      });\n  }<\/p>\n<p>  document.addEventListener(\"DOMContentLoaded\", function () {\n    var search = document.getElementById(\"annoncesSearch\");\n    var period = document.getElementById(\"annoncesPeriod\");\n    if (search) search.addEventListener(\"input\", renderEvents);\n    if (period) period.addEventListener(\"change\", renderEvents);\n    loadEvents();\n  });\n})();\n<\/script><br \/>\n[\/et_pb_code][\/et_pb_column][\/et_pb_row][\/et_pb_section]<\/p>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_et_pb_use_builder":"on","_et_pb_old_content":"<!-- wp:heading {\"textAlign\":\"center\"} -->\r\n<h2 class=\"has-text-align-center\" id=\"annonces-paroissiales\">ANNONCES PAROISSIALES<\/h2>\r\n<!-- \/wp:heading -->\r\n\r\n<!-- wp:spacer {\"height\":\"50px\"} -->\r\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\r\n<!-- \/wp:spacer -->\r\n\r\n<!-- wp:paragraph -->\r\n<p><strong>Vous souhaitez recevoir les actualit\u00e9s paroissiales (<em>newsletter<\/em>) par email, cliquez<\/strong><mark style=\"background-color:rgba(0, 0, 0, 0);color:#180ad8\" class=\"has-inline-color\"> <\/mark><strong><a href=\"https:\/\/paroisse-herbasse.fr\/index.php\/inscription-newsletter\/\"><mark style=\"background-color:rgba(0, 0, 0, 0);color:#1608db\" class=\"has-inline-color\"><span style=\"text-decoration: underline;\">ICI<\/span><\/mark><\/a><\/strong><br><\/p>\r\n<!-- \/wp:paragraph -->\r\n\r\n<!-- wp:file {\"id\":11059,\"href\":\"https:\/\/paroisse-herbasse.fr\/wp-content\/uploads\/2022\/08\/Annonces-paroissiales-2022-08-du-28-aout-au-04-septembre-2022.pdf\",\"displayPreview\":false} -->\r\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-33c54d63-d732-47bb-9822-886dd08dd593\" href=\"https:\/\/paroisse-herbasse.fr\/wp-content\/uploads\/2022\/08\/Annonces-paroissiales-2022-08-du-28-aout-au-04-septembre-2022.pdf\"><span style=\"color:#000000\" class=\"tadv-color\">Annonces paroissiales du 28 ao\u00fbt au 04 septembre 2022<\/span><\/a><a href=\"https:\/\/paroisse-herbasse.fr\/wp-content\/uploads\/2022\/08\/Annonces-paroissiales-2022-08-du-28-aout-au-04-septembre-2022.pdf\" class=\"wp-block-file__button\" download aria-describedby=\"wp-block-file--media-33c54d63-d732-47bb-9822-886dd08dd593\">T\u00e9l\u00e9charger<\/a><\/div>\r\n<!-- \/wp:file -->\r\n\r\n<!-- wp:file {\"id\":10978,\"href\":\"https:\/\/paroisse-herbasse.fr\/wp-content\/uploads\/2022\/07\/Annonces-paroissiales-2022-07-du-31-juillet-2022-au-28-aout-2022-2.pdf\",\"displayPreview\":false} -->\r\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-a6edb37a-1fb6-4de3-93e6-c0be923c3a0c\" href=\"https:\/\/paroisse-herbasse.fr\/wp-content\/uploads\/2022\/07\/Annonces-paroissiales-2022-07-du-31-juillet-2022-au-28-aout-2022-2.pdf\"><span style=\"color:#000000\" class=\"tadv-color\">Annonces paroissiales du 31 juillet 2022 au 28 ao\u00fbt 2022<\/span><\/a><a href=\"https:\/\/paroisse-herbasse.fr\/wp-content\/uploads\/2022\/07\/Annonces-paroissiales-2022-07-du-31-juillet-2022-au-28-aout-2022-2.pdf\" class=\"wp-block-file__button\" download aria-describedby=\"wp-block-file--media-a6edb37a-1fb6-4de3-93e6-c0be923c3a0c\">T\u00e9l\u00e9charger<\/a><\/div>\r\n<!-- \/wp:file -->\r\n\r\n<!-- wp:spacer {\"height\":\"40px\"} -->\r\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\r\n<!-- \/wp:spacer -->\r\n\r\n<!-- wp:paragraph -->\r\n<p><strong><span class=\"has-inline-color has-black-color\">Archives :<\/span><\/strong><\/p>\r\n<!-- \/wp:paragraph -->\r\n\r\n<!-- wp:file {\"id\":10781,\"href\":\"https:\/\/paroisse-herbasse.fr\/wp-content\/uploads\/2022\/07\/Annonces-paroissiales-2022-07-du-10-juillet-2022-au-31-juillet-2022.pdf\",\"displayPreview\":false} -->\r\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-8f24b91a-d134-4bd7-be77-37c8c905b258\" href=\"https:\/\/paroisse-herbasse.fr\/wp-content\/uploads\/2022\/07\/Annonces-paroissiales-2022-07-du-10-juillet-2022-au-31-juillet-2022.pdf\"><span style=\"color:#000000\" class=\"tadv-color\">Annonces paroissiales du 10 juillet 2022 au 31 juillet 2022<\/span><\/a><a href=\"https:\/\/paroisse-herbasse.fr\/wp-content\/uploads\/2022\/07\/Annonces-paroissiales-2022-07-du-10-juillet-2022-au-31-juillet-2022.pdf\" class=\"wp-block-file__button\" download aria-describedby=\"wp-block-file--media-8f24b91a-d134-4bd7-be77-37c8c905b258\">T\u00e9l\u00e9charger<\/a><\/div>\r\n<!-- \/wp:file -->\r\n\r\n<!-- wp:file {\"id\":10744,\"href\":\"https:\/\/paroisse-herbasse.fr\/wp-content\/uploads\/2022\/07\/Annonces-paroissiales-2022-07-du-03-juillet-2022-au-10-juillet-2022-2.pdf\",\"displayPreview\":false} -->\r\n<div class=\"wp-block-file\"><a id=\"wp-block-file--media-46969ef2-3ea2-47e8-94aa-0ad2ff66eba7\" href=\"https:\/\/paroisse-herbasse.fr\/wp-content\/uploads\/2022\/07\/Annonces-paroissiales-2022-07-du-03-juillet-2022-au-10-juillet-2022-2.pdf\"><span style=\"color:#000000\" class=\"tadv-color\">Annonces paroissiales du 03 juillet 2022 au 10 juillet 2022<\/span><\/a><a href=\"https:\/\/paroisse-herbasse.fr\/wp-content\/uploads\/2022\/07\/Annonces-paroissiales-2022-07-du-03-juillet-2022-au-10-juillet-2022-2.pdf\" class=\"wp-block-file__button\" download aria-describedby=\"wp-block-file--media-46969ef2-3ea2-47e8-94aa-0ad2ff66eba7\">T\u00e9l\u00e9charger<\/a><\/div>\r\n<!-- \/wp:file -->\r\n\r\n<!-- wp:spacer {\"height\":\"40px\"} -->\r\n<div style=\"height:40px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\r\n<!-- \/wp:spacer -->\r\n\r\n<p>Vous pouvez vous abonner, ou vous d\u00e9sabonner, \u00e0 la <em>newsletter<\/em> en envoyant depuis votre messagerie une demande \u00e0 : <span style=\"color: #0000ff;\">paroisse.herbasse@gmail.com<\/span><\/p>\r\n\r\n<!-- wp:spacer -->\r\n<div style=\"height:100px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\r\n<!-- \/wp:spacer -->\r\n\r\n<!-- wp:block {\"ref\":2073} \/-->","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"class_list":["post-2546","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/paroisse-herbasse.fr\/index.php\/wp-json\/wp\/v2\/pages\/2546","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/paroisse-herbasse.fr\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/paroisse-herbasse.fr\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/paroisse-herbasse.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/paroisse-herbasse.fr\/index.php\/wp-json\/wp\/v2\/comments?post=2546"}],"version-history":[{"count":233,"href":"https:\/\/paroisse-herbasse.fr\/index.php\/wp-json\/wp\/v2\/pages\/2546\/revisions"}],"predecessor-version":[{"id":19706,"href":"https:\/\/paroisse-herbasse.fr\/index.php\/wp-json\/wp\/v2\/pages\/2546\/revisions\/19706"}],"wp:attachment":[{"href":"https:\/\/paroisse-herbasse.fr\/index.php\/wp-json\/wp\/v2\/media?parent=2546"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}