Vérificateur de meta tags SEO gratuit en ligne

Analysez toutes les balises meta SEO d'un site web : title, description, Open Graph, Twitter Cards, robots et plus. Audit instantané.

  • 📋 Title, description, Open Graph et Twitter Cards
  • 🤖 Balises robots et directives d'indexation
  • ⚡ Résultat instantané

Pourquoi vérifier les meta tags ?

Les meta tags sont des balises HTML invisibles dans la page mais lues par les moteurs de recherche et les réseaux sociaux. Un title optimisé, une meta description percutante et des balises Open Graph correctes sont indispensables pour le SEO et le partage social.

Notre outil extrait et analyse toutes les meta tags d'une URL en un clic : vous voyez exactement ce que Google et les réseaux sociaux lisent sur votre page.

Les meta tags importants en SEO

</h3><p>Le titre affiché dans les résultats Google. Idéalement 50-60 caractères. C'est le facteur on-page le plus important.</p></article><article class='usecase-card'><h3>meta description</h3><p>Le résumé sous le titre dans Google. 150-160 caractères maximum. N'influe pas directement sur le classement mais impacte le taux de clic.</p></article><article class='usecase-card'><h3>meta robots</h3><p>Indique à Google comment traiter la page : index/noindex, follow/nofollow, noarchive…</p></article><article class='usecase-card'><h3>og:title / og:description</h3><p>Titre et description affichés lors du partage sur Facebook, LinkedIn et autres réseaux sociaux.</p></article><article class='usecase-card'><h3>og:image</h3><p>Image de prévisualisation lors du partage social. Idéalement 1200×630 pixels.</p></article><article class='usecase-card'><h3>twitter:card</h3><p>Format d'affichage sur Twitter/X : summary, summary_large_image, app ou player.</p></article></div></section><section class="tool-cta" aria-labelledby="cta"><h2 id="cta">Gérez vos liens et données avec Bolien</h2><p>Raccourcissez vos URLs, créez une page bio et trackez chaque clic avec les analytics intégrés.</p><p class="tool-cta-buttons"><a class="btn btn-primary" href="/register">Créer mon compte Bolien gratuit</a><a class="btn btn-secondary" href="/tools">Voir tous les outils</a></p><p class="tool-trust"><small>Sans carte bancaire • Gratuit à vie</small></p></section><section class="tool-faq" aria-labelledby="faq"><h2 id="faq">FAQ</h2><details itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"><summary itemprop="name">Quelle est la longueur idéale d'une meta description ?</summary><div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"><p itemprop="text">Entre 150 et 160 caractères. Au-delà, Google tronque la description avec des points de suspension. En dessous de 120 caractères, vous n'exploitez pas tout l'espace disponible.</p></div></details><details itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"><summary itemprop="name">La meta description influence-t-elle le classement Google ?</summary><div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"><p itemprop="text">Directement non — Google ne l'utilise pas comme facteur de classement. Indirectement oui : une bonne meta description augmente le taux de clic (CTR), ce qui peut améliorer votre position.</p></div></details><details itemscope itemprop="mainEntity" itemtype="https://schema.org/Question"><summary itemprop="name">Que faire si Google n'affiche pas ma meta description ?</summary><div itemscope itemprop="acceptedAnswer" itemtype="https://schema.org/Answer"><p itemprop="text">Google peut choisir de remplacer votre meta description par un extrait de la page qu'il juge plus pertinent pour la requête. Pour maximiser les chances qu'il utilise la vôtre, rédigez-la de façon concise, informative et en lien direct avec le contenu de la page.</p></div></details></section><section class="tool-internal-links" aria-label="Outils complémentaires"><h2>Outils complémentaires</h2><ul><li><a href="/tools/google-cache-checker">Vérificateur de cache Google</a> — vérifiez si la page est indexée</li><li><a href="/tools/url-redirect-checker">Vérificateur de redirections</a> — assurez-vous que les redirections sont correctes</li><li><a href="/tools/http-headers-lookup">Vérificateur d'en-têtes HTTP</a> — analysez les en-têtes de la page</li><li><a href="/tools/utm-link-generator">Générateur de liens UTM</a> — trackez les clics vers votre page</li></ul></section><script type="application/ld+json">{"@context":"https://schema.org","@type":["WebApplication","FAQPage"],"name":"Vérificateur de meta tags SEO gratuit","url":"https://bolien.cc/tools/meta-tags-checker","applicationCategory":"UtilitiesApplication","operatingSystem":"Web","offers":{"@type":"Offer","price":"0","priceCurrency":"EUR"},"description":"Vérifiez et analysez toutes les balises meta d'un site : title, description, Open Graph, Twitter Cards. Gratuit, instantané.","mainEntity":[{"@type":"Question","name":"Quelle est la longueur idéale d'une meta description ?","acceptedAnswer":{"@type":"Answer","text":"Entre 150 et 160 caractères. Au-delà, Google tronque la description avec des points de suspension. En dessous de 120 caractères, vous n'exploitez pas tout l'espace disponible."}},{"@type":"Question","name":"La meta description influence-t-elle le classement Google ?","acceptedAnswer":{"@type":"Answer","text":"Directement non — Google ne l'utilise pas comme facteur de classement. Indirectement oui : une bonne meta description augmente le taux de clic (CTR), ce qui peut améliorer votre position."}},{"@type":"Question","name":"Que faire si Google n'affiche pas ma meta description ?","acceptedAnswer":{"@type":"Answer","text":"Google peut choisir de remplacer votre meta description par un extrait de la page qu'il juge plus pertinent pour la requête. Pour maximiser les chances qu'il utilise la vôtre, rédigez-la de façon concise, informative et en lien direct avec le contenu de la page."}}]}}</script><meta itemprop="applicationCategory" content="UtilitiesApplication"><meta itemprop="operatingSystem" content="Web"></main> </div> </div> <div class="mt-5"> <h2 class="small font-weight-bold text-uppercase text-muted mb-3"><i class="fas fa-fw fa-sm fa-share-alt text-primary mr-1"></i> Partager</h2> <div class="card"> <div class="card-body"> <div class="d-flex align-items-center flex-wrap gap-3"> <button type="button" class="btn btn-gray-100 rounded-2x" style="color: #808080; background-color: rgba(128, 128, 128, 0.1);" data-toggle="tooltip" title="Copier dans le presse-papiers" onclick="navigator.clipboard.writeText('https://bolien.cc/tools/meta-tags-checker')" data-tooltip-hide-on-click> <i class="fas fa-fw fa-sm fa-copy"></i> </button> <button type="button" class="btn btn-gray-100 rounded-2x d-none" style="color: #3a18f2; background-color: rgba(58, 24, 242, 0.1);" data-toggle="tooltip" title="Partager via Appareil" data-native-share> <i class="fas fa-fw fa-share"></i> </button> <a href="mailto:?body=https://bolien.cc/tools/meta-tags-checker" target="_blank" class="btn btn-gray-100 rounded-2x" style="color: #3b5998; background-color: rgba(59, 89, 152, 0.1);" data-toggle="tooltip" title="Partager via Email"> <i class="fas fa-fw fa-envelope"></i> </a> <button type="button" class="btn btn-gray-100 rounded-2x" style="color: #808080; background-color: rgba(128, 128, 128, 0.1);" data-toggle="tooltip" title="Imprimer" onclick="window.print();return false;" data-tooltip-hide-on-click> <i class="fas fa-fw fa-sm fa-print"></i> </button> <a href="https://www.facebook.com/sharer/sharer.php?u=https://bolien.cc/tools/meta-tags-checker" target="_blank" class="btn btn-gray-100 rounded-2x" style="color: #1877F2; background-color: rgba(24, 119, 242, 0.1);" data-toggle="tooltip" title="Partager via Facebook"> <i class="fab fa-fw fa-facebook"></i> </a> <a href="https://www.threads.net/intent/post?text=https://bolien.cc/tools/meta-tags-checker" target="_blank" class="btn btn-gray-100 rounded-2x" style="color: #808080; background-color: rgba(128, 128, 128, 0.1);" data-toggle="tooltip" title="Partager via Threads"> <i class="fab fa-fw fa-threads"></i> </a> <a href="https://x.com/share?url=https://bolien.cc/tools/meta-tags-checker" target="_blank" class="btn btn-gray-100 rounded-2x" style="color: #1DA1F2; background-color: rgba(29, 161, 242, 0.1);" data-toggle="tooltip" title="Partager via X"> <i class="fab fa-fw fa-twitter"></i> </a> <a href="https://pinterest.com/pin/create/link/?url=https://bolien.cc/tools/meta-tags-checker" target="_blank" class="btn btn-gray-100 rounded-2x" style="color: #E60023; background-color: rgba(230, 0, 35, 0.1);" data-toggle="tooltip" title="Partager via Pinterest"> <i class="fab fa-fw fa-pinterest"></i> </a> <a href="https://linkedin.com/shareArticle?url=https://bolien.cc/tools/meta-tags-checker" target="_blank" class="btn btn-gray-100 rounded-2x" style="color: #0077B5; background-color: rgba(0, 119, 181, 0.1);" data-toggle="tooltip" title="Partager via LinkedIn"> <i class="fab fa-fw fa-linkedin"></i> </a> <a href="https://www.reddit.com/submit?url=https://bolien.cc/tools/meta-tags-checker" target="_blank" class="btn btn-gray-100 rounded-2x" style="color: #FF4500; background-color: rgba(255, 69, 0, 0.1);" data-toggle="tooltip" title="Partager via Reddit"> <i class="fab fa-fw fa-reddit"></i> </a> <a href="https://wa.me/?text=https://bolien.cc/tools/meta-tags-checker" class="btn btn-gray-100 rounded-2x" style="color: #25D366; background-color: rgba(37, 211, 102, 0.1);" data-toggle="tooltip" title="Partager via Whatsapp"> <i class="fab fa-fw fa-whatsapp"></i> </a> <a href="https://t.me/share/url?url=https://bolien.cc/tools/meta-tags-checker" class="btn btn-gray-100 rounded-2x" style="color: #0088cc; background-color: rgba(0, 136, 204, 0.1);" data-toggle="tooltip" title="Partager via Telegram"> <i class="fab fa-fw fa-telegram"></i> </a> <a href="https://www.snapchat.com/scan?attachmentUrl=https://bolien.cc/tools/meta-tags-checker" class="btn btn-gray-100 rounded-2x" style="color: #FFB700; background-color: rgba(255, 183, 0, 0.1);" data-toggle="tooltip" title="Partager via Snapchat"> <i class="fab fa-fw fa-snapchat"></i> </a> <a href="https://teams.microsoft.com/share?href=https%3A%2F%2Fbolien.cc%2Ftools%2Fmeta-tags-checker" target="_blank" class="btn btn-gray-100 rounded-2x" style="color: #464EB8; background-color: rgba(70, 78, 184, 0.1);" data-toggle="tooltip" title="Partager via Microsoft Teams"> <i class="fab fa-fw fa-microsoft"></i> </a> </div> </div> </div> </div> <div class="mt-5"> <h2 class="small font-weight-bold text-uppercase text-muted mb-3"><i class="fas fa-fw fa-sm fa-star text-primary mr-1"></i> Outils populaires</h2> <div class="row m-n3" id="popular_tools"> <div class="col-12 col-lg-6 p-3 position-relative" data-tool-id="signature_generator" data-tool-name="Générateur de signature manuscrite dessinée à la main" data-tool-category=""> <div class="card d-flex flex-row h-100 overflow-hidden"> <div class="tool-icon-wrapper d-flex flex-column justify-content-center"> <div class="d-flex align-items-center justify-content-center rounded tool-icon bg-primary-100" style="background: !important;"> <i class="fas fa-signature fa-fw text-primary-600" style="color: !important;"></i> </div> </div> <div class="card-body text-truncate"> <a href="https://bolien.cc/tools/signature-generator" class="stretched-link text-decoration-none text-dark"> <strong>Générateur de signature manuscrite dessinée à la main</strong> </a> <p class="text-truncate text-muted small m-0">Créer votre signature manuscrite en ligne et téléchargez-la en PNG, SVG, JPG ou WEBP. Gratuit, sans inscription, fond transparent disponible.</p> </div> </div> </div> <div class="col-12 col-lg-6 p-3 position-relative" data-tool-id="whatsapp_link_generator" data-tool-name="Générateur de lien WhatsApp gratuit (wa.me)" data-tool-category=""> <div class="card d-flex flex-row h-100 overflow-hidden"> <div class="tool-icon-wrapper d-flex flex-column justify-content-center"> <div class="d-flex align-items-center justify-content-center rounded tool-icon bg-primary-100" style="background: !important;"> <i class="fab fa-whatsapp fa-fw text-primary-600" style="color: !important;"></i> </div> </div> <div class="card-body text-truncate"> <a href="https://bolien.cc/tools/whatsapp-link-generator" class="stretched-link text-decoration-none text-dark"> <strong>Générateur de lien WhatsApp gratuit (wa.me)</strong> </a> <p class="text-truncate text-muted small m-0">Créez votre lien WhatsApp (wa.me) cliquable en 10 secondes. Entrez votre numéro, ajoutez un message pré-rempli, copiez le lien. Gratuit, sans compte.</p> </div> </div> </div> <div class="col-12 col-lg-6 p-3 position-relative" data-tool-id="image_optimizer" data-tool-name="Réduire la taille d'une image" data-tool-category=""> <div class="card d-flex flex-row h-100 overflow-hidden"> <div class="tool-icon-wrapper d-flex flex-column justify-content-center"> <div class="d-flex align-items-center justify-content-center rounded tool-icon bg-primary-100" style="background: !important;"> <i class="fas fa-image fa-fw text-primary-600" style="color: !important;"></i> </div> </div> <div class="card-body text-truncate"> <a href="https://bolien.cc/tools/image-optimizer" class="stretched-link text-decoration-none text-dark"> <strong>Réduire la taille d'une image</strong> </a> <p class="text-truncate text-muted small m-0">Importez votre image, choisissez la qualité, téléchargez. Compressez vos fichiers JPG, PNG, WebP et GIF en quelques secondes, sans compte, sans logiciel.</p> </div> </div> </div> <div class="col-12 col-lg-6 p-3 position-relative" data-tool-id="text_separator" data-tool-name="Séparateur de texte gratuit en ligne" data-tool-category=""> <div class="card d-flex flex-row h-100 overflow-hidden"> <div class="tool-icon-wrapper d-flex flex-column justify-content-center"> <div class="d-flex align-items-center justify-content-center rounded tool-icon bg-primary-100" style="background: !important;"> <i class="fas fa-heading fa-fw text-primary-600" style="color: !important;"></i> </div> </div> <div class="card-body text-truncate"> <a href="https://bolien.cc/tools/text-separator" class="stretched-link text-decoration-none text-dark"> <strong>Séparateur de texte gratuit en ligne</strong> </a> <p class="text-truncate text-muted small m-0">Reformatez facilement du texte : convertissez des lignes en liste séparée par des virgules, points, et inversement. Gratuit, instantané.</p> </div> </div> </div> </div> </div> </div> </main> <div class="container d-print-none"> <footer class="footer app-footer"> <div class="d-flex flex-column flex-lg-row justify-content-between"> <div class="mb-3 mb-lg-0"> <a class="h5 text-decoration-none footer-heading" href="https://bolien.cc/" data-logo data-light-value="https://bolien.cc/uploads/main/fdc5e4c38fd48bc291781378ef09f22c.png" data-light-class="mb-2 footer-logo" data-light-tag="img" data-dark-value="BOLIEN.cc" data-dark-class="mb-2" data-dark-tag="span" > <img src="https://bolien.cc/uploads/main/fdc5e4c38fd48bc291781378ef09f22c.png" class="footer-logo" alt="Website logo" /> </a> </div> <div class="d-flex flex-row flex-truncate"> <div class="mr-3 ml-lg-3 mr-lg-0"> <button type="button" id="switch_theme_style" class="btn btn-link text-decoration-none p-0" data-toggle="tooltip" title="Changer pour Sombre (CMD/CTRL + I)" aria-label="Changer pour Sombre (CMD/CTRL + I)" data-title-theme-style-light="Changer pour Claire (CMD/CTRL + I)" data-title-theme-style-dark="Changer pour Sombre (CMD/CTRL + I)"> <span data-theme-style="light" class=""><i class="fas fa-fw fa-sm fa-sun text-warning"></i></span> <span data-theme-style="dark" class="d-none"><i class="fas fa-fw fa-sm fa-moon"></i></span> </button> </div> </div> </div> <div class="row"> <div class="col-12 col-md-6 col-lg-4 p-3"> <div class="text-muted font-size-small"> Bolien.cc est l'outil tout-en-un pour créer une page lien en bio, raccourcir vos URLs, générer des QR codes dynamiques et partager vos cartes de visite en ligne. Idéal pour les créateurs, commerciaux et marketeurs. </div> <div class="d-flex flex-wrap gap-3 mt-4"> </div> </div> <div class="d-none d-lg-block col-lg-2"></div> <div class="col-sm-6 col-md-6 col-lg-3 p-3"> <ul class="list-style-none d-flex flex-column flex-wrap m-0 font-size-smaller"> <li class="mb-2 font-weight-600">Product</li> <li class="mb-2"> <a href="https://bolien.cc/plan" target="_self" > Plans </a> </li> <li class="mb-2"> <a href="https://bolien.cc/api-documentation" target="_self" > API Documentation </a> </li> <li class="mb-2"> <a href="#" target="_self" data-cc="show-preferencesModal" > Cookies </a> </li> </ul> </div> <div class="col-sm-6 col-md-6 col-lg-3 p-3"> <ul class="list-style-none d-flex flex-column flex-wrap m-0 font-size-smaller"> <li class="mb-2 font-weight-600">Resources</li> <li class="mb-2"> <a href="https://bolien.cc/pages" target="_self" > Help center </a> </li> <li class="mb-2"> <a href="https://bolien.cc/blog" target="_self" > Blog </a> </li> <li class="mb-2"> <a href="https://bolien.cc/contact" target="_self" > Contact </a> </li> </ul> </div> </div> <div class="text-center text-muted font-size-xs mt-4">Copyright © 2026 BOLIEN.cc.</div> </footer> </div> <script> 'use strict'; /* Some global variables */ window.altum = {}; let global_token = "81879937347cb2bc366357672f0d6e40f36a923225fa19f0b0a0226eb340fd18"; let site_url = "https:\/\/bolien.cc\/"; let url = "https:\/\/bolien.cc\/"; let decimal_point = ","; let thousands_separator = " "; </script> <script src="https://bolien.cc/themes/altum/assets/js/libraries/jquery.min.js?v=6601"></script> <script src="https://bolien.cc/themes/altum/assets/js/libraries/popper.min.js?v=6601"></script> <script src="https://bolien.cc/themes/altum/assets/js/libraries/bootstrap.min.js?v=6601"></script> <script src="https://bolien.cc/themes/altum/assets/js/custom.min.js?v=6601"></script> <script src="https://bolien.cc/themes/altum/assets/js/libraries/fontawesome.min.js?v=6601" defer></script> <script src="https://bolien.cc/themes/altum/assets/js/libraries/fontawesome-solid.min.js?v=6601" defer></script> <script src="https://bolien.cc/themes/altum/assets/js/libraries/fontawesome-brands.modified.js?v=6601" defer></script> <script id="topnav-plus-js"> (function () { var MENU = [{"label":"Services","url":"#","icon":"","children":[{"label":"Page de liens","url":"https://bolien.cc/pages/lien-en-bio","icon":"fas fa-hashtag"},{"label":"Short links","url":"links?type=link","icon":"fas fa-link"},{"label":"QR codes","url":"https://bolien.cc/pages/qr-codes","icon":"fas fa-qrcode"},{"label":"Carte de visite (Vcard)","url":"qr-codes","icon":"fas fa-id-card"}]},{"label":"Tarifs","url":"plan","icon":""},{"label":"Resources","url":"#","icon":"fas fa-book","children":[{"label":"Documentation","url":"https://example.com/docs","icon":"fas fa-book-open","target":"_blank"},{"label":"Blog","url":"blog","icon":"fas fa-rss"},{"label":"Contact","url":"contact","icon":"fas fa-envelope"}]}]; var SITE_URL = "https:\/\/bolien.cc\/"; function isAbsolute(u) { return /^(https?:)?\/\//i.test(u) || u.charAt(0) === "#" || u.charAt(0) === "/"; } function buildUrl(u) { return !u || isAbsolute(u) ? u : SITE_URL + u; } function escapeHtml(s) { return String(s == null ? "" : s) .replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">") .replace(/"/g, """).replace(/\x27/g, "'"); } /* Recursive renderer: returns an HTMLElement for one menu node */ function renderItem(item, depth) { var hasChildren = Array.isArray(item.children) && item.children.length > 0; var iconHtml = item.icon ? '<i class="' + escapeHtml(item.icon) + ' fa-fw fa-sm mr-1"></i> ' : ""; var label = escapeHtml(item.label || ""); var url = buildUrl(item.url || "#"); var target = item.target || "_self"; if (depth === 0) { /* top-level item */ var li = document.createElement("li"); li.className = "nav-item" + (hasChildren ? " dropdown" : ""); if (hasChildren) { li.innerHTML = '<a class="nav-link dropdown-toggle" href="#" data-toggle="dropdown" ' + 'aria-haspopup="true" aria-expanded="false">' + iconHtml + label + '</a>' + '<div class="dropdown-menu"></div>'; var menu = li.querySelector(".dropdown-menu"); item.children.forEach(function (child) { menu.appendChild(renderItem(child, 1)); }); } else { li.innerHTML = '<a class="nav-link" href="' + escapeHtml(url) + '" target="' + escapeHtml(target) + '">' + iconHtml + label + '</a>'; } return li; } /* nested item: lives inside a .dropdown-menu */ if (hasChildren) { /* multi-level: wrap as .tnp-submenu */ var wrap = document.createElement("div"); wrap.className = "dropdown-item tnp-submenu p-0"; wrap.style.background = "transparent"; wrap.innerHTML = '<a class="dropdown-item" href="#" role="button">' + iconHtml + label + '</a>' + '<div class="dropdown-menu"></div>'; var sub = wrap.querySelector(".dropdown-menu"); item.children.forEach(function (child) { sub.appendChild(renderItem(child, depth + 1)); }); /* click: toggle on mobile, no-op on desktop (handled by :hover) */ wrap.querySelector("a").addEventListener("click", function (e) { e.preventDefault(); e.stopPropagation(); wrap.classList.toggle("tnp-open"); }); return wrap; } var a = document.createElement("a"); a.className = "dropdown-item"; a.href = url; a.target = target; a.innerHTML = iconHtml + label; return a; } function inject() { /* Public navbar uses these IDs (themes/altum/views/partials/menu.php) */ var navbar = document.getElementById("navbar"); var ul = navbar && navbar.querySelector("#main_navbar .navbar-nav"); if (!navbar || !ul) return; /* not on a public page -> bail out cleanly */ if (navbar.dataset.tnpInjected === "1") return; /* already done */ navbar.dataset.tnpInjected = "1"; /* Insert custom items at the START of the <ul> so they appear before any pre-existing items (which include the user/account dropdown on the right). */ var anchor = ul.firstChild; MENU.forEach(function (item) { ul.insertBefore(renderItem(item, 0), anchor); }); } if (document.readyState === "loading") { document.addEventListener("DOMContentLoaded", inject); } else { inject(); } })(); </script> <script> 'use strict'; document.querySelectorAll('[data-native-share]').forEach(element => { if(navigator.share) { element.classList.remove('d-none'); element.addEventListener('click', event => { navigator.share({ title: document.title, url: "https://bolien.cc/tools/meta-tags-checker" }).catch(error => {}); }) } }) </script> <script type="application/ld+json"> { "@context": "https://schema.org", "@type": "BreadcrumbList", "itemListElement": [ { "@type": "ListItem", "position": 1, "name": "Page lien en bio, URL raccourcies et QR Codes", "item": "https://bolien.cc/" }, { "@type": "ListItem", "position": 2, "name": "Autres outils en ligne", "item": "https://bolien.cc/tools" }, { "@type": "ListItem", "position": 3, "name": "Vérificateur de meta tags SEO gratuit en ligne", "item": "https://bolien.cc/tools/meta-tags-checker" } ] } </script> <script src="https://bolien.cc/themes/altum/assets/js/libraries/clipboard.min.js?v=6601"></script> <script> 'use strict'; /* Simple copy */ let data_copy_elements = document.querySelectorAll('[data-copy=""]'); if(data_copy_elements.length) { data_copy_elements.forEach(element => { element.classList.add('cursor-pointer'); element.setAttribute('data-toggle', 'tooltip'); element.setAttribute('title', "Copier dans le presse-papiers"); element.setAttribute('data-clipboard-text', element.innerText.trim()); element.setAttribute('data-copy', "Copier dans le presse-papiers"); element.setAttribute('data-copied', "Copi\u00e9 !"); }); tooltips_initiate(); } let clipboard = new ClipboardJS('[data-clipboard-text],[data-clipboard-target]'); /* Copy full url handler */ $('[data-clipboard-text],[data-clipboard-target]').on('click', event => { let copy = event.currentTarget.dataset.copy; let copied = event.currentTarget.dataset.copied; $(event.currentTarget).attr('data-original-title', copied).tooltip('show'); setTimeout(() => { $(event.currentTarget).attr('data-original-title', copy); }, 500); }); </script> <script> 'use strict'; let switch_theme_style = document.querySelector('#switch_theme_style'); let css_theme_style = document.querySelector(`#css_theme_style`); if(switch_theme_style) { switch_theme_style.addEventListener('click', event => { let theme_style_element = document.querySelector('body[data-theme-style]'); let theme_style = document.querySelector('body[data-theme-style]').getAttribute('data-theme-style'); let new_theme_style = theme_style == 'light' ? 'dark' : 'light'; /* Set a cookie with the new theme style */ set_cookie(`theme_style`, new_theme_style, 90, "\/"); /* Change the css and button on the page */ theme_style_element.setAttribute('data-theme-style', new_theme_style); switch (new_theme_style) { case 'dark': css_theme_style.setAttribute('href', "https:\/\/bolien.cc\/themes\/altum\/assets\/css\/bootstrap-dark.min.css?v=6601"); document.body.classList.add('cc--darkmode'); break; case 'light': css_theme_style.setAttribute('href', "https:\/\/bolien.cc\/themes\/altum\/assets\/css\/custom-bootstrap\/bootstrap.min.css?v=6601"); document.body.classList.remove('cc--darkmode'); break; } /* Refresh the logo/title */ document.querySelectorAll('[data-logo]').forEach(element => { let new_brand_value = element.getAttribute(`data-${new_theme_style}-value`); let new_brand_class = element.getAttribute(`data-${new_theme_style}-class`); let new_brand_tag = element.getAttribute(`data-${new_theme_style}-tag`) let new_brand_html = new_brand_tag == 'img' ? `<img src="${new_brand_value}" class="${new_brand_class}" alt="Website logo" />` : `<${new_brand_tag} class="${new_brand_class}">${new_brand_value}</${new_brand_tag}>`; element.innerHTML = new_brand_html; }); switch_theme_style.setAttribute('data-original-title', switch_theme_style.getAttribute(`data-title-theme-style-${theme_style}`)); switch_theme_style.querySelector(`[data-theme-style="${new_theme_style}"]`).classList.remove('d-none'); switch_theme_style.querySelector(`[data-theme-style="${theme_style}"]`).classList.add('d-none'); if (typeof bootstrap !== 'undefined' && typeof bootstrap.Tooltip === 'function' && typeof Popper !== 'undefined') { $(switch_theme_style).tooltip('hide').tooltip('show'); } event.preventDefault(); }); document.addEventListener('keydown', event => { if((event.ctrlKey || event.metaKey) && event.key === 'i') { event.preventDefault(); switch_theme_style.click(); if (typeof bootstrap !== 'undefined' && typeof bootstrap.Tooltip === 'function' && typeof Popper !== 'undefined') { $(switch_theme_style).tooltip('hide'); } } }); } </script> <script src="https://bolien.cc/themes/altum/assets/js/libraries/cookieconsent.js?v=6601"></script> <link href="https://bolien.cc/themes/altum/assets/css/libraries/cookieconsent.css?v=6601" rel="stylesheet" media="screen"> <style> :root { --cc-font-family: inherit; --cc-bg: hsla(0, 0%, 100%, 90%); --cc-separator-border-color: transparent; --cc-modal-border-radius: var(--border-radius); --cc-btn-border-radius: var(--border-radius); --cc-primary-color:var(--gray-700); --cc-secondary-color:var(--gray-600); --cc-btn-primary-color: var(--white); --cc-btn-primary-bg: var(--primary); --cc-btn-primary-hover-bg: var(--primary-600); --cc-btn-primary-color-bg: var(--white); --cc-btn-primary-hover-color: var(--white); --cc-btn-secondary-bg:var(--gray-300); --cc-btn-secondary-hover-bg:var(--gray-400); --cc-btn-secondary-hover-color: var(--black); --cc-btn-secondary-hover-border-color: var(--cc-btn-secondary-hover-bg); } .cc--darkmode { --cc-bg: hsla(0, 0%, 0%, 90%); --cc-separator-border-color: transparent; } </style> <script> 'use strict'; window.addEventListener('load', () => { let language_code = document.documentElement.getAttribute('lang'); let language_direction = document.documentElement.getAttribute('dir'); let translations = {}; translations[language_code] = { consentModal: { title: "Nous utilisons des cookies \ud83c\udf6a", description: "Bonjour, ce site web utilise des cookies essentiels pour assurer son bon fonctionnement et des cookies de suivi pour comprendre comment vous interagissez avec lui. Ces derniers ne seront install\u00e9s qu'apr\u00e8s avoir obtenu votre consentement.", acceptAllBtn: "Accepter tout", acceptNecessaryBtn: "Rejeter tout", showPreferencesBtn: "Personnaliser", }, preferencesModal: { title: "Pr\u00e9f\u00e9rences en mati\u00e8re de cookies", acceptAllBtn: "Accepter tout", acceptNecessaryBtn: "Rejeter tout", savePreferencesBtn: "Enregistrer les param\u00e8tres", closeIconLabel: "Fermer", sections: [ { title: "Utilisation des cookies \ud83d\udce2", description: "Nous utilisons des cookies pour garantir les fonctionnalit\u00e9s de base du site web et am\u00e9liorer votre exp\u00e9rience en ligne. Vous pouvez choisir pour chaque cat\u00e9gorie d'accepter ou de refuser les cookies quand vous le souhaitez. Pour plus d'informations sur les cookies et autres donn\u00e9es sensibles, veuillez consulter l'int\u00e9gralit\u00e9 de la <a href=\"https:\/\/bolien.cc\/page\/politique-de-confidentialite\" class=\"cc-link\">politique de confidentialit\u00e9<\/a>." }, { title: "Cookies strictement n\u00e9cessaires", description: "Ces cookies sont indispensables au bon fonctionnement de mon site web. Sans ces cookies, le site web ne fonctionnerait pas correctement.", linkedCategory: 'necessary' }, { title: "Cookies de performance et d'analyse", description: "Ces cookies permettent au site web de m\u00e9moriser les choix que vous avez effectu\u00e9s par le pass\u00e9.", linkedCategory: 'analytics' }, { title: "Cookies publicitaires et de ciblage", description: "Ces cookies collectent des informations sur la mani\u00e8re dont vous utilisez le site web, les pages que vous avez consult\u00e9es et les liens sur lesquels vous avez cliqu\u00e9. Toutes les donn\u00e9es sont anonymis\u00e9es et ne peuvent \u00eatre utilis\u00e9es pour vous identifier.", linkedCategory: 'targeting' }, ] } }; CookieConsent.run({ categories: { necessary: { enabled: true, readOnly: true, }, analytics: {}, targeting: {}, }, language: { rtl: language_direction == 'rtl' ? language_code : null, default: language_code, autoDetect: 'document', translations }, onFirstConsent: () => { const preferences = CookieConsent.getUserPreferences(); window.dispatchEvent(new CustomEvent('cookie_consent_update', { detail: { accepted_categories: preferences.acceptedCategories } })); if(!get_cookie('cookie_consent_logged')) { navigator.sendBeacon(`${url}cookie-consent`, JSON.stringify({global_token, level: preferences.acceptedCategories})); set_cookie('cookie_consent_logged', '1', 182, "\/"); } }, onChange: () => { const preferences = CookieConsent.getUserPreferences(); window.dispatchEvent(new CustomEvent('cookie_consent_update', { detail: { accepted_categories: preferences.acceptedCategories } })); navigator.sendBeacon(`${url}cookie-consent`, JSON.stringify({global_token, level: preferences.acceptedCategories})); set_cookie('cookie_consent_logged', '1', 182, "\/"); }, guiOptions: { consentModal: { layout: "box", position: "middle center", flipButtons: false }, preferencesModal: { layout: 'box', } }, }); }); </script> </body> </html>