2010-05-02 35 views
32

Tôi đang sử dụng bộ xử lý nhãn hiệu Maruku. Tôi muốn điều nàyNhúng javascript vào markdown

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

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

nhưng nó phàn nàn khi tôi hiển thị nhiều lỗi. Người đầu tiên là

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

và sau đó phần còn lại có vẻ như trình phân tích cú pháp sẽ biến mất. Sau đó, nó đưa javascript vào một div trên trang. Tôi đã thử làm cho nó một khối CDATA và khoảng cách thêm giữa jquery và kịch bản của tôi.

Trợ giúp?

Trả lời

26

Tôi cũng gặp vấn đề tương tự, nhưng tôi đã quản lý JavaScript để xuất hiện trong mã của mình bằng cách đặt một dòng mới sau thẻ mở.

+0

Truyền thuyết, cảm ơn rất nhiều. Điều này làm việc tốt +1 – Kezzer

+0

Cảm ơn bạn, tôi đã dành rất nhiều thời gian tìm kiếm một giải pháp cho việc này. – Jack

+0

hoạt động như một sự quyến rũ! – gongzhitaao

2

Ví dụ họ cung cấp on their site hiển thị thẻ trống <script> chứa dòng mới. Có lẽ đó là nó?

+0

nó là markdown đang tạo ra ... mã thực tế của tôi là '

1

Bạn có thể sử dụng pandoc, xử lý đầu vào này (và javascript nói chung) tốt.

13

giải pháp khác nhau mà có thể làm việc trong một số trường hợp: (câu trả lời được lựa chọn không làm việc cho tôi khi tôi đã cố gắng để nhúng một ví dụ CodePen)

  • thêm video này vào cách bố trí mặc định của bạn:

    <!-- Custom JavaScript files set in YAML front matter --> 
    {% for js in page.customjs %} 
    <script async type="text/javascript" src="{{ js }}"></script> 
    {% endfor %} 
    
  • trong bài viết mà bạn cần một số tập tin JavaScript, bạn có thể thêm chúng vào các vấn đề trước YAML như vậy:

    --- 
    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 có thể không cần thiết hoặc muốn nhưng bạn có thể thêm thông số đó làm thông số trong customjs.(Xem YAML front matter for Jekyll and nested lists để biết chi tiết)

+0

Cảm ơn bạn! Đây là * chính xác * nơi tôi gặp sự cố - CodePen được nhúng trên trang web Jekyll. – brenna

+0

Đây là giải pháp tuyệt vời, tuy nhiên nếu bạn cần đặt kịch bản ở đâu đó giữa văn bản trong mẫu, bạn làm cách nào? Như bạn đã đề cập, bạn muốn sử dụng điều này cho ví dụ CodePen (trong trường hợp của tôi, tôi muốn sử dụng điều này cho ví dụ JSFiddle). Vì vậy, tôi cần phải đặt kịch bản trong văn bản của tập tin markdown của tôi. –

1

tôi thấy rằng thoát khỏi bế mạc '>' biểu tượng trong cả hai, khai mạc và bế mạc 'kịch bản' thẻ, sẽ hiển thị một cách chính xác, ví dụ:

  • Nếu bạn gõ các follwing:

    <script\>... javascript code...</script\> 
    
  • Nó sẽ được trả lại như thế này:

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

Đó chỉ là hai xu của tôi.

+0

Không hoạt động, sẽ ném 'HTML bị định dạng sai bắt đầu từ ...' –

0

Một ý tưởng tốt là có nguồn js địa phương và đám mây tách ra:

Trong bài tập:

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 

Trong tập tin mặc định sau khi chân bao gồm:

{% 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 %}