Conserver la mise en forme malgré le filtre `|couper`

Salut,

je souhaite limiter le nombre de caractères d’un texte tout en gardant la mise en forme (gras, italique…).

J’avais ça en tête mais ça ne fonctionne pas, la mise en forme saute même s’il y a moins 180 caractères dans le champ descriptif :
[(#DESCRIPTIF*|couper{180,''}|propre)]

Est-ce que c’est possible ?

J’avais publié il y a longtemps une astuce utliisant les balises <intro> pour ça cf Afficher l’introduction d’un article avec la mise en forme - Le labo mais je découvre en cherchant une réponse à ta question le filtre |text_truncate de bonux qui semble faire le job Bonux pour SPIP3 - SPIP-Contrib

1 « J'aime »

text_truncate marche très très bien depuis des années (pas eu de bug pour l’instant mais ça doit dépendre des contenus).

mon idée à la base ça aurait été que ça remplace couper avec une option ou au moins que couper l’appelle quand on demande à faire sur du HTML (mais text_truncate sait aussi faire sur du texte brut alors ça pourrait remplacer complètement, en adaptant les options pour garder le comportement par défaut)

1 « J'aime »

Ok, je connaissais pas…
Et ça a l’air de le faire proprement avec |text_truncate{500, #ARRAY{html,oui}}

Voir text_truncate : mettre l'option `html` à true par défaut (#5) · Tickets · spip-contrib-extensions / spip-bonux · GitLab

Merci

Merci @b_b et @rastapopoulos pour le rappel du filtre de BONUX : |text_truncate{150, #ARRAY{html,' ', exact, '', ending, '…'}} !

1 « J'aime »

@Graphie de rien, c’est juste dommage que ça n’ait pas bougé depuis 4 ans du côté du ticket sur la forge :slight_smile:

Bonjour
Par chez moi, avec Spip 4.2.16 :

  • |text_truncate{150, #ARRAY{html,oui}} fonctionne mais coupe les mots n’importe où.

  • |text_truncate{150, #ARRAY{html,' ', exact, '', ending, ' (…)'}} fonctionne avec un bug lié au plugin Ortho-typographie - SPIP-Contrib :
    Si la limite de coupure intervient entre l’ouverture et la fermeture d’une paire de guillemets, ça pète tout ce qui suit. Quand je désactive Ortho-typographie (2.2.0), ça rentre dans l’ordre.