old_contents: Kanboard.Markdown = function(app) {
      this.app = app;
      this.editor = null;
  };
  
  Kanboard.Markdown.prototype.onPopoverOpened = function() {
      this.listen();
  };
  
  Kanboard.Markdown.prototype.onPopoverClosed = function() {
      this.listen();
  };
  
  Kanboard.Markdown.prototype.listen = function() {
      var editors = $(".markdown-editor");
  
      if (this.editor) {
          this.destroy();
      }
  
      if (editors.length > 0) {
          this.show(editors[0]);
      }
  };
  
  Kanboard.Markdown.prototype.destroy = function() {
      var cm = this.editor.codemirror;
      var wrapper = cm.getWrapperElement();
  
      for (var item in ["toolbar", "statusbar", "sideBySide"]) {
          if (this.editor.gui[item]) {
              wrapper.parentNode.removeChild(this.editor.gui[item]);
          }
      }
  
      cm.toTextArea();
      this.editor = null;
  };
  
  Kanboard.Markdown.prototype.show = function(textarea) {
      var toolbar = ["bold", "italic", "strikethrough", "heading", "|", "unordered-list", "ordered-list", "link", "|", "code", "table"];
  
      this.editor = new SimpleMDE({
          element: textarea,
          status: false,
          toolbarTips: false,
          autoDownloadFontAwesome: false,
          spellChecker: false,
          autosave: {
              enabled: false
          },
          forceSync: true,
          blockStyles: {
              italic: "_"
          },
          toolbar: textarea.hasAttribute("data-markdown-editor-disable-toolbar") ? false : toolbar,
          placeholder: textarea.getAttribute("placeholder")
      });
  };
  
new_contents: Kanboard.Markdown = function(app) {
      this.app = app;
      this.editor = null;
  };
  
  Kanboard.Markdown.prototype.onPopoverOpened = function() {
      this.listen();
  };
  
  Kanboard.Markdown.prototype.onPopoverClosed = function() {
      this.listen();
  };
  
  Kanboard.Markdown.prototype.listen = function() {
      var editors = $(".markdown-editor");
  
      if (this.editor) {
          this.destroy();
      }
  
      if (editors.length > 0) {
          this.show(editors[0]);
      }
  };
  
  Kanboard.Markdown.prototype.destroy = function() {
      var cm = this.editor.codemirror;
      var wrapper = cm.getWrapperElement();
  
      for (var item in ["toolbar", "statusbar", "sideBySide"]) {
          if (this.editor.gui[item]) {
              wrapper.parentNode.removeChild(this.editor.gui[item]);
          }
      }
  
      cm.toTextArea();
      this.editor = null;
  };
  
  Kanboard.Markdown.prototype.show = function(textarea) {
      var toolbar = ["bold", "italic", "strikethrough", "heading", "|", "unordered-list", "ordered-list", "link", "|", "code", "table", "preview"];
  
      this.editor = new SimpleMDE({
          element: textarea,
          status: false,
          toolbarTips: false,
          autoDownloadFontAwesome: false,
          spellChecker: false,
          autosave: {
              enabled: false
          },
          shortcuts: { 
              "toggleBlockquote": null,
              "toggleUnorderedList": null,
              "toggleOrderedList: null
          }
              
          forceSync: true,
          blockStyles: {
              italic: "_"
          },
          toolbar: textarea.hasAttribute("data-markdown-editor-disable-toolbar") ? false : toolbar,
          placeholder: textarea.getAttribute("placeholder")
      });
  };
  
subject: Update Markdown.js