hint-emoji.html 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
  6. <title>summernote</title>
  7. <!-- include jquery -->
  8. <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"></script>
  9. <!-- include libraries BS -->
  10. <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/css/bootstrap.css" />
  11. <script src="//cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.3/umd/popper.js"></script>
  12. <script src="//maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta/js/bootstrap.js"></script>
  13. <!-- include summernote -->
  14. <link rel="stylesheet" href="../dist/summernote-bs4.css">
  15. <script type="text/javascript" src="../dist/summernote-bs4.js"></script>
  16. <script type="text/javascript" src="../lang/summernote-ko-KR.js"></script>
  17. <script type="text/javascript">
  18. $(document).ready(function () {
  19. var self = this;
  20. // load github's emoji list
  21. $.ajax({
  22. url: 'https://api.github.com/emojis'
  23. }).then(function (data) {
  24. var emojis = Object.keys(data);
  25. var emojiUrls = data;
  26. $('.summernote').summernote({
  27. height: 300,
  28. hintDirection: 'top',
  29. hint: [{
  30. search: function (keyword, callback) {
  31. callback($.grep(emojis, function (item) {
  32. return item.indexOf(keyword) === 0;
  33. }));
  34. },
  35. match: /\B:([\-+\w]+)$/,
  36. template: function (item) {
  37. var content = emojiUrls[item];
  38. return '<img src="' + content + '" width="20" /> :' + item + ':';
  39. },
  40. content: function (item) {
  41. var url = emojiUrls[item];
  42. if (url) {
  43. return $('<img />').attr('src', url).css('width', 20)[0];
  44. }
  45. return '';
  46. }
  47. }]
  48. });
  49. });
  50. });
  51. </script>
  52. </head>
  53. <body>
  54. <textarea class="summernote">Type text start with ":". For example, :smile or :+1:.</textarea>
  55. </body>
  56. </html>