2013-07-12 21 views
20

CodeMirrorでコードサンプルをスタイル設定しようとしていますが、部分的に機能します。選択したテーマがtextareaに適用されますが、構文は強調表示されません。CodeMirror HTMLモードが動作しません

私のページがあります:ここで

<textarea id="template-html" name="code" class="CodeMirror"> 
    <!DOCTYPE html> 
    <foobar> 
     <blah>Enter your xml here and press the button below to display it as highlighted by the CodeMirror XML mode</blah> 
     <tag2 foo="2" bar="bar" /> 
    </foobar> 
</textarea> 
<link rel="stylesheet" type="text/css" href="/site.com/css/codemirror/codemirror.css"> 
<link rel="stylesheet" type="text/css" href="/site.com/css/codemirror/theme/ambiance.css"> 
<link rel="stylesheet" type="text/css" href="/site.com/css/codemirror/theme/solarized.css"> 
<script type="text/javascript" src="/site.com/js/libs/codemirror/codemirror.js"></script> 
<script type="text/javascript" src="/site.com/js/libs/codemirror/mode/javascript/javascript.js"></script> 
<script type="text/javascript"> 
    var config, editor; 

    config = { 
     lineNumbers: true, 
     mode: "text/html", 
     theme: "ambiance", 
     indentWithTabs: false, 
     readOnly: true 
    }; 

    editor = CodeMirror.fromTextArea(document.getElementById("template-html"), config); 

    function selectTheme() { 
     editor.setOption("theme", "solarized dark"); 
    } 
    setTimeout(selectTheme, 5000); 
</script> 

は、結果の画像です。動作するが、シンタックスハイライト(画像上)なしで、私はまた私のCSSなしで試してみたようだが、結果は(画像下)と同じである:

codemirror html mode

問題はそうmode: "text/html"であります私がmode: "javascript"を使用すると、JavaScriptの構文規則でタグがカラー化されます。これをどうすれば解決できますか?

答えて

41

CodeMirrorはXMLモードを使用してHTMLを解析します。それを使用するには、他のモードと同様に適切なスクリプトを組み込む必要があります。

は、あなたのマークアップでその依存関係を追加します。

<script type="text/javascript" 
     src="/site.com/js/libs/codemirror/mode/xml/xml.js"></script> 

xmlにモードを設定します。

config = { 
    mode : "xml", 
    // ... 
}; 

また、あなたは非整形式のXMLを可能にするために、パーサーを設定することもできます。あなたは上のhtmlModeフラグを切り替えることで、そうすることができます

config = { 
    mode : "xml", 
    htmlMode: true, 
    // ... 
}; 

ライブたとえばXML/HTML mode demoを参照してください。

+0

ええ、私はたくさんのファイルがありませんでしたが、あなたは私に正しい方法を教えてくれました。 – vitto

+0

[ウェブサイトで読む](http://codemirror.net)とCodeMirror a少し良く。 –

+0

私はVelocityモードを使用しようとしていることを除いて、OPと同様の問題があります。私はxmlスクリプトをインポートしましたが、自動クローズはとにかく動作したくありません。 VelocityがautoCloseTagsの設定を意図的に守るべきかどうかを知っていますか? – user776686

関連する問題