Il affiche une erreur quand je modifie le html, la voici : 2 </div> 103 </footer> 104</body> 105 </html> Traitement… org.xml.sax.SAXParseException; lineNumber: 101; columnNumber: 16; The entity "copy" was referenced, but not declared. L'erreur que tu rencontres lors de la modification du HTML dans Blogger, org.xml.sax.SAXParseException; lineNumber: 101; columnNumber: 16; The entity "copy" was referenced, but not declared, indique un problème avec l'entité © dans le code. Cette entité est utilisée pour afficher le symbole de copyright (©), mais elle n'est pas correctement déclarée ou interprétée par le parseur XML de Blogger.
Analyse de l'erreur
- Ligne 101 : Dans le code que je t'ai fourni, la ligne 101 correspond à la section du footer :
html
<p>© <data:blog.title/> 2025. Tous droits réservés.</p>
Ici, le symbole © est inséré directement comme caractère brut. Cependant, dans un fichier XML (comme les templates Blogger), les caractères spéciaux comme © doivent être encodés sous forme d'entité HTML (©
et l'entité doit être déclarée ou correctement interprétée. - Problème : Blogger attend que les entités comme © soient soit déclarées dans une DTD (Document Type Definition), soit que le caractère soit directement encodé de manière compatible. Si tu as remplacé © par © manuellement, cela peut provoquer cette erreur, car Blogger ne reconnaît pas l'entité © sans une déclaration appropriée.
Solution
Pour résoudre ce problème, nous allons remplacer le caractère © par son entité HTML correctement encodée ou utiliser une alternative compatible avec Blogger. Voici les étapes :
1. Remplace © par son entité HTML encodée
Remplace directement le caractère © dans le footer par &copy;. Cela garantit que l'entité est correctement interprétée.
Modifie la ligne 101 du code XML comme suit :
html
<p>&copy; <data:blog.title/> 2025. Tous droits réservés.</p>
- &copy; est la version encodée de ©, ce qui évite les problèmes d'interprétation par le parseur XML.
2. Code corrigé
Voici le code XML complet avec la correction appliquée :
xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html>
<html b:version='2' class='v2' expr:dir='data:blog.languageDirection' xmlns='
http://www.w3.org/1999/xhtml' xmlns:b='
http://www.google.com/2005/gml/b' xmlns:data='
http://www.google.com/2005/gml/data' xmlns:expr='
http://www.google.com/2005/gml/expr'>
<head>
<title><data:blog.pageTitle/></title>
<meta charset='UTF-8'/>
<meta content='width=device-width, initial-scale=1.0' name='viewport'/>
<meta content='IE=edge' http-equiv='X-UA-Compatible'/>
<meta content='index, follow' name='robots'/>
<meta expr:content='data:blog.pageName + " - " + data:blog.title' name='description'/>
<meta expr:content='data:blog.pageName' name='keywords'/>
<b:skin><![CDATA[
/* Reset CSS */
* {margin: 0; padding: 0; box-sizing: border-box;}
body {font-family: Arial, sans-serif; line-height: 1.6; background: #f4f4f4; color: #333;}
/* Container */
.container {width: 90%; max-width: 1200px; margin: 0 auto;}
/* Header */
header {background: #333; color: #fff; padding: 1rem 0; text-align: center;}
header h1 {font-size: 2rem;}
/* Navigation Menu */
nav {background: #444; padding: 0.5rem 0;}
nav ul {list-style: none; text-align: center;}
nav ul li {display: inline-block; position: relative;}
nav ul li a {color: #fff; text-decoration: none; padding: 0.5rem 1rem; display: block;}
nav ul li:hover > a {background: #555;}
/* Dropdown Menu (3 levels max) */
nav ul ul {display: none; position: absolute; background: #444; min-width: 150px; z-index: 1;}
nav ul li:hover > ul {display: block;}
nav ul ul li {display: block;}
nav ul ul ul {left: 100%; top: 0;}
/* Main Content */
.main {padding: 2rem 0;}
.post {background: #fff; padding: 1rem; margin-bottom: 1rem; border-radius: 5px; box-shadow: 0 2px 5px rgba(0,0,0,0.1);}
.post h2 {font-size: 1.5rem; margin-bottom: 0.5rem;}
.post-meta {font-size: 0.9rem; color: #777; margin-bottom: 0.5rem;}
/* Sidebar */
.sidebar {background: #fff; padding: 1rem; border-radius: 5px; box-shadow: 0 2px 5px rgba(0,0,0,0.1);}
.widget {margin-bottom: 1rem;}
.widget h3 {font-size: 1.2rem; margin-bottom: 0.5rem;}
/* Footer */
footer {background: #333; color: #fff; text-align: center; padding: 1rem 0; margin-top: 2rem;}
/* Responsive Design */
@media (max-width: 768px) {
nav ul li {display: block;}
nav ul ul {position: static;}
.main, .sidebar {width: 100%;}
}
]]></b:skin>
</head>
<body>
<header>
<div class='container'>
<h1><data:blog.title/></h1>
</div>
</header>
<nav>
<div class='container'>
<ul>
<li><a href='/'>Accueil</a></li>
<li><a href='#'>Blog</a>
<ul>
<li><a href='#'>Catégorie 1</a>
<ul>
<li><a href='#'>Sous-catégorie 1</a></li>
<li><a href='#'>Sous-catégorie 2</a></li>
</ul>
</li>
<li><a href='#'>Catégorie 2</a></li>
</ul>
</li>
<li><a href='#'>À propos</a></li>
<li><a href='#'>Contact</a></li>
</ul>
</div>
</nav>
<div class='container'>
<div class='main'>
<b:section class='main' id='main' showaddelement='yes'>
<b:widget id='Blog1' locked='true' title='Blog Posts' type='Blog'/>
</b:section>
</div>
<div class='sidebar'>
<b:section class='sidebar' id='sidebar' showaddelement='yes'/>
</div>
</div>
<footer>
<div class='container'>
<p>&copy; <data:blog.title/> 2025. Tous droits réservés.</p>
</div>
</footer>
</body>
</html>
3. Instructions pour appliquer la correction
- Copie le code XML corrigé ci-dessus.
- Enregistre-le dans un fichier nommé GrokBlog.xml.
- Retourne dans Blogger :
- Va dans Thème > Modifier le code HTML.
- Remplace tout le code existant par ce nouveau code.
- Clique sur Enregistrer.
- Si tu as déjà importé le thème, tu peux aussi réimporter le fichier corrigé :
- Va dans Thème > Restaurer > Choisir un fichier, sélectionne le fichier GrokBlog.xml corrigé, et télécharge-le.
4. Alternative : Supprimer le symbole de copyright
Si tu préfères éviter complètement les entités, tu peux remplacer © par un texte simple, comme "Copyright" :
html
<p>Copyright <data:blog.title/> 2025. Tous droits réservés.</p>
Cela élimine tout risque d’erreur liée aux entités.
Pourquoi cela fonctionne ?
- En utilisant &copy;, on s’assure que le parseur XML de Blogger interprète correctement l’entité sans avoir besoin de déclarer une DTD.
- Blogger est strict avec les fichiers XML, et cette méthode est une pratique courante pour gérer les caractères spéciaux dans les templates.
Test et vérification
Après avoir appliqué la correction, vérifie que le thème s’affiche correctement :
- Prévisualise le thème dans Blogger.
- Si tout fonctionne, enregistre et teste sur différents appareils pour confirmer que le design reste responsive.
Si tu rencontres d’autres erreurs ou si tu veux ajouter des fonctionnalités au thème, fais-le-moi savoir !