Project

General

Profile

Développement #78469

Supporter les classes CSS personnalisées

Added by Corentin Séchet almost 2 years ago. Updated 3 months ago.

Status:
Nouveau
Priority:
Normal
Target version:
-
Start date:
13 June 2023
Due date:
% Done:

0%

Estimated time:
Patch proposed:
No
Planning:
No

Description

L'idée est de pouvoir configurer dynamiquement dans Godo une liste de classes CSS qui peuvent être posées sur les différents nodes et marks définis par le schéma. Les définir dynamiquement permettrait de définir une liste de classes personnalisées par thèmes dans les config.json de PBT, pour qu'elles soient remontées au éditeurs Godo de Combo ou WCS.

Les bénéfices à mon avis sont les suivants :
  • Dans l'idée de généraliser l'utilisation de Godo pour remplacer le CKEditor, on garde la possibilité d'ajouter des classes sur des éléments des cellules textes, des commentaires, etc... mais sans donner accès au HTML sous-jacent.
  • Ça permet d'éviter les erreurs humaines, en forçant l'endroit où sont utilisées les classes CSS : pas de pk-button posée sur un paragraphe par ex.
  • Dans la suite de ce qui a été évoqué pendant les EO Days front sur les outils qualité du CSS qui viendront un jour inch'allah, ça permettra d'avoir un moyen formel de définir quelle classe peut aller où.
  • Ça permet de documenter les classes CSS personnalisées pour chaque thème dans PBT, et permet aux CPF d'en avoir la liste directement dans l'interface quand ils sont dans Combo, plutôt que d'aller chercher une liste de classes sur le wiki des projets. Voir, ça permettra aux clients de le faire eux-mêmes plus facilement, donc de décharger les CPFs.
  • On peut imaginer étendre par la suite le système de déclaration des classes pour les classes des cellules ou des liens de liste de liens, pour en fournir une liste plutôt que de devoir les rentrer à la main, pour les mêmes avantages que cités ci-dessus.

J'ai fait une PR en POC. L'idée est de passer un paramètre "data-godo-custom-classes" qui contient un objet json de la forme :

{
  'pk-button': {
    'allowOn': [
        'links'
    ],
    label: 'button'
  }
}

Un module parcours ça, ajoute les attributs et le code de sérialisation / déserialisation voulu sur les nodes et marks correspondantes, et fourni un menu pour sélectionner les classes à ajouter sur la mark / le node actif.

Plusieurs questions à ce stade :
  • Certaines classes sont exclusives (warning-notice, error-notice...) : ça se gère en ajoutant un attribut "group" ou quelque chose dans l'idée sur les classes configurées dans Godo, et en retirant toute classe du même groupe qui serait déjà définie avant d'en ajouter une autre.
  • On peut vouloir définir une classe sur un bloc ou une mark, mais aussi à l'intérieur d'un bloc (cas assez courant d'un <span class="theme-blabla"> utilisé à l'intérieur d'un paragraphe par ex.). Pour gérer ça, on peut simplement dédoubler ajouter un attribut "allowIn" dans la configuration des classes, qui permettra de définir une classe sur la sélection dans Godo, si la sélection est dans un bloc supporté.
  • Sur l'UI, dans le POC dans la PR associée, c'est juste un select qui permet de sélectionner une unique classe (et seuls les nodes sont supportés, pas les marks). Si on peut sélectionner plusieurs classes, dont certaines exclusives, plus des classes sur la sélection à l'intérieur des blocs, il faudra pousser ça un peu plus.

Ce ticket pour discuter et pousser un POC, mais si l'idée avance, il faudra découper en plusieurs tickets, entre PBT, Godo et Combo.


Files


Related issues

Related to Combo - Autre #87118: Cellule Fiche(s) - Type de contenu personnalisé, avoir un éditeur de texte riche qui permet l'ajout de classNouveau19 February 2024

Actions

History

#1

Updated by Robot Gitea almost 2 years ago

  • Tracker changed from Support to Développement
  • Status changed from Nouveau to En cours

Corentin Sechet (csechet) a ouvert une pull request sur Gitea concernant cette demande :

#2

Updated by Corentin Séchet almost 2 years ago

  • Description updated (diff)
#3

Updated by Corentin Séchet almost 2 years ago

  • Description updated (diff)
#4

Updated by Corentin Séchet almost 2 years ago

  • Description updated (diff)
#5

Updated by Thomas Jund almost 2 years ago

Aujourd'hui on est dans une logique d'ajouter des class aux cellules (quasi toutes les class pk-*) sauf pour les pk-buttons qui font exception et peuvent se poser sur des liens.
Dans les thèmes que j'ai developpés, j'ai souvent créé des class custom pour des cellules, je n'ai jamais créé de class à ajouter sur des tags via ckEditor.

J'aime bien le constat et l'idée, mais j'ai besoin qu'on pose les cas d'usage.

#6

Updated by Corentin Séchet almost 2 years ago

Aujourd'hui on est dans une logique d'ajouter des class aux cellules (quasi toutes les class pk-*) sauf pour les pk-buttons qui font exception et peuvent se poser sur des liens.

Ok. Dans les faits, j'imagine qu'il y a des pk-notification ou pk-mobile-only qui doivent être posés à l'intérieur des cellules texte, puisque c'est prévu de pouvoir le faire. Je n'ai pas les arguments contre faire ça.

je n'ai jamais créé de class à ajouter sur des tags via ckEditor

Sur Armentières et l'Eure-et-Loir, j'en ai eu besoin. https://portail-armentieres.test.entrouvert.org/ : le "démarches" en rouge dans le "toutes les démarches" et https://portail-eurelien.test.entrouvert.org/ : le surtitre du titre de la page.

J'aime bien le constat et l'idée, mais j'ai besoin qu'on pose les cas d'usage.

Dans l'immédiat, c'est les pk-buttons. J'imaginais les pk-notification et consorts, mais si on veut pas rendre ça possible, on peut aussi choisir de ne pas le faire : l'avantage de cette méthode c'est que les cas d'usages se configurent en dehors de Godo (et que c'est aussi extensible aux classes sur les cellules plus tard).

#7

Updated by Thomas Jund over 1 year ago

Sur Armentières et l'Eure-et-Loir, j'en ai eu besoin. https://portail-armentieres.test.entrouvert.org/ : le "démarches" en rouge dans le "toutes les démarches"

Graphiquement on est sur une mise en emphase, donc le tag em est fait pour ça : Toutes les démarches. Juste à styler la balise em en rouge plutôt qu'en italic.

https://portail-eurelien.test.entrouvert.org/ : le surtitre du titre de la page.

Idem qu'au dessus.

#8

Updated by Robot Gitea over 1 year ago

Corentin Sechet (csechet) a fermé une pull request sur Gitea concernant cette demande.

#9

Updated by Corentin Séchet over 1 year ago

  • Status changed from En cours to Rejeté
#10

Updated by Corentin Séchet 10 months ago

  • Related to Autre #87118: Cellule Fiche(s) - Type de contenu personnalisé, avoir un éditeur de texte riche qui permet l'ajout de class added
#11

Updated by Corentin Séchet 3 months ago

  • Status changed from Rejeté to Nouveau

Also available in: Atom PDF