LoginSignup
21
16

More than 5 years have passed since last update.

コード/テキストを共同で編集する

Posted at

今回はブラウザ上で共同のコード/テキスト編集を可能にするオープンソースのFirepadを利用します。
https://github.com/firebase/firepad

導入

  • FirepadはバックエンドでFirebaseを利用しますので、Firebaseのアカウントを取得します(お試しなのでとりあえずFreeで)。

スクリーンショット 2016-02-02 10.38.00.png

  • FirebaseでAPPを作成しURLを発行しておく。

e98a51e1-5408-6e23-09d1-b5fcae79798b.png

  • 以下のコードをhtmlのhead内に追記します。
<!-- Firebase -->
<script src="https://cdn.firebase.com/js/client/2.2.4/firebase.js"></script>

<!-- CodeMirror -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.2.0/codemirror.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/codemirror/5.2.0/codemirror.css"/>

<!-- Firepad -->
<link rel="stylesheet" href="https://cdn.firebase.com/libs/firepad/1.3.0/firepad.css" />
<script src="https://cdn.firebase.com/libs/firepad/1.3.0/firepad.min.js"></script>

<style>
  html { height: 100%; }
  body { margin: 0; height: 100%; position: relative; }
  #firepad {
    width: 100%;
    height: 100%;
  }
</style>

  • 初期化設定をbody内に追記
<div id="firepad"></div>
<script>
  var firepadRef = new Firebase('<FIREBASE URL>');
  var codeMirror = CodeMirror(document.getElementById('firepad'), { lineWrapping: true });
  var firepad = Firepad.fromCodeMirror(firepadRef, codeMirror,
      { richTextShortcuts: true, richTextToolbar: true, defaultText: 'Hello, World!' });
</script>

※FIREBASE URLは取得したアカウントのアプリケーションのURLにかえてください。
CodeMirrorはオープンソースのブラウザで動作するエディターですが、こちらは同じくACEでも代用できます。その場合は以下のようにします。

<div id="firepad"></div>
<script>
  var firepadRef = new Firebase('<FIREBASE URL>');
  var editor = ace.edit("firepad");
  editor.setTheme("ace/theme/textmate");
  var session = editor.getSession();
  session.setUseWrapMode(true);
  session.setUseWorker(false);
  session.setMode("ace/mode/html");
  var firepad = Firepad.fromACE(firepadRef, editor, {
    defaultText: "Hello, world"
  });
</script>
  • このhtmlをブラウザで開く。今回はウィドウを2つ立ち上げて並べてみました。

out.gif

まとめ

Firepadを使って共同のコード編集する方法を見てきました。Codemirror,ACEを利用しているので大概のプログラミング言語のシンタックスには対応できるかと思います。

21
16
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
16