Le blog Cyclonature
Cyclonature sur bluesky Cyclonature sur Facebook Cyclonature sur Mastodon

Le bouton de partage Bluesky sans erreur W3C

Une petite astuce pour créer un lien de partage Bluesky sans erreur.

Les variables

Ces deux variables servent à écrire automatiquement le titre d'un article et son lien dans les liens de partage.
(A noter que ces variables sont placées juste après le DOCTYPE car elles servent aussi pour l'Open Graph sur ce blog)

<?php
$titre = "Le tritre de l'article"
$lien = "Le lien de l'article"
?>

La conversion de certains caractères dans le lien de partage

Il y a plusieurs façons d'encoder une URL, de mon coté j'utilise la fonction PHP str_replace qui fonctionne parfaitement, en gros j'obtiens le même résultat que si j'utilisais la fonction PHP urlencode mais en plus pratique de mon coté.
(Pour info les lignes de code ci-dessous sont placés dans le même include que le lien de partage)

<?php
$titre = str_replace(" ", "%20", $titre);
$titre = str_replace("'", "%27", $titre);
$titre = str_replace("é", "%C3%A9", $titre);
$titre = str_replace("è", "%C3%A8", $titre);
$titre = str_replace("ê", "%C3%AA", $titre);
$titre = str_replace("à", "%C3%A0", $titre);
$titre = str_replace("â", "%C3%A2", $titre);
$titre = str_replace("ô", "%C3%B4", $titre);
?>

Le lien final

Ce lien est placé dans un include en bas de chaque article.
(Pour info, partagebluebas sert uniquement à des réglages CSS comme par exemple l'affichage de l'icone Bluesky en background-image)

<a href="https://bsky.app/intent/compose?text=<?php echo $titre; ?>+<?php echo $lien; ?>" id="partagebluebas">Bluesky</a>

Passons à l'erreur W3C

Si je supprime toutes les variables W3C m'indique que les espaces dans le titre de l'article ne sont pas autorisés.

Le bouton de partage Bluesky sans erreur W3C

Si je replace les variables W3C m'indique qu'il n'y a plus d'erreur.

Le bouton de partage Bluesky sans erreur W3C

La correction du coté de Bluesky

Pendant longtemps toutes les variables étaient utiles mais Bluesky s'améliore et corrige petit à petit les problèmes.
En mars 2025 je découvre que les erreurs sur les caractères accentués ont été corrigés par Bluesky, seul l'espace reste en erreur dans W3C donc le seule variable utile pour ne pas avoir d'erreur W3C est celle-ci.

<?php
$titre = str_replace(" ", "%20", $titre);
?>

Le code final est donc..

A placer dans un include pour mieux le corriger en cas de besoin

<?php
$titre = str_replace(" ", "%20", $titre);
?>
<a href="https://bsky.app/intent/compose?text=<?php echo $titre; ?>+<?php echo $lien; ?>" id="partagebluebas">Bluesky</a>

Publié par Eric le 27 décembre 2024
(Mise à jour le 17 mars 2025)
Remonter en haut de la page
Partager sur Facebook