使用<code> and/or <pre></pre></code>显示HTML代码段时出现问题

时间:2013-05-23 15:06:42

标签: jquery html pre pretty-print

我正在尝试构建一个HTML元素库(如Twitter Bootstrap),我希望在正确的代码标记旁边有一个元素的实时版本(例如按钮)。

我正在尝试使用Prettify来显示类似<button>Button</button>的内容,但它似乎无法正常工作。

以下是我在查看页面时看到的内容:

enter image description here

问题:我在这里做错了什么?

以下是相关的HTML:

<html>
<head>
<title>Common HTML Library</title>

<link type="text/css" rel="stylesheet" href="common.css" />
<link type="text/css" rel="stylesheet" href="prettify/prettify.css" />

<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
<script type="text/javascript" src="prettify/prettify.js"></script>
<script type="text/javascript">
    $(document).ready(function() {
        prettyPrint();
    });
</script>
</head>

<body>
<h1>Buttons</h1>
<table>
    <thead>
        <tr>
            <th>Element</th>
            <th>Description</th>
            <th>Markup</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>
                <button>Button</button>
            </td>
            <td>Standard Button</td>
            <td>
                <code class="prettyprint">
                    <button>Button</button>
                </code>
            </td>
        </tr>
        <tr>
            <td>
                <button class="primary">Button</button>
            </td>
            <td>Primary Button</td>
            <td>
                <code class="prettyprint">
                    <button class="primary">Button</button>
                </code>
            </td>
        </tr>
        <tr>
            <td>
                <button disabled="disabled">Button</button>
            </td>
            <td>Disabled Button</td>
            <td>
                <code class="prettyprint">
                    <button disabled="disabled">Button</button>
                </code>
            </td>
        </tr>
    </tbody>
</table>
</body>
</html>

修改

我尝试设置语言并使用<pre>这样,并获得以下内容:

<pre class="prettyprint lang-html">
    <button>Button</button>
</pre>

enter image description here

1 个答案:

答案 0 :(得分:1)

尝试设置语言并转义括号/引号:

<code class="prettyprint lang-html">
    &lt;button class=&quot;primary&quot;&gt;Button&lt;/button&gt;
</code>

更新

嗯,实际上我认为您需要使用<pre>代替<code>

更新2:尝试此代码(demo):

$(document).ready(function() {
  $('.prettyprint').html(function(i,h){
    return h.replace(/[<>\"\'\t\n]/g, function(m) { return {
      '<' : '&lt;',
      '>' : '&gt;',
      "'" : '&#39;',
      '"' : '&quot;',
      '\t': '  ',
      '\n': '<br/>' // needed for IE
    }[m]});
  });

  prettyPrint();
});