Подтвердить что ты не робот

Вставить javascript в markdown

Я использую процессор маркировки Maruku. Я бы хотел этого

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

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

но он жалуется, когда я делаю его с множеством ошибок. Первый из них

 ___________________________________________________________________________
| 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[|

а затем остальное похоже, что парсер гаснет. Затем он превращает javascript в div на странице. Я пробовал сделать блок CDATA и дополнительный интервал между jquery и моим script.

Справка

4b9b3361

Ответ 1

У меня была такая же проблема, но мне удалось заставить JavaScript появиться в моем коде, поместив новую строку после открывающего тега.

Ответ 2

Различные решения, которые могут работать в некоторых случаях: (выбранный ответ не работал у меня, когда я пытался внедрить пример CodePen)

  • добавьте это в свой макет по умолчанию:

    <!-- Custom JavaScript files set in YAML front matter -->
    {% for js in page.customjs %}
    <script async type="text/javascript" src="{{ js }}"></script>
    {% endfor %}
    
  • В сообщениях, где вам нужны файлы JavaScript, вы можете добавить их в передний элемент YAML так:

    ---
    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
    ---
    

async может не понадобиться или нужно, но вы можете добавить это как параметр в customjs. (см. передняя панель YAML для Jekyll и вложенных списков)

Ответ 3

Markdown поддерживает встроенный XHTML, но не Javascript.

Ответ 4

В примере, который они дают на своем сайте, отображается пустой тег <script>, содержащий новую строку. Может быть, это?

Ответ 5

Вы можете использовать pandoc, который обрабатывает этот ввод (и javascript вообще) просто отлично.

Ответ 6

Я обнаружил, что экранирование закрывающего " > " символа в обоих тегах открытия и закрытия "script" будет отображать его правильно, например:

  • Если вы наберете следующее:

    <script\>... javascript code...</script\>
    
  • Он будет выглядеть следующим образом:

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

Вот только мои два цента.

Ответ 7

По моему опыту, уценка станет текстом javascript outpus как простой текст, если вы удалите форматирование кода, которое может смутить уценку.

  • удалить комментарии из javascript, так как /*... */переводится в <EM>
  • удалите отступ пробела в передней части каждой строки. <p> может быть вставлен в соответствии с вашим отступом.

В основном, я должен просмотреть сгенерированный html и узнать, какие дополнительные теги вставлены между моим кодом javascript по методу markdown. И удалите форматирование, которое генерирует дополнительный тег.

Ответ 8

Хорошей идеей является разделение локальных и облачных js-источников:

В файле сообщения:

cloudjs:
 - //cdnjs.cloudflare.com/ajax/libs/d3/3.5.3/d3.min.js
 - //cdnjs.cloudflare.com/ajax/libs/topojson/1.6.9/topojson.min.js
localjs:
 - datamaps.world.min.js
 - custom.js  

В файле по умолчанию после включения нижнего колонтитула:

   {% for js in page.cloudjs %}

        <script type="text/javascript" src="{{ js }}"></script>

    {% endfor %}


    {% for js in page.localjs %}

        <script type="text/javascript" src="{{ "/assets/scripts/" | prepend: site.baseurl | append: js }}"></script>

    {% endfor %}