<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" /> 
  <title>summernote</title>
  <!-- include jquery -->
  <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.4/jquery.js"></script> 

  <!-- include libraries BS3 -->
  <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css" />
  <script type="text/javascript" src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
  <link rel="stylesheet" href="//netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.min.css" />

  <!-- include summernote -->
  <link rel="stylesheet" href="../dist/summernote.css">

  <script type="text/javascript" src="../dist/summernote.js"></script>
  <script type="text/javascript" src="../lang/summernote-ko-KR.js"></script>

  <script type="text/javascript">
    $(document).ready(function () {
      var self = this;

      // load github's emoji list
      $.ajax({
        url: 'https://api.github.com/emojis'
      }).then(function (data) {
        var emojis = Object.keys(data);
        var emojiUrls = data;

        $('.summernote').summernote({
          height: 300,
          hintDirection: 'top',
          hint: [{
            search: function (keyword, callback) {
              callback($.grep(emojis, function (item) {
                return item.indexOf(keyword)  === 0;
              }));
            },
            match: /\B:([\-+\w]+)$/,
            template: function (item) {
              var content = emojiUrls[item];
              return '<img src="' + content + '" width="20" /> :' + item + ':';
            },
            content: function (item) {
              var url = emojiUrls[item];
              if (url) {
                return $('<img />').attr('src', url).css('width', 20)[0];
              }
              return '';
            }
          }]
        });
      });
    });
  </script>
</head>
<body>
<textarea class="summernote">Type text start with ":". For example, :smile or :+1:.</textarea>
</body>
</html>