Structures des Blocs HTML/JS Autorisés
Ce guide répertorie l'ensemble des intégrations applicatives, scripts tiers et blocs personnalisés officiellement autorisés dans l'éditeur WordPress.
Pour des raisons de sécurité, de performance et de conformité RGPD, un filtre automatique s'exécute sur l'application Next.js : toute balise <script> injectée ne correspondant pas aux formats décrits ci-dessous sera supprimée de la page, empêchant toute exécution JavaScript non contrôlée.
1. Blocs HTML / CSS Standards (Sans JavaScript)
Le système autorise l'affichage de n'importe quelle structure HTML et stylisation CSS (styles en ligne ou balises <style>), à condition qu'aucun attribut exécutable lié au DOM (onload, onerror, onclick, etc.) ou script JS ne soit présent.
Format attendu dans WordPress :
<div class="mon-bloc-alerte" style="background: #fffbeb; border: 1px solid #fef3c7; padding: 1.25rem; border-radius: 8px; margin: 1.5rem auto;">
<h4 style="margin: 0 0 0.4rem 0; color: #b45309; font-size: 1.1rem;">💡 Point de vigilance</h4>
<p style="margin: 0; color: #78350f; font-size: 0.95rem; line-height: 1.5;">
Ce bloc utilise uniquement du HTML structurel et du CSS en ligne. Il s'affichera normalement sur le site.
</p>
</div>
Rendu visuel :
💡 Point de vigilance
Ce bloc utilise uniquement du HTML structurel et du CSS en ligne. Il s'affichera normalement sur le site.
2. Graphiques Interactifs (Chart.js)
Le parser Next.js extrait automatiquement ces graphiques pour les soumettre au gestionnaire de consentement des cookies tiers tout en isolant les configurations afin de permettre l'affichage de multiples graphiques différents sur un même article.
Règles strictes de configuration :
- L'enveloppe HTML principale du canvas doit posséder la classe exacte
chart-container. - Le script d'appel au CDN Chart.js (
cdn.jsdelivr.net/npm/chart.js) doit être obligatoirement présent juste après la div. - L'attribut
iddu<canvas>ainsi que le nom de l'ensemble des variables et fonctions JavaScript (data...,config...,ctx...) doivent être strictement uniques à chaque graphique pour éviter que les instances ne s'écrasent entre elles.
Format attendu dans WordPress :
<div class="chart-container" style="position: relative; width: 100%; max-width: 600px; margin: 2rem auto;">
<canvas id="monGraphiqueUniqueChart"></canvas>
</div>
<!-- Script CDN obligatoire (nettoyé automatiquement par le parser) -->
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
<script>
// Attention à utiliser des noms de variables uniques par graphique
const dataUniqueId = {
labels: ['Janvier', 'Février', 'Mars'],
datasets: [{
label: 'Données illustratives (%)',
data: [12, 19, 3],
backgroundColor: ['#c8102e', '#374151', '#9ca3af']
}]
};
const configUniqueId = {
type: 'bar',
data: dataUniqueId,
options: { responsive: true }
};
const ctxUniqueId = document.getElementById('monGraphiqueUniqueChart').getContext('2d');
new Chart(ctxUniqueId, configUniqueId);
</script>
Rendu visuel :

