2010-05-02 80 views
32

我正在使用Maruku降價處理器。我想這在markdown中嵌入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和我的腳本之間的額外空間。

幫助?

回答

26

我有同樣的問題,但我設法通過在開始標記後面加一個換行符來讓JavaScript出現在我的代碼中。

+0

圖例,非常感謝。此工作正常+1 – Kezzer 2012-04-03 15:33:04

+0

謝謝,我花了很多時間尋找解決方案。 – Jack 2013-04-29 21:08:22

+0

工程就像一個魅力! – gongzhitaao 2013-04-29 22:55:44

2

他們給出的示例on their site顯示了一個空的<script>標籤,其中包含換行符。也許就是這樣?

+0

是降價這是創建...我的實際代碼是

1

你可以使用pandoc,它處理這個輸入(和JavaScript一般)就好了。

13

不同的解決方案,可能在某些情況下工作:

  • 添加到您的默認佈局(當我試圖嵌入一個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 front matter for Jekyll and nested lists瞭解詳細信息)

+0

謝謝!這正是*我遇到的問題 - CodePen嵌入在Jekyll站點上。 – brenna 2014-02-03 06:14:18

+0

這是一個很好的解決方案,但是如果您需要將腳本放置在模板中的文本之間,那麼您如何執行此操作?就像你提到的那樣,你想用CodePen的例子(在我的例子中我想用JSFiddle的例子)。所以我需要將腳本放在我的markdown文件的文本中。 – 2016-04-30 18:55:32

1

我發現,逃逸在兩個括號「>」符號,開啓和關閉「腳本」標籤,將顯示正確,例如:

  • 如果鍵入該follwing:

    <script\>... javascript code...</script\> 
    
  • 將呈現:

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

這只是我的兩美分。

+0

不能正常工作,會拋出'格式錯誤的HTML從...開始' – 2014-02-07 22:05:56

0

一個好主意是有本地和雲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 %}