Adaptation de Marked pour les réponses sur un topic (pas sur PrimFX.com)

Ce topic a été résolu
EnderMC

EnderMC Le 19 mai 2020 à 15:19 (Édité le 19 mai 2020 à 15:21)

Hello,

Vous connaissez Marked ? C'est une librairie JavaScript qui sert à faire un rendu HTML depuis du Markdown. Je voudrais adapter l'outil pour les réponses aux topics, sur mon forum... Voici le code à utiliser :

<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
<div id="id_quon_peut_utiliser"></div>
<script>
document.getElementById('id_quon_peut_utiliser').innerHTML = marked("# Texte en Markdown !");
</script>

Donc, j'ai pensé à ça pour l'adapter :

<tr>
    <td class="sub-info" style="width:12%;"><?= get_pseudo($r['id_postmaster']) ?></td>
    <td class="main" id="response-transform-md"></td>
    <script>document.getElementById('response-transform-md').innerHTML=marked("<?= $r['content'] ?>");</script>
</tr>
<!-- les variables $r c'est parce que je suis dans une boucle -->

Ca aurait pu marcher... Sauf que si vous connaissez les ids et les ancres (oui, c'est pareil, je sais), vous savez que on ne peut les utiliser qu'une seule fois 😑 ! (pfff...) Voilà, donc si on peut m'aider...

PS : je ne savais pas si je devais mettre le topic dans la catégorie PHP ou JavaScript...

PrimFX

PrimFX Le 20 mai 2020 à 11:21 (Édité le 20 mai 2020 à 11:21)

Hello @EnderMC !

Je viens de jeter un coup d'oeil à la documentation de Marked JS et il n'ont malheureusement pas l'air de proposer de sélecteur de classes pour leur librairie, ce qui est assez dommage...

A première vue, je t'aurais recommandé d'attribuer une classe à chaque élément et de créer une boucle en JS mais je ne pense pas que ça règle le problème puisque tu es "déjà" dans une boucle PHP : ça risque de vite devenir difficile à maintenir.

Du coup, en supposant que tu ais un identifiant unique pour chaque élément de ton tableau $r, disons $r['id'], tu pourrais "customiser" chaque id (HTML) en le rendant unique avec l'id de ton tableau PHP 😃

Voici à quoi pourrait ressembler ton code :

<!-- En supposant que tu ais un ID unique pour chaque $r appelé $r['id'] -->
<tr>
    <td class="sub-info" style="width:12%;"><?= get_pseudo($r['id_postmaster']) ?></td>
    <td class="main" id="response-transform-md-<?= $r['id'] ?>"></td>
    <script>document.getElementById('response-transform-md-<?= $r["id"] ?>').innerHTML=marked("<?= $r['content'] ?>");</script>
</tr>
<!-- les variables $r c'est parce que je suis dans une boucle -->

En espérant avoir pu t'aider,

A bientôt,

Boris

Meilleure réponse
EnderMC

EnderMC Le 20 mai 2020 à 11:30 (Édité le 20 mai 2020 à 11:31)

Hello @PrimFX,

Merci pour ta réponse (oui, tu m'as aidé) ! D'ailleurs, c'est ce système que tu utilise (#m[id réponse]) !

PS : on dit, sur le forum, que tu gère une entreprise. C'est laquelle ?

PrimFX

PrimFX Le 20 mai 2020 à 11:34

De rien 😉

Effectivement haha, mais je m'en sers uniquement comme des ancres (pour accéder plus rapidement à un message précis).

Oui tout à fait, il s'agit de Single Quote (je ne m'étends pas plus sur le sujet, c'est HS par rapport au topic 😜)

EnderMC

EnderMC Le 20 mai 2020 à 11:35

😁

Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte