web-dev-qa-db-fra.com

Incorporer javascript dans markdown

J'utilise le processeur Maruku Markdown. Je voudrais ça

*blah* blah "blah" in [markdown](blah)

<script src="http://code.jquery.com/jquery-1.4.2.min.js"></script>
<script>
...do stuff...
</script>

mais il se plaint quand je le rends avec une multitude d'erreurs. Le premier étant

 ___________________________________________________________________________
| Maruku tells you:
+---------------------------------------------------------------------------
| Could you please format this better?
| I see that "<script type='text/javascript'>" is left after the raw HTML.
| At line 31
|   raw_html     |<script src='http://code.jquery.com/jquery-1.4.2.min.js' /><script type='text/javascript'>|
|       text --> |//<![CDATA[|

et le reste semble alors que l'analyseur devient fou. Ensuite, il convertit le javascript en div sur la page. J'ai essayé d'en faire un bloc CDATA et un espacement supplémentaire entre le jquery et mon script.

Aidez-moi?

38
Paul Tarjan

J'ai eu le même problème, mais j'ai réussi à faire apparaître JavaScript dans mon code en mettant une nouvelle ligne après le tag d'ouverture.

29
Sebastian Motraghi

Solution différente qui pourrait fonctionner dans certains cas: (la réponse sélectionnée ne fonctionnait pas pour moi lorsque j'essayais d'incorporer un exemple CodePen)

  • ajoutez ceci à votre mise en page par défaut:

    <!-- Custom JavaScript files set in YAML front matter -->
    {% for js in page.customjs %}
    <script async type="text/javascript" src="{{ js }}"></script>
    {% endfor %}
    
  • Dans les publications où vous avez besoin de certains fichiers JavaScript, vous pouvez les ajouter à l’avant-plan YAML, comme suit:

    ---
    layout: post
    title: Adding custom JavaScript for a specific post
    category: posts
    customjs:
     - http://code.jquery.com/jquery-1.4.2.min.js
     - http://yourdomain.com/yourscript.js
    ---
    

La async n'est peut-être pas nécessaire ou souhaitée, mais vous pouvez probablement l'ajouter en tant que paramètre dans customjs. (voir avant-propos de YAML pour Jekyll et les listes imbriquées pour plus de détails)

14
Timothée Boucher

Markdown prend en charge le XHTML en ligne, mais pas le Javascript.

4
Mike Chelen

L'exemple qu'ils donnent sur leur site montre une balise <script> vide contenant une nouvelle ligne. Peut-être que c'est ça?

3
Jon Purdy

J'ai trouvé qu'échapper au symbole '>' de fermeture dans les deux balises 'script' d'ouverture et de fermeture l'affichera correctement, par exemple:

  • Si vous tapez le texte suivant:

    <script\>... javascript code...</script\>
    
  • Cela sera rendu comme ceci:

    <script>... javascript code...</script>
    

C'est juste mes deux cents.

1
sergeidave

Vous pouvez utiliser pandoc , qui gère parfaitement cette entrée (et javascript).

1
John MacFarlane

Mettez juste en retrait la première ligne contenant la balise <script>.

0
PhanThanh

Selon mon expérience, markdown dépassera le texte javascript en tant que texte brut tant que vous supprimez le formatage du code susceptible de le confondre.

  1. supprimer les commentaires de javascript, car/* ... */est traduit en <em>
  2. supprimez le retrait d'espace à l'avant de chaque ligne. <p> peut être inséré en fonction de votre indentation.

Fondamentalement, ce que je fais est d'examiner le code HTML généré et de savoir quelles balises supplémentaires sont insérées entre mon code javascript par markdown. Et supprimez le formatage qui génère la balise supplémentaire.

0
milkmeat