代码之家  ›  专栏  ›  技术社区  ›  Paul Tarjan

在降价中嵌入javascript

  •  38
  • Paul Tarjan  · 技术社区  · 16 年前

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

    帮助?

    9 回复  |  直到 7 年前
        1
  •  29
  •   S M    14 年前

    我也遇到过同样的问题,但是我通过在开始标记后放置一个换行符,设法让javascript出现在我的代码中。

        2
  •  15
  •   Community Mohan Dere    9 年前

    在某些情况下可能有效的不同解决方案:(当我试图嵌入代码笔示例时,选定的答案对我不起作用)

    • 将此添加到默认布局:

      <!-- 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 详情)

        3
  •  4
  •   Mike Chelen    15 年前

    markdown支持内联xhtml,但不支持javascript。

        4
  •  3
  •   Jon Purdy    12 年前

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

        5
  •  1
  •   John MacFarlane    14 年前

    你可以用 pandoc ,它可以很好地处理这个输入(通常是javascript)。

        6
  •  1
  •   sergeidave    12 年前

    我发现转义开头和结尾“script”标记中的结束“>”符号将正确显示它,例如:

    • 如果您键入以下内容:

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

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

    那只是我的两分钱。

        7
  •  0
  •   milkmeat    14 年前

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

    1. 从javascript删除注释,as/*…*/翻译为<em>
    2. 删除每行前面的空格缩进。<p>可以根据缩进插入。

    基本上,我所做的就是检查生成的html,并通过标记找出在javascript代码之间插入了哪些额外的标记。并删除生成额外标记的格式。

        8
  •  -1
  •   Claudiu Creanga    8 年前

    一个好主意是将本地和云js源分离:

    在post文件中:

    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 %}
    
        9
  •  -1
  •   PhanThanh    7 年前

    只需缩进包含<脚本>标记的第一行。