/**
 * Create POST request to parse markdown
 */
$(function() {
  /* variable */
  var editFlag  = false;
  var $textarea = $('textarea');
  var $loding   = $('#cssload-loader');
  var $preview  = $('.preview-body');

  /* functions */
  // 受け取った内容でpreview内を書き換え
  var makePreview = function(body) {
    $preview.html(body);
  };

  // 編集中のデータを取得
  var getMarkdown = function() {
    return $textarea.val();
  };

  // アクセス用トークン取得
  var getLaravelToken = function() {
    return $('input[name=_token]').val();
  }

  /* Event listener */
  $('.preview').click(function() {
    // 未編集の場合、POSTしない
    if(editFlag) {
      return;
    }
    // POST request
    $.ajax({
      type: 'POST',
      url: '/items/parse',
      timeout: 5000,
      data: {
        'md'    : getMarkdown(),
        '_token': getLaravelToken()
      },
      success: function(msg) {
        makePreview(msg['html']);
        editFlag = true;
      },
      error: function() {
        makePreview('<h3 style="text-align: center">Something error...</h3>');
      }
    });
  });

  $textarea.keyup(function() {
    editFlag = false;
  });

  $(document)
    .ajaxStart(function() {
      $preview.hide();
      $loding.show();
    })
    .ajaxStop(function() {
      $loding.hide();
      $preview.show();
    });
});

@@ -318,16 +318,122 @@
 (body);%0A
+    // highlight.js%0A    $('pre code').each(function(i, block) %7B%0A      hljs.highlightBlock(block);%0A    %7D);%0A
   %7D;%0A%0A  

use highlight.js when preview enable #27