Closed lenamtl closed 8 years ago
I have a version working on CoLearnr. Need to clean it up and create a separate project. Please give me few days. Screenshot attached.
Ok great :)
I'm trying to do exactly as that!
Can someone help me on how to create a plugin button that shows a list of font awesome icons to insert?
I cannot find any documentation on how to create a plugin =/
Thanks! PS: I love summernote! ;)
EDIT: Nevermind... Just found the summernote-ext-hello example... Gonna do a font awesome plugin.
Here, i've done a small plugin that lists all the font-awesome plugins.
(function (factory) {
if (typeof define === 'function' && define.amd) {
define(['jquery'], factory);
} else {
factory(window.jQuery);
}
}(function ($) {
var tmpl = $.summernote.renderer.getTemplate();
var editor = $.summernote.eventHandler.getEditor();
var webAppIcons = ['fa-adjust','fa-anchor','fa-archive','fa-area-chart','fa-arrows','fa-arrows-h','fa-arrows-v','fa-asterisk','fa-at','fa-automobile','fa-ban','fa-bank','fa-bar-chart','fa-bar-chart-o','fa-barcode','fa-bars','fa-beer','fa-bell','fa-bell-o','fa-bell-slash','fa-bell-slash-o','fa-bicycle','fa-binoculars','fa-birthday-cake','fa-bolt','fa-bomb','fa-book','fa-bookmark','fa-bookmark-o','fa-briefcase','fa-bug','fa-building','fa-building-o','fa-bullhorn','fa-bullseye','fa-bus','fa-cab','fa-calculator','fa-calendar','fa-calendar-o','fa-camera','fa-camera-retro','fa-car','fa-caret-square-o-down','fa-caret-square-o-left','fa-caret-square-o-right','fa-caret-square-o-up','fa-cc','fa-certificate','fa-check','fa-check-circle','fa-check-circle-o','fa-check-square','fa-check-square-o','fa-child','fa-circle','fa-circle-o','fa-circle-o-notch','fa-circle-thin','fa-clock-o','fa-close','fa-cloud','fa-cloud-download','fa-cloud-upload','fa-code','fa-code-fork','fa-coffee','fa-cog','fa-cogs','fa-comment','fa-comment-o','fa-comments','fa-comments-o','fa-compass','fa-copyright','fa-credit-card','fa-crop','fa-crosshairs','fa-cube','fa-cubes','fa-cutlery','fa-dashboard','fa-database','fa-desktop','fa-dot-circle-o','fa-download','fa-edit','fa-ellipsis-h','fa-ellipsis-v','fa-envelope','fa-envelope-o','fa-envelope-square','fa-eraser','fa-exchange','fa-exclamation','fa-exclamation-circle','fa-exclamation-triangle','fa-external-link','fa-external-link-square','fa-eye','fa-eye-slash','fa-eyedropper','fa-fax','fa-female','fa-fighter-jet','fa-file-archive-o','fa-file-audio-o','fa-file-code-o','fa-file-excel-o','fa-file-image-o','fa-file-movie-o','fa-file-pdf-o','fa-file-photo-o','fa-file-picture-o','fa-file-powerpoint-o','fa-file-sound-o','fa-file-video-o','fa-file-word-o','fa-file-zip-o','fa-film','fa-filter','fa-fire','fa-fire-extinguisher','fa-flag','fa-flag-checkered','fa-flag-o','fa-flash','fa-flask','fa-folder','fa-folder-o','fa-folder-open','fa-folder-open-o','fa-frown-o','fa-futbol-o','fa-gamepad','fa-gavel','fa-gear','fa-gears','fa-gift','fa-glass','fa-globe','fa-graduation-cap','fa-group','fa-hdd-o','fa-headphones','fa-heart','fa-heart-o','fa-history','fa-home','fa-image','fa-inbox','fa-info','fa-info-circle','fa-institution','fa-key','fa-keyboard-o','fa-language','fa-laptop','fa-leaf','fa-legal','fa-lemon-o','fa-level-down','fa-level-up','fa-life-bouy','fa-life-buoy','fa-life-ring','fa-life-saver','fa-lightbulb-o','fa-line-chart','fa-location-arrow','fa-lock','fa-magic','fa-magnet','fa-mail-forward','fa-mail-reply','fa-mail-reply-all','fa-male','fa-map-marker','fa-meh-o','fa-microphone','fa-microphone-slash','fa-minus','fa-minus-circle','fa-minus-square','fa-minus-square-o','fa-mobile','fa-mobile-phone','fa-money','fa-moon-o','fa-mortar-board','fa-music','fa-navicon','fa-newspaper-o','fa-paint-brush','fa-paper-plane','fa-paper-plane-o','fa-paw','fa-pencil','fa-pencil-square','fa-pencil-square-o','fa-phone','fa-phone-square','fa-photo','fa-picture-o','fa-pie-chart','fa-plane','fa-plug','fa-plus','fa-plus-circle','fa-plus-square','fa-plus-square-o','fa-power-off','fa-print','fa-puzzle-piece','fa-qrcode','fa-question','fa-question-circle','fa-quote-left','fa-quote-right','fa-random','fa-recycle','fa-refresh','fa-remove','fa-reorder','fa-reply','fa-reply-all','fa-retweet','fa-road','fa-rocket','fa-rss','fa-rss-square','fa-search','fa-search-minus','fa-search-plus','fa-send','fa-send-o','fa-share','fa-share-alt','fa-share-alt-square','fa-share-square','fa-share-square-o','fa-shield','fa-shopping-cart','fa-sign-in','fa-sign-out','fa-signal','fa-sitemap','fa-sliders','fa-smile-o','fa-soccer-ball-o','fa-sort','fa-sort-alpha-asc','fa-sort-alpha-desc','fa-sort-amount-asc','fa-sort-amount-desc','fa-sort-asc','fa-sort-desc','fa-sort-down','fa-sort-numeric-asc','fa-sort-numeric-desc','fa-sort-up','fa-space-shuttle','fa-spinner','fa-spoon','fa-square','fa-square-o','fa-star','fa-star-half','fa-star-half-empty','fa-star-half-full','fa-star-half-o','fa-star-o','fa-suitcase','fa-sun-o','fa-support','fa-tablet','fa-tachometer','fa-tag','fa-tags','fa-tasks','fa-taxi','fa-terminal','fa-thumb-tack','fa-thumbs-down','fa-thumbs-o-down','fa-thumbs-o-up','fa-thumbs-up','fa-ticket','fa-times','fa-times-circle','fa-times-circle-o','fa-tint','fa-toggle-down','fa-toggle-left','fa-toggle-off','fa-toggle-on','fa-toggle-right','fa-toggle-up','fa-trash','fa-trash-o','fa-tree','fa-trophy','fa-truck','fa-tty','fa-umbrella','fa-university','fa-unlock','fa-unlock-alt','fa-unsorted','fa-upload','fa-user','fa-users','fa-video-camera','fa-volume-down','fa-volume-off','fa-volume-up','fa-warning','fa-wheelchair','fa-wifi','fa-wrench'];
var fileTypeIcons = ['fa-file','fa-file-archive-o','fa-file-audio-o','fa-file-code-o','fa-file-excel-o','fa-file-image-o','fa-file-movie-o','fa-file-o','fa-file-pdf-o','fa-file-photo-o ','fa-file-picture-o ','fa-file-powerpoint-o','fa-file-sound-o ','fa-file-text','fa-file-text-o','fa-file-video-o','fa-file-word-o','fa-file-zip-o'];
var spinnerIcons = ['fa-circle-o-notch','fa-cog','fa-gear ','fa-refresh','fa-spinner'];
var formIcons = ['fa-check-square','fa-check-square-o','fa-circle','fa-circle-o','fa-dot-circle-o','fa-minus-square','fa-minus-square-o','fa-plus-square','fa-plus-square-o','fa-square','fa-square-o'];
var paymentIcons = ['fa-cc-amex','fa-cc-discover','fa-cc-mastercard','fa-cc-paypal','fa-cc-stripe','fa-cc-visa','fa-credit-card','fa-google-wallet','fa-paypal'];
var chartIcons = ['fa-area-chart','fa-bar-chart','fa-bar-chart-o ','fa-line-chart','fa-pie-chart'];
var currencyIcons = ['fa-bitcoin','fa-btc','fa-cny','fa-dollar','fa-eur','fa-euro','fa-gbp','fa-ils','fa-inr','fa-jpy','fa-krw','fa-money','fa-rmb','fa-rouble','fa-rub','fa-ruble','fa-rupee','fa-shekel','fa-sheqel ','fa-try','fa-turkish-lira ','fa-usd','fa-won','fa-yen'];
var textEditorIcons = ['fa-align-center','fa-align-justify','fa-align-left','fa-align-right','fa-bold','fa-chain','fa-chain-broken','fa-clipboard','fa-columns','fa-copy','fa-cut','fa-dedent','fa-eraser','fa-file','fa-file-o','fa-file-text','fa-file-text-o','fa-files-o','fa-floppy-o','fa-font','fa-header','fa-indent','fa-italic','fa-link','fa-list','fa-list-alt','fa-list-ol','fa-list-ul','fa-outdent','fa-paperclip','fa-paragraph','fa-paste','fa-repeat','fa-rotate-left','fa-rotate-right','fa-save','fa-scissors','fa-strikethrough','fa-subscript','fa-superscript','fa-table','fa-text-height','fa-text-width','fa-th','fa-th-large','fa-th-list','fa-underline','fa-undo','fa-unlink'];
var directionalIcons = ['fa-angle-double-down','fa-angle-double-left','fa-angle-double-right','fa-angle-double-up','fa-angle-down','fa-angle-left','fa-angle-right','fa-angle-up','fa-arrow-circle-down','fa-arrow-circle-left','fa-arrow-circle-o-down','fa-arrow-circle-o-left','fa-arrow-circle-o-right','fa-arrow-circle-o-up','fa-arrow-circle-right','fa-arrow-circle-up','fa-arrow-down','fa-arrow-left','fa-arrow-right','fa-arrow-up','fa-arrows','fa-arrows-alt','fa-arrows-h','fa-arrows-v','fa-caret-down','fa-caret-left','fa-caret-right','fa-caret-square-o-down','fa-caret-square-o-left','fa-caret-square-o-right','fa-caret-square-o-up','fa-caret-up','fa-chevron-circle-down','fa-chevron-circle-left','fa-chevron-circle-right','fa-chevron-circle-up','fa-chevron-down','fa-chevron-left','fa-chevron-right','fa-chevron-up','fa-hand-o-down','fa-hand-o-left','fa-hand-o-right','fa-hand-o-up','fa-long-arrow-down','fa-long-arrow-left','fa-long-arrow-right','fa-long-arrow-up','fa-toggle-down','fa-toggle-left','fa-toggle-right','fa-toggle-up'];
var videoIcons = ['fa-arrows-alt','fa-backward','fa-compress','fa-eject','fa-expand','fa-fast-backward','fa-fast-forward','fa-forward','fa-pause','fa-play','fa-play-circle','fa-play-circle-o','fa-step-backward','fa-step-forward','fa-stop','fa-youtube-play'];
var brandIcons = ['fa-adn','fa-android','fa-angellist','fa-apple','fa-behance','fa-behance-square','fa-bitbucket','fa-bitbucket-square','fa-bitcoin','fa-btc','fa-cc-amex','fa-cc-discover','fa-cc-mastercard','fa-cc-paypal','fa-cc-stripe','fa-cc-visa','fa-codepen','fa-css3','fa-delicious','fa-deviantart','fa-digg','fa-dribbble','fa-dropbox','fa-drupal','fa-empire','fa-facebook','fa-facebook-square','fa-flickr','fa-foursquare','fa-ge','fa-git','fa-git-square','fa-github','fa-github-alt','fa-github-square','fa-gittip','fa-google','fa-google-plus','fa-google-plus-square','fa-google-wallet','fa-hacker-news','fa-html5','fa-instagram','fa-ioxhost','fa-joomla','fa-jsfiddle','fa-lastfm','fa-lastfm-square','fa-linkedin','fa-linkedin-square','fa-linux','fa-maxcdn','fa-meanpath','fa-openid','fa-pagelines','fa-paypal','fa-pied-piper','fa-pied-piper-alt','fa-pinterest','fa-pinterest-square','fa-qq','fa-ra','fa-rebel','fa-reddit','fa-reddit-square','fa-renren','fa-share-alt','fa-share-alt-square','fa-skype','fa-slack','fa-slideshare','fa-soundcloud','fa-spotify','fa-stack-exchange','fa-stack-overflow','fa-steam','fa-steam-square','fa-stumbleupon','fa-stumbleupon-circle','fa-tencent-weibo','fa-trello','fa-tumblr','fa-tumblr-square','fa-twitch','fa-twitter','fa-twitter-square','fa-vimeo-square','fa-vine','fa-vk','fa-wechat','fa-weibo','fa-weixin','fa-windows','fa-wordpress','fa-xing','fa-xing-square','fa-yahoo','fa-yelp','fa-youtube','fa-youtube-play'];
var medicalIcons = ['fa-ambulance','fa-h-square','fa-hospital-o','fa-medkit','fa-plus-square','fa-stethoscope','fa-user-md','fa-wheelchair'];
function addIconsList(titulo, array) {
var list = '';
$.each(array, function(i,v){
list += '<a data-event="fontAwesomeIcons" href="#" data-value="' + v + '"><span class="fa ' + v + '"></span></a>';
});
return '<li role="presentation" class="dropdown-header">' + titulo + '</li><li>' + list + '</li>';
}
// add plugin
$.summernote.addPlugin({
name: 'fontAwesomeIcons',
buttons: {
fontAwesomeIcons: function () {
var dropdown = '<ul class="dropdown-menu fontAwesomeIconsDropdown">';
dropdown += addIconsList("Ícones de Aplicação Web", webAppIcons);
dropdown += addIconsList("Ícones de Arquivos", fileTypeIcons);
dropdown += addIconsList("Ícones Spinners ", spinnerIcons);
dropdown += addIconsList("Ícones de Formulários", formIcons);
dropdown += addIconsList("Ícones de Pagamento", paymentIcons);
dropdown += addIconsList("Ícones de Gráficos", chartIcons);
dropdown += addIconsList("Ícones Monetários", currencyIcons);
dropdown += addIconsList("Ícones de Texto", textEditorIcons);
dropdown += addIconsList("Ícones Direcionais", directionalIcons);
dropdown += addIconsList("Ícones de Vídeos", videoIcons);
dropdown += addIconsList("Ícones de Marcas", brandIcons);
dropdown += addIconsList("Ícones Médicos ", medicalIcons);
dropdown += "</ul>";
return tmpl.iconButton('fa fa-smile-o', {
title: 'Ícones',
hide: true,
dropdown : dropdown
});
}
},
events: {
fontAwesomeIcons: function (layoutInfo, value) {
var $editable = layoutInfo.editable();
var icon = $('<span class="fa ' + value + '"></span>');
editor.insertNode($editable, icon[0], true);
}
}
});
}));
Also, add this CSS to your code:
.fontAwesomeIconsDropdown {
width: 400px;
height: 400px;
overflow: auto;
}
.fontAwesomeIconsDropdown a {
padding: 3px !important;
display: inline-block !important;
}
Thank you @prabhu and @renanleandrof for creating great plugins on summernote. We have a plan to introduce useful and popular plugins to our site and docs. So please inform us again when you ready to place your plugin as an open source.
Feel free to make it better and to publish this code... ;) Em 26/01/2015 10:47, "Park Hyunwoo" notifications@github.com escreveu:
Thank you @prabhu https://github.com/prabhu and @renanleandrof https://github.com/renanleandrof for creating great plugins on summernote. We have a plan to introduce useful and popular plugins to our site and docs. So please inform us again when you ready to place your plugin as an open source.
— Reply to this email directly or view it on GitHub https://github.com/summernote/summernote/issues/842#issuecomment-71455678 .
Here is a quick plugin for emojis https://github.com/nilobarp/summernote-ext-emoji
Suggestions and improvements are welcome.
@nilobarp :+1:
We have hint popover at develop branch. If You want to how it works, check out below links. https://github.com/summernote/summernote/pull/1352
This will be released at v0.7.0
Anyone have working fontawesome plugin for latest version of summernote? Be really nice to be able to edit / insert fontawesome icons. Seems just about every bootstrap based site/template has fontawesome icons these days.
It will be nice to have an iconpicker as a plugin https://github.com/victor-valencia/bootstrap-iconpicker http://mjolnic.github.io/fontawesome-iconpicker/