{"id":13071,"date":"2026-04-17T19:00:36","date_gmt":"2026-04-17T17:00:36","guid":{"rendered":"https:\/\/paroisses-chatenay.fr\/stgermain\/?page_id=13071"},"modified":"2026-09-17T23:48:11","modified_gmt":"2026-09-17T21:48:11","slug":"evangile-du-jour","status":"publish","type":"page","link":"https:\/\/paroisses-chatenay.fr\/stgermain\/evangile-du-jour\/","title":{"rendered":"\u00c9vangile du jour"},"content":{"rendered":"\n<div id=\"evangile-wrapper-1847\" class=\"evangile-wrapper\">\n\n<style>\n\/* === ADAPTATION SP\u00c9CIFIQUE TH\u00c8ME CATCH BASE (IDENTIQUE ARTICLE EPC) === *\/\n.page-id-13071 h1.entry-title,\n.entry-header h1.entry-title,\nh1.entry-title,\nh1.page-title {\n    display: none !important;\n}\n\n.evangile-wrapper {\n    --color-bg-white: #FFFFFF;\n    --color-bg-cream: #FAF8F5;\n    --color-brown-primary: #8F4316;\n    --color-tan-accent-text: #A86B38;\n    --color-accent-deco: #D0905D;\n    --color-ink-editorial: #2B2825;\n    --color-line-beige: #E6DCD1;\n    max-width: 900px;\n    margin: 30px auto;\n    font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;\n    color: var(--color-ink-editorial);\n}\n\n\/* Titre sup\u00e9rieur sobre et raffin\u00e9 *\/\n.evangile-main-title {\n    text-align: center;\n    font-size: 1.5em;\n    font-weight: 500;\n    color: var(--color-brown-primary);\n    margin: 5px 0 20px 0;\n    line-height: 1.35;\n    letter-spacing: 0.4px;\n    text-transform: none !important;\n}\n\n.evangile-main-title span {\n    text-transform: none !important;\n}\n\n\/* Cadre avec bordure sup\u00e9rieure d'accent *\/\n.evangile-card { \n    background-color: var(--color-bg-white); \n    border-radius: 8px; \n    overflow: hidden; \n    box-shadow: 0 4px 20px rgba(143, 67, 22, 0.08); \n    border: 1px solid var(--color-line-beige); \n    border-top: 4px solid var(--color-accent-deco); \n}\n\n.evangile-body { padding: 45px 40px; }\n.evangile-header-block { text-align: center; margin-bottom: 30px; }\n\n\/* Ic\u00f4ne Croix liturgique *\/\n.evangile-icon {\n    font-size: 1.8em;\n    line-height: 1;\n    color: var(--color-accent-deco);\n    margin: 0 auto 12px auto;\n    display: block;\n}\n\n.evangile-label { font-size: 0.9em; color: var(--color-tan-accent-text); font-weight: 700; text-transform: uppercase; letter-spacing: 2.5px; margin: 0 0 15px 0; }\n.evangile-reference { font-size: 1.6em; font-weight: 500; color: var(--color-brown-primary); margin: 0 0 10px 0; line-height: 1.3; }\n.evangile-reference-ref { font-size: 0.9em; color: var(--color-tan-accent-text); font-weight: 700; text-transform: uppercase; letter-spacing: 2.5px; margin: 0 0 25px 0; display: block; }\n.evangile-divider { width: 80px; height: 3px; background: linear-gradient(90deg, transparent, var(--color-accent-deco), transparent); margin: 30px auto; border-radius: 2px; }\n.evangile-content { font-size: 1.05em; line-height: 1.6; color: var(--color-ink-editorial); margin: 30px 0; white-space: normal; }\n.evangile-content, .evangile-content p, .evangile-content div, .evangile-content span { text-align: justify !important; display: block; width: 100%; }\n.evangile-content strong { color: var(--color-brown-primary); font-weight: 500; }\n.evangile-loading { text-align: center; padding: 70px 20px; }\n.loading-spinner { width: 56px; height: 56px; margin: 0 auto 25px; border: 4px solid var(--color-line-beige); border-top-color: var(--color-accent-deco); border-radius: 50%; animation: spin 1s linear infinite; }\n@keyframes spin { to { transform: rotate(360deg); } }\n.fade-in { animation: fadeInUp 0.7s ease-out forwards; }\n@keyframes fadeInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }\n\n@media (max-width: 768px) { \n    .evangile-main-title { font-size: 1.25em; margin-bottom: 16px; }\n    .evangile-body { padding: 30px 20px; } \n    .evangile-content, .evangile-content p, .evangile-content div, .evangile-content span { text-align: left !important; } \n    .evangile-reference { font-size: 1.4em; } \n    .evangile-reference-ref { font-size: 0.85em; } \n    .evangile-icon { font-size: 1.6em; margin-bottom: 10px; } \n}\n<\/style>\n\n<!-- Titre unique dynamique -->\n<h1 class=\"evangile-main-title\">\n    \u00c9vangile du <span id=\"evangile-titre-date\">jour<\/span>\n<\/h1>\n\n<div class=\"evangile-card\">\n    <div class=\"evangile-loading\">\n        <div class=\"loading-spinner\"><\/div>\n        <p>Chargement de l&rsquo;\u00c9vangile&#8230;<\/p>\n    <\/div>\n<\/div>\n\n<script>\n(function() {\n    async function chargerEvangile() {\n        try {\n            const maintenant = new Date();\n            const jours = ['dimanche', 'lundi', 'mardi', 'mercredi', 'jeudi', 'vendredi', 'samedi'];\n            const moisTexte = ['janvier', 'f\u00e9vrier', 'mars', 'avril', 'mai', 'juin', 'juillet', 'ao\u00fbt', 'septembre', 'octobre', 'novembre', 'd\u00e9cembre'];\n            \n            const jourNom = jours[maintenant.getDay()].toLowerCase();\n            const jourNum = maintenant.getDate() === 1 ? '1er' : maintenant.getDate();\n            const moisNom = moisTexte[maintenant.getMonth()].toLowerCase();\n            const dateText = `${jourNom} ${jourNum} ${moisNom}`;\n\n            \/\/ Mise \u00e0 jour de la date dans le titre\n            const titreDateElement = document.getElementById('evangile-titre-date');\n            if (titreDateElement) {\n                titreDateElement.textContent = dateText;\n            }\n\n            const dateStr = `${maintenant.getFullYear()}-${maintenant.getMonth() + 1}-${maintenant.getDate()}`;\n            const localCacheKey = `aelf_data_${dateStr}`;\n            \n            let data;\n            const cachedData = localStorage.getItem(localCacheKey);\n\n            if (cachedData) {\n                data = JSON.parse(cachedData);\n            } else {\n                const apiUrl = `https:\/\/paroisses-chatenay.fr\/stgermain\/wp-content\/uploads\/liturgie-du-jour.json?v=${dateStr}`;\n                const response = await fetch(apiUrl);\n                if (!response.ok) throw new Error('Erreur r\u00e9seau');\n                data = await response.json();\n                \n                localStorage.setItem(localCacheKey, JSON.stringify(data));\n            }\n\n            let evangile = null;\n\n            if (data.messes && data.messes.length > 0) {\n                for (const messe of data.messes) {\n                    if (messe.lectures) {\n                        evangile = messe.lectures.find(l => l.type === 'evangile');\n                        if (evangile) break;\n                    }\n                }\n            }\n\n            if (evangile) {\n                let titreBrut = (evangile.titre || '').replace(\/^[\u00c9\u00e9]vangile\\s*:\\s*\/gi, '').replace(\/^\\s*:\\s*\/, '');\n                let referenceBrute = evangile.ref || evangile.reference || '';\n\n                const regexRef = \/\\s*\\(([^)]+)\\)$\/;\n                const match = titreBrut.match(regexRef);\n                if (match) {\n                    if (!referenceBrute) referenceBrute = match[1];\n                    titreBrut = titreBrut.replace(regexRef, '');\n                }\n\n                if (!titreBrut && referenceBrute) {\n                    titreBrut = referenceBrute;\n                    referenceBrute = '';\n                }\n\n                if (referenceBrute && !referenceBrute.startsWith('(')) {\n                    referenceBrute = `(${referenceBrute})`;\n                }\n\n                \/\/ D\u00e9tection de l'\u00e9vang\u00e9liste\n                const texteRecherche = [\n                    evangile.intro_lue || '',\n                    titreBrut,\n                    referenceBrute,\n                    (evangile.contenu || '').substring(0, 150)\n                ].join(' ').toLowerCase();\n\n                let nom = '';\n                if (\/\\b(luc|lc)\\b\/i.test(texteRecherche)) {\n                    nom = 'Luc';\n                } else if (\/\\b(matthieu|mt)\\b\/i.test(texteRecherche)) {\n                    nom = 'Matthieu';\n                } else if (\/\\b(marc|mc)\\b\/i.test(texteRecherche)) {\n                    nom = 'Marc';\n                } else if (\/\\b(jean|jn)\\b\/i.test(texteRecherche)) {\n                    nom = 'Jean';\n                }\n\n                const texteLabel = nom ? `\u00c9vangile de J\u00e9sus Christ selon saint ${nom}` : (evangile.intro_lue ? evangile.intro_lue.replace(\/<[^>]*>\/g, '').trim() : \"\u00c9vangile de J\u00e9sus Christ\");\n\n                let contenuComplet = '';\n\n                if (evangile.verset_evangile) {\n                    let refAcclamation = evangile.ref_verset ? `(${evangile.ref_verset})` : '';\n                    contenuComplet += `<p>Acclamation : ${refAcclamation}<\/p>`;\n                    contenuComplet += evangile.verset_evangile;\n                }\n\n                if (evangile.intro_lue) {\n                    contenuComplet += `<p>${evangile.intro_lue}<\/p>`;\n                } else {\n                    contenuComplet += `<p>${texteLabel}<\/p>`;\n                }\n\n                contenuComplet += evangile.contenu || '';\n                contenuComplet = contenuComplet.replace(\/<p[^>]*>\\s+\/g, '<p>');\n                contenuComplet = contenuComplet.replace(\/<br\\s*\\\/?>\\s+\/g, '<br \/>');\n\n                const html = `\n                    <div class=\"evangile-body fade-in\">\n                        <div class=\"evangile-header-block\">\n                            <div class=\"evangile-icon\">\u2020<\/div>\n                            <p class=\"evangile-label\">${texteLabel}<\/p>\n                            <h3 class=\"evangile-reference\">${titreBrut}<\/h3>\n                            <span class=\"evangile-reference-ref\">${referenceBrute}<\/span>\n                            <div class=\"evangile-divider\"><\/div>\n                        <\/div>\n                        <div class=\"evangile-content\">\n                            ${contenuComplet}\n                        <\/div>\n                    <\/div>`;\n\n                const card = document.querySelector('#evangile-wrapper-1847 .evangile-card');\n                if (card) card.innerHTML = html;\n            }\n        } catch (error) {\n            console.error(\"Erreur de chargement:\", error);\n        }\n    }\n\n    if (document.readyState === 'loading') {\n        document.addEventListener('DOMContentLoaded', chargerEvangile);\n    } else {\n        chargerEvangile();\n    }\n})();\n<\/script>\n\n<\/div>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00c9vangile du jour Chargement de l&rsquo;\u00c9vangile&#8230;<\/p>\n","protected":false},"author":10,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","_seopress_robots_follow":"","_seopress_robots_imageindex":"","_seopress_robots_snippet":"","_seopress_robots_primary_cat":"","_seopress_robots_breadcrumbs":"","_seopress_robots_freeze_modified_date":"","_seopress_robots_custom_modified_date":"","_seopress_robots_canonical":"","_seopress_social_fb_title":"","_seopress_social_fb_desc":"","_seopress_social_fb_img":"","_seopress_social_fb_img_attachment_id":0,"_seopress_social_fb_img_width":0,"_seopress_social_fb_img_height":0,"_seopress_social_twitter_title":"","_seopress_social_twitter_desc":"","_seopress_social_twitter_img":"","_seopress_social_twitter_img_attachment_id":0,"_seopress_social_twitter_img_width":0,"_seopress_social_twitter_img_height":0,"_seopress_redirections_value":"","_seopress_redirections_enabled":"","_seopress_redirections_enabled_regex":"","_seopress_redirections_logged_status":"both","_seopress_redirections_param":"","_seopress_redirections_type":301,"_seopress_analysis_target_kw":"","footnotes":""},"class_list":["post-13071","page","type-page","status-publish","hentry"],"jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/P8QOZc-3oP","jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/paroisses-chatenay.fr\/stgermain\/wp-json\/wp\/v2\/pages\/13071","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/paroisses-chatenay.fr\/stgermain\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/paroisses-chatenay.fr\/stgermain\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/paroisses-chatenay.fr\/stgermain\/wp-json\/wp\/v2\/users\/10"}],"replies":[{"embeddable":true,"href":"https:\/\/paroisses-chatenay.fr\/stgermain\/wp-json\/wp\/v2\/comments?post=13071"}],"version-history":[{"count":74,"href":"https:\/\/paroisses-chatenay.fr\/stgermain\/wp-json\/wp\/v2\/pages\/13071\/revisions"}],"predecessor-version":[{"id":13930,"href":"https:\/\/paroisses-chatenay.fr\/stgermain\/wp-json\/wp\/v2\/pages\/13071\/revisions\/13930"}],"wp:attachment":[{"href":"https:\/\/paroisses-chatenay.fr\/stgermain\/wp-json\/wp\/v2\/media?parent=13071"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}