2010-05-02 92 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 %}