Voici l'icône [wrap=icon id=far-square][/wrap] et l'icône [wrap=icon id=pencil][/wrap].
Remarque : si l’icône ne s’affiche pas, c’est qu’elle n’est pas incluse dans votre sous-ensemble. Si vous êtes administrateur, vous pouvez l’ajouter dans les paramètres de votre site : sous-ensemble d'icônes SVG.
Hébergé par nous ? Les composants de thème sont disponibles pour une utilisation sur nos offres Standard, Business et Entreprise.
(meta propose énormément de thèmes, mais heureusement, grâce à @kris.kotlarek, nous avons un bouton « Ajouter à tous les thèmes »… il faut encore trier la progression là-dessus, car cela prend un certain temps pour faire son effet.
Je n’ai jamais vraiment utilisé les balises BB, ni codé manuellement FontAwesome, donc la pratique d’utiliser une paire de balises vides m’a toujours semblé étrange. Est-ce une convention populaire, ou y a-t-il une raison technique liée au web pour utiliser des paires de balises ? De plus, peut-on placer du contenu entre elles ? Cela affecte-t-il le texte ?
Premièrement, lorsque j’ai écrit la fonctionnalité BBCode wrap, @sam m’a explicitement demandé de prendre en charge 3 formats :
[wrap=foo][/wrap]
[wrap=foo]bar[/wrap]
[wrap=foo]
bar
[/wrap]
Cela est fait pour être cohérent avec notre utilisation existante de BBCode dans Discourse.
J’aurais pu avoir une syntaxe meilleure comme : [icon=times], mais cela aurait dû être un plugin et non un composant de thème.
Comme expérience, je pense que c’est bien tel que c’est aujourd’hui, et si les gens l’utilisaient beaucoup, nous pourrions envisager d’avoir un plugin qui le fait avec une syntaxe plus concise.
Une autre idée que j’ai eue est d’ajouter une API pour ajouter des symboles de complétion automatique dans le compositeur, tout comme nous en avons pour les utilisateurs/catégories/émojis… Mais j’ai peur que ce soit un cauchemar avec plusieurs composants choisissant leur propre symbole…
Ah ! Je dois ajouter la prise en charge d’un autre bbcode et ceux-ci. Je pensais utiliser cela comme point de départ, mais vous dites que le traitement des enveloppes est géré dans le cœur, ce qui explique pourquoi je ne parviens pas à trouver comment votre composant de thème le gère.
Ma solution actuelle consiste à utiliser le composant « mots liés » et une regex moche, mais je continue à avoir du mal à ajouter les classes nécessaires aux liens.
Bon, je l’ai examiné une douzaine de fois. J’ai même imprimé le code de votre composant et je l’ai fixé pendant des heures, essayant de comprendre dans quelle mesure c’est du JavaScript ou d’Ember que je ne comprends pas. Je ne peux pas ajouter une balise [foo] sans plugin ? Ou puis-je d’une manière ou d’une autre remplacer wrap dans votre code par foo pour couvrir mon nouveau BBCode ?
Non, ce n’est pas possible, car une partie du traitement se fait côté serveur. Si vous souhaitez créer votre propre BBCode personnalisé, vous devrez développer un plugin et examiner, par exemple, la manière dont l’élément wrap est implémenté :
Merci ! Ça commence à prendre du sens. Je n’avais pas eu autant de mal à apprendre un nouveau langage depuis le C++ et l’Objective Pascal en 1990.
Mon hack regex actuel fonctionne presque. Je vais devoir décider s’il faut passer par l’approche des plugins ou rester avec mon hack (et trouver comment ajouter les classes).
Du moins, je comprends maintenant pourquoi je ne trouvais pas ce wrap dans le composant du thème !
Si vous utilisez un « icon wrap » puis que vous mettez en surbrillance la citation, l’image résultante est énormément agrandie :
Utilisez un « icon wrap » dans une phrase d’une publication. Par exemple : Ceci est une icône [wrap=icon id=far-check-square][/wrap]
Mettez en surbrillance le texte pertinent et cliquez sur « Citer »
L’icône devient super grande dans l’extrait cité
Voici à quoi ressemble la syntaxe lorsqu’elle est citée en surbrillance :
[quote="JammyDodger, post:1, topic:294, full:true"]
Ceci est une icône 
[/quote]
Ceci est une réponse où elle devient énorme
Cependant, la citer en utilisant la bulle de dialogue dans la barre de format fonctionne très bien.
Pouvez-vous fournir un exemple ? Votre capture d’écran montre une case à cocher cochée et je n’ai aucun problème à la sélectionner sur mon instance de test (ainsi que d’autres icônes probablement non utilisées par Discourse comme x-ray).
Je vois le problème. Le composant recherche en vérifiant s’il existe un wrapper avec la classe d-wrap ; mais il n’y a pas de wrapper si l’icône fournie ne provient pas du sous-ensemble. Il crée une image en SVG à la place.
Si vous citez les images, le composant ne fait rien, car il n’y a pas de wrapper (et l’image est convertie en markdown, ce qui donne une image sans aucune classe)
Est-ce que cela signifie que je dois avoir un champ svg_icons dans settings.yml disponible dans mon thème ? Ou pourrais-je utiliser n’importe quel champ svg_icons disponible à partir de n’importe quel composant de thème activé ? Et si tel est le cas, serait-il judicieux d’ajouter ce champ à ce composant de thème ?
Parce que d’après mon expérience, les icônes SVG sont transformées en balises <img /> et elles n’héritent pas de currentColor lorsque le schéma de couleurs est modifié :
Veuillez comparer le paragraphe Exemple :