Ejemplo n.º 1
0
function setup_editor (docRef) {
  var firepadDiv = $('#editor').html('');
  var codeMirror = CodeMirror(firepadDiv[0], {
    mode: 'markdown',
    theme: require('code-mirror/theme/default'),
    extraKeys: {"Enter": "newlineAndIndentContinueMarkdownList"}
  });

  var firepad = Firepad.fromCodeMirror(docRef, codeMirror);

  $('a.share').show().off('click').on('click', function (e) {
    e.preventDefault();
    var contrib = prompt('Insert the email address of the contributor:');
    docRef.child('owners')
      .child(btoa(contrib))
      .set({'can_write': true});
  });

  var previous_text;

  if (previewer) clearInterval(previewer);

  previewer = setInterval(function update_preview() {
    var text = firepad.getText();
    if (previous_text && text.length === previous_text.length && text === previous_text){
      return;
    }
    $('#preview').html(marked(text));
    previous_text = text;
  }, 1000);

  title_editor.setup(docRef);
}
Ejemplo n.º 2
0
 return function (dispatch) {
   dispatch({type: 'FIREPAD_MODE', mode: mode});
   mode = mode || 'javascript';
   if (!Firebase.apps.length) {
     configFirebase();
   }
   dispatch({type: 'FETCHING_FIREPAD'});
   var firepadRef = Firebase.app().database().ref('/' + global.localStorage.roomname);
   var codeMirror = CodeMirror(document.getElementById('firepad'),
     {
       lineNumbers: true,
       mode: mode,
       theme: 'atom',
       tabSize: 2,
       extraKeys: { 'Ctrl-Space': 'autocomplete' },
       autoCloseBrackets: true,
       matchBrackets: true,
       autoCloseTags: true,
       foldGutter: true,
       gutters: ["CodeMirror-linenumbers", "CodeMirror-foldgutter"]
     });
   Firepad.fromCodeMirror(firepadRef, codeMirror, { defaultText: 'Hello, World!' });
   dispatch({type: 'FIREPAD_FETCHED'});
 };