在markdown中嵌入javascript

时间:2010-05-02 17:58:05

标签: javascript markdown maruku

我正在使用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和我的脚本之间留出额外的间距。

帮助?

11 个答案:

答案 0 :(得分:29)

我遇到了同样的问题,但是我设法通过在开始标记后添加换行符来让JavaScript显示在我的代码中。

答案 1 :(得分:15)

在某些情况下可能有效的不同解决方案:(当我尝试嵌入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

答案 2 :(得分:4)

Markdown支持内联XHTML,但不支持Javascript。

答案 3 :(得分:3)

他们提供的示例on their site显示包含换行符的空<script>标记。也许就是这样?

答案 4 :(得分:3)

我使用此代码在markdown中编写JavaScript代码。

只需在js之后添加"```",您的JavaScript代码就会突出显示。


 ```js
   const myvar = "hello"
   module.exports.response = response = ()=>{mycode here}
    ```

答案 5 :(得分:1)

您可以使用pandoc来处理此输入(通常是javascript)。

答案 6 :(得分:1)

我发现逃避关闭'&gt;'打开和关闭“脚本”标签中的符号将正确显示,例如:

  • 如果您输入以下内容:

    <script\>... javascript code...</script\>
    
  • 它将呈现如下:

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

那只是我的两分钱。

答案 7 :(得分:1)

我用一个名为Showdown的库构建了一个快速服务器,该库将markdown转换为HTML,并且还允许您在markdown文件中使用HTML,这是我能够使用javascript并链接到我的css文件的方式。 / p>

TOC.md

<script src="/js/toc"></script>

server.js

app.get('/js/toc', (req, res) => {
    fs.readFile(path.join(__dirname, 'public', 'js', 'toc.js'), 'utf-8', (err, data) => {
        if(err) throw err;
        res.set({
            'Content-Type': 'text/javascript'
        })
        res.send(data)
    })
})

或者您可以使用快速静态中间件来实现。您只需要将javascript文件放在一个名为public的文件夹中即可。

TOC.md

<script src="/static/js/toc.js"></script>

server.js

app.use('/static', express.static('public'))

答案 8 :(得分:0)

根据我的经验,只要您删除可能会混淆markdown的代码格式,markdown就会将javascript文本作为纯文本输出。

  1. 从javascript中删除评论,因为/ * ... * /已翻译为&lt; EM&GT;
  2. 删除每行前面的空格缩进。 &LT; p为H.可以根据你的缩进插入。
  3. 基本上我所做的是查看生成的html,并通过markdown找出我的javascript代码之间插入了多少额外标签。并删除生成额外标记的格式。

答案 9 :(得分:-1)

一个好主意是将本地和云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 %}

答案 10 :(得分:-1)

只需缩进第一行包含