0

firepad を django プロジェクトに統合しています。私はJavaScriptの専門知識があまりなく、そのために問題に直面しています。

すべての手順に従うと、すべてが正常に機能しているように見えます。

<script>
    //// Initialize Firebase.
    //var firepadRef = getExampleRef();
    // TODO: Replace above line with:
     var ref = new Firebase('<YOUR FIREBASE URL>');

    //// Create CodeMirror (with line numbers and the JavaScript mode).
    var codeMirror = CodeMirror(document.getElementById('firepad-container'), {
      lineNumbers: true,
      mode: 'javascript'
    });

    //// Create Firepad.
    var firepad = Firepad.fromCodeMirror(firepadRef, codeMirror);

    //// Initialize contents.
    firepad.on('ready', function() {
      if (firepad.isHistoryEmpty()) {
        firepad.setText('// JavaScript Editing with Firepad!\nfunction go() {\n var message = "Hello, world.";\n console.log(message);\n}');
      }
    });
  </script>

ただし、djangoビューでレンダリングされたページに「user」という名前の辞書変数があります。

上記の例では、この変数を固定のデフォルト テキストの代わりに {{user.textkey}} として使用したいと考えています。textkey はテキストを指します。

user = {'textkey':text}

このようなもの:-

firepad.setText('{{user.textkey}}');

あなたが私の主張を理解してくれることを願っています。ここでの問題は、テキストにアポストロフィや Unicode 文字 (左または右の単一引用符など) などが含まれている可能性があることです。また、django は変数内の \n を置き換え、JavaScript でサポートされていない形式になります。

例えば:-

テキストに含まれる場合

Hello \xe2\x80\x98World\xe2\x80\x99:\n Good morning:\n 

それから

firepad.setText('{{user.textkey}}');

このようになります

firepad.setText('{{Hello 'World'
Good morning
}}');

これはJavaScriptでは理解できません。

これに取り組む方法は?

どんな種類の提案も大歓迎です。

4

1 に答える 1