Add consultation module assets and libraries
This commit is contained in:
@@ -0,0 +1,90 @@
|
||||
/* globals Prism */
|
||||
(function ($, Prism) {
|
||||
'use strict';
|
||||
|
||||
// My plugin default options
|
||||
var defaultOptions = {};
|
||||
|
||||
function highlightIt(text, language) {
|
||||
return [
|
||||
'<pre class="language-' + language + '">',
|
||||
'<code class="language-' + language + '">' + Prism.highlight(text, Prism.languages[language]) + '</code>',
|
||||
'</pre>',
|
||||
].join('');
|
||||
}
|
||||
|
||||
// If my plugin is a button
|
||||
function buildButtonDef(trumbowyg) {
|
||||
return {
|
||||
fn: function () {
|
||||
var $modal = trumbowyg.openModal('Code', [
|
||||
'<div class="' + trumbowyg.o.prefix + 'highlight-form-group">',
|
||||
' <select class="' + trumbowyg.o.prefix + 'highlight-form-control language">',
|
||||
(function () {
|
||||
var options = '';
|
||||
|
||||
for (var lang in Prism.languages) {
|
||||
if (Prism.languages.hasOwnProperty(lang)) {
|
||||
options += '<option value="' + lang + '">' + lang + '</option>';
|
||||
}
|
||||
}
|
||||
|
||||
return options;
|
||||
})(),
|
||||
' </select>',
|
||||
'</div>',
|
||||
'<div class="' + trumbowyg.o.prefix + 'highlight-form-group">',
|
||||
' <textarea class="' + trumbowyg.o.prefix + 'highlight-form-control code"></textarea>',
|
||||
'</div>',
|
||||
].join('\n')),
|
||||
$language = $modal.find('.language'),
|
||||
$code = $modal.find('.code');
|
||||
|
||||
// Listen clicks on modal box buttons
|
||||
$modal.on('tbwconfirm', function () {
|
||||
trumbowyg.restoreRange();
|
||||
trumbowyg.execCmd('insertHTML', highlightIt($code.val(), $language.val()));
|
||||
trumbowyg.execCmd('insertHTML', '<p><br></p>');
|
||||
|
||||
trumbowyg.closeModal();
|
||||
});
|
||||
|
||||
$modal.on('tbwcancel', function () {
|
||||
trumbowyg.closeModal();
|
||||
});
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
$.extend(true, $.trumbowyg, {
|
||||
// Add some translations
|
||||
langs: {
|
||||
// jshint camelcase:false
|
||||
en: {
|
||||
highlight: 'Code syntax highlight'
|
||||
},
|
||||
pt_br: {
|
||||
highlight: 'Realçar sintaxe de código'
|
||||
},
|
||||
ko: {
|
||||
highlight: '코드 문법 하이라이트'
|
||||
},
|
||||
// jshint camelcase:true
|
||||
},
|
||||
// Add our plugin to Trumbowyg registered plugins
|
||||
plugins: {
|
||||
highlight: {
|
||||
init: function (trumbowyg) {
|
||||
// Fill current Trumbowyg instance with my plugin default options
|
||||
trumbowyg.o.plugins.highlight = $.extend(true, {},
|
||||
defaultOptions,
|
||||
trumbowyg.o.plugins.highlight || {}
|
||||
);
|
||||
|
||||
// If my plugin is a button
|
||||
trumbowyg.addBtnDef('highlight', buildButtonDef(trumbowyg));
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
})(jQuery, Prism);
|
||||
Reference in New Issue
Block a user