Codemirror中的实时预览正在忽略格式化

时间:2012-11-08 20:50:09

标签: javascript markdown codemirror live-preview

我遇到了Codemirror的问题,其中实时预览模式不适用于Markdown。我基本上只是试图达到与SO相同的效果。实际预览适用于HTML但不适用于Markdown。我跟随了几个演示并尝试了一些没有运气的东西,我在这里作为最后的手段。以下是相关代码:

我正在加载文件的负责人:

<script src="editor/lib/codemirror.js"></script>
<link rel="stylesheet" href="editor/lib/codemirror.css">
<script src="editor/lib/util/overlay.js"></script>
<script src="editor/mode/markdown/markdown.js"></script>

注意:我将Codemirror文件放在名为editor的文件夹中。这是我所做的正常设置的唯一真正偏差。

然后在我的文档<body>中,我有一个<form&gt;有2个元素:

<textarea id="content" name="content"></textarea><iframe id="preview"></iframe>

然后在我的页面底部我运行以下JavaScript(顺便说一下我也在使用jQuery 1.8.2):

// Initialize the editor when document finishes loading
    jQuery(document).ready(function() {
        var delay;
    var editor = CodeMirror.fromTextArea(document.getElementById("content"), {
        lineNumbers: false,
        mode: 'markdown',
        matchBrackets: false,
        theme: "ambiance",
        onChange: function() {
          clearTimeout(delay);
          delay = setTimeout(updatePreview, 300);
        }
        });




    // Initialize the live-preview mode
    function updatePreview() {
        var previewFrame = document.getElementById('preview');
        var preview =  previewFrame.contentDocument ||  previewFrame.contentWindow.document;
        preview.open();
        preview.write(editor.getValue());
        preview.close();
        }
        setTimeout(updatePreview, 300);
    });

我无法弄清楚我做错了什么。我尝试加载叠加模式和XML无济于事。我在这里发现了2个帖子,但它们并不完全相关,代码对我不起作用。实时预览显示和更新,但问题是我只得到一个没有格式的文本字符串。

因此,例如,以下Markdown:     #Hading 1

A paragraph with __bold__ *text*.

And [a link](http://example.com)

将在实时预览iframe中完全按照我在此处输入的方式输出:

# Heading 1 A paragraph with __bold__ *text*.And [a link](http://example.com)

它不会将下划线或星号变成粗体或斜体文本,并完全忽略换行符。

关于出了什么问题的任何想法?我甚至无法修改演示以使其工作。我一定是缺少一些知识。

1 个答案:

答案 0 :(得分:5)

浏览器不显示markdown,它们显示HTML。您必须使用例如https://github.com/chjj/marked添加一个将markdown转换为HTML的步骤。