mirror of
https://github.com/codex-team/editor.js
synced 2024-04-28 12:52:57 +02:00
83 lines
1.4 KiB
JavaScript
83 lines
1.4 KiB
JavaScript
/**
|
|
* Code Plugin\
|
|
* Creates code tag and adds content to this tag
|
|
*/
|
|
|
|
var code = (function(code_plugin) {
|
|
|
|
var baseClass = "ce-code";
|
|
|
|
/**
|
|
* Make initial header block
|
|
* @param {object} JSON with block data
|
|
* @return {Element} element to append
|
|
*/
|
|
var make_ = function (data) {
|
|
|
|
var tag = codex.editor.draw.node('TEXTAREA', [baseClass], {});
|
|
|
|
if (data && data.text) {
|
|
tag.value = data.text;
|
|
}
|
|
|
|
return tag;
|
|
};
|
|
|
|
/**
|
|
* Escapes HTML chars
|
|
*
|
|
* @param {string} input
|
|
* @return {string} — escaped string
|
|
*/
|
|
var escapeHTML_ = function (input) {
|
|
|
|
var div = document.createElement('DIV'),
|
|
text = document.createTextNode(input);
|
|
|
|
div.appendChild(text);
|
|
|
|
return div.innerHTML;
|
|
|
|
};
|
|
|
|
/**
|
|
* Method to render HTML block from JSON
|
|
*/
|
|
code_plugin.render = function (data) {
|
|
|
|
return make_(data);
|
|
};
|
|
|
|
/**
|
|
* Method to extract JSON data from HTML block
|
|
*/
|
|
code_plugin.save = function (blockContent) {
|
|
|
|
var escaped = escapeHTML_(blockContent.value),
|
|
data = {
|
|
text : escaped
|
|
};
|
|
|
|
|
|
return data;
|
|
|
|
};
|
|
|
|
code_plugin.validate = function (data) {
|
|
|
|
if (data.text.trim() == '')
|
|
return;
|
|
|
|
return true;
|
|
};
|
|
|
|
code_plugin.destroy = function () {
|
|
|
|
code = null;
|
|
|
|
};
|
|
|
|
return code_plugin;
|
|
|
|
})({});
|