web-dev-qa-db-ja.com

javascriptをマークダウンに埋め込む

マルクマークダウンプロセッサを使用しています。これが欲しい

*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とスクリプトの間に余分なスペースを入れようとしました。

助けて?

39
Paul Tarjan

これと同じ問題がありましたが、開始タグの後に改行を入れることで、JavaScriptをコードに表示させることができました。

30

場合によっては動作する可能性のある別のソリューション:(選択した回答は、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のパラメーターとして追加できます。 (詳細については JekyllおよびネストされたリストのYAMLフロントマター を参照)

15

MarkdownはインラインXHTMLをサポートしますが、Javascriptはサポートしません。

4
Mike Chelen

彼らが与える例 サイト上 は空の<script>改行を含むタグ。たぶんそれですか?

3
Jon Purdy

開始と終了の両方の「script」タグの終了「>」記号をエスケープすると、正しく表示されることがわかりました。次に例を示します。

  • 次のように入力した場合:

    <script\>... javascript code...</script\>
    
  • 次のようにレンダリングされます。

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

それはちょうど私の2セントです。

1
sergeidave

pandoc を使用すると、この入力(および一般的にjavascript)を適切に処理できます。

1
John MacFarlane

最初の行に<script>タグが含まれるだけインデントします。

0
PhanThanh

私の経験では、マークダウンを混乱させる可能性のあるコードフォーマットを削除する限り、マークダウンはプレーンテキストとしてjavascriptテキストを出力します。

  1. / * ... * /が<em>に変換されるため、javascriptからコメントを削除します
  2. 各行の前にあるスペースのインデントを削除します。 <p>は、インデントに応じて挿入できます。

基本的に私がやることは、生成されたhtmlをレビューし、マークダウンによってJavaScriptコードの間に追加のタグが挿入されているかどうかを調べることです。そして、余分なタグを生成するフォーマットを削除します。

0
milkmeat