JuZ Rich Text Extender

Ajoutez vos propres boutons de mise en forme à la barre d’outils de l’éditeur, avec une vérification de l’imbrication HTML. Pour les développeurs : les formats se déclarent par un filtre.

Essayez

Ce site déclare deux formats : Marqueur et Badge. Dans l’éditeur, sélectionnez du texte : ils apparaissent dans la barre d’outils de mise en forme, sous la flèche à côté du gras, de l’italique et du lien.

Une phrase avec un passage surligné, puis un badge Nouveau.

Comment l’utiliser

L’extension n’ajoute aucun bouton d’elle-même : un thème ou une extension déclare ses formats avec le filtre juz_rich_text_extender/formats. Chaque format applique au texte sélectionné une balise span avec une classe CSS.

add_filter( 'juz_rich_text_extender/formats', function ( array $formats ): array {
    $formats[] = [
        'name'      => 'playground-highlight',
        'title'     => __( 'Marker', 'my-theme' ),
        'className' => 'playground-highlight',
        'icon'      => 'admin-customizer',
    ];
    $formats[] = [
        'name'      => 'playground-badge',
        'title'     => __( 'Badge', 'my-theme' ),
        'className' => 'playground-badge',
        'icon'      => 'tag',
    ];
    return $formats;
} );

Puis mettez en forme les classes dans la feuille de styles du thème :

.playground-highlight {
    background: linear-gradient(transparent 55%, #e5e5e5 55%);
}

.playground-badge {
    padding: 0.1em 0.6em;
    border-radius: 999px;
    background: #111;
    color: #fff;
    font-size: 0.8em;
}

Les boutons qui produiraient une imbrication HTML invalide sont désactivés. Les règles d’imbrication se modifient avec le filtre juz_rich_text_extender/inline_tags.

Questions sur JuZ Rich Text Extender

À qui s’adresse-t-elle ?

Aux développeurs de thèmes et de sites : l’extension n’ajoute aucun bouton d’elle-même. Votre thème ou votre extension déclare ses formats avec le filtre juz_rich_text_extender/formats (nom, titre, classe CSS, icône).

Quelle balise HTML un format utilise-t-il ?

Un span avec votre classe CSS par défaut, le choix recommandé. Une autre balise en ligne est possible, avec le contrôle d’imbrication ci-dessous.

Pourquoi un bouton est-il grisé dans la barre d’outils ?

Appliquer ce format à l’endroit du curseur produirait du HTML invalide, comme un lien dans un lien. Le bouton est désactivé ; un format actif peut toujours être retiré.

Peut-on modifier les règles d’imbrication ?

Oui, avec le filtre juz_rich_text_extender/inline_tags : pour chaque balise, si elle peut s’imbriquer en elle-même, où elle peut aller et ce qu’elle peut contenir.