3. Cartes Géographiques (Leaflet)
Le système intercepte et isole les blocs cartographiques Leaflet pour injecter son système de placeholder dynamique géré par le bandeau de cookies.
Règles de configuration :
- L'enveloppe parente de la carte doit impérativement posséder la classe exacte
custom-leaflet-wrapper. - L'identifiant du conteneur de la carte (
<div id="...">) doit être unique sur la page pour éviter les conflits d'instances. - Le script d'initialisation de la carte doit obligatoirement contenir le mot-clé
ag-map(dans le nom de la variable, l'identifiant, ou un commentaire) pour franchir la barrière de sécurité de la fonction de purge Next.js. - Attention au timing de rendu : L'initialisation de la carte doit être encapsulée dans une fonction auto-exécutable (
(function(){ ... })()) pour garantir son isolement dans le scope global lors de l'injection dynamique par Next.js.
Format attendu dans WordPress :
<div class="custom-leaflet-wrapper" style="background: #ffffff; padding: 1rem; border-radius: 12px; box-shadow: 0 2px 8px rgba(0,0,0,0.08);">
<!-- ID unique pour la carte -->
<div id="ag-map-paris-instance" style="width: 100%; height: 400px; border-radius: 8px;"></div>
<!-- Assets Leaflet natifs -->
<script>
(function () {
var mapId = "ag-map-paris-instance"; // Le mot clé 'ag-map' valide le script en amont
var map = L.map(mapId).setView([48.8566, 2.3522], 13);
L.tileLayer("https://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}{r}.png", {
attribution: "© OpenStreetMap"
}).addTo(map);
})();
</script>
</div>
Rendu visuel :
| Placeholder | Carte |
|---|---|
![]() | ![]() |
4. Intégrations de Réseaux Sociaux (Embeds)
Toutes les intégrations de plateformes externes listées ci-dessous sont interceptées, leurs scripts bloqués par défaut, et remplacées par un composant sécurisé (EmbedWrapper) lié aux préférences de cookies de l'utilisateur.
A. YouTube
- Format attendu : Utiliser le bloc d'intégration natif de WordPress. Le parser cible automatiquement la classe parente
.is-provider-youtubeet extrait l'URL de l'iframe (youtube.com/embed/...).
B. Instagram
- Format attendu : Coller simplement l'URL absolue de la publication (ex:
https://www.instagram.com/p/...) sur une ligne dédiée ou à l'intérieur d'un paragraphe standard.
C. Twitter / X
Le parser accepte deux formats :
- Format Intégration Native : Le bloc d'intégration WordPress générant la classe
.wp-block-embed-twitter. - Format Code HTML d'intégration : Le bloc HTML fourni par Twitter utilisant une balise
<blockquote class="twitter-tweet">contenant un lien hypertexte pointant verstwitter.com/....
D. Facebook
Le parser accepte trois formats :
- Format Iframe brute : Une balise
<iframe>dont l'attributsrccontient la chaînefacebook.com/plugins/. - Format SDK Classique : Un conteneur HTML configuré avec la classe
fb-postet l'attribut contenant le liendata-href="...". - Script SDK associé : Si le script d'initialisation de Facebook est présent, son attribut
srcdoit impérativement cibler le domaine officielfacebook.net.
5. Suggestions de Lectures Internes (Read Also)
Le système intercepte les paragraphes de recommandation d'articles internes portant la classe insert-page. Le parser Next.js extrait le lien (href) ainsi que le texte brut, puis injecte le composant applicatif ReadAlso qui applique le style de la charte graphique et gère la navigation fluide (Single Page Application via slugAction).
Règles de configuration :
-
Le bloc dans WordPress doit être un Paragraphe classique contenant un lien hypertexte.

-
Ce paragraphe doit impérativement posséder la classe CSS additionnelle exacte
insert-page.
-
Le texte du lien doit correspondre uniquement au titre de l'article ciblé (le composant Next.js ajoute automatiquement le préfixe visuel
"Lire aussi :"et le logo).

Format attendu dans WordPress (Gutenberg) :
Le contributeur crée un bloc Paragraphe, insère son lien interne, puis ajoute insert-page dans le champ "Classes CSS additionnelles" du bloc (panneau latéral droit, onglet "Avancé").
Le code HTML généré en arrière-plan par WordPress ressemble à ceci :
<p class="insert-page">
<a href="https://votre-domaine-wordpress.fr/politique/titre-de-l-article">
Félix Atchadé « On ne sort pas de la Françafrique on en change le langage »
</a>
</p>
Rendu visuel généré par Next.js :
Le composant nettoie le paragraphe brut pour générer un bloc stylisé incluant :
- Le label Lire aussi : en gras.
- Le logo SVG Avant-Garde officiel en rouge/gris adaptatif.
- Le titre de l'article passé dynamiquement via la propriété
{children}.

⚠️ Rappel de sécurité absolu : Tout script JavaScript non explicitement répertorié dans ce document (par exemple : tags publicitaires externes, scripts de tracking d'audience non validés, widgets tiers intrusifs, pixels invisibles) sera systématiquement détecté et effacé du code source par Next.js avant le rendu. La structure HTML globale sera affichée, mais l'exécution de tout code JavaScript non autorisé est impossible.

