medium-editor-rails 0.6.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +4 -0
- data/README.md +1 -1
- data/lib/medium-editor-rails/version.rb +2 -2
- data/vendor/assets/javascripts/medium-editor.js +29 -30
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 554e3a6e3408a75f8e89fc0371beac9b7325a35c
|
4
|
+
data.tar.gz: 0f2118fc0e0f8a4bfb2a6b3f0d655c7257a10c51
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 664af57a4d68e08d935f32bb42f302d47a70c455714d54783e516589a5682e7c55f9304b6bb7bab413c4518a4298688719f719aa723db76ca1337b340aec2c1a
|
7
|
+
data.tar.gz: 1622122cb12a97fe15d3b3942c46d24aac89cc5f66fbc8285992a54401925eed360e4ec5ee0db525494df8e2531be1967e9a4ab45685a901c1e424537f8b9852
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
|
2
2
|
#### [Current]
|
3
|
+
* [99ba025](../../commit/99ba025) - __(Ahmet Sezgin Duran)__ Update Medium Editor files
|
4
|
+
|
5
|
+
#### 0.6.0
|
6
|
+
* [0f80209](../../commit/0f80209) - __(Ahmet Sezgin Duran)__ Bump versions 0.6.0 and 1.7.3
|
3
7
|
* [72a817d](../../commit/72a817d) - __(Ahmet Sezgin Duran)__ Update Medium Editor files
|
4
8
|
|
5
9
|
#### 0.5.0
|
data/README.md
CHANGED
@@ -7,7 +7,7 @@ This gem integrates [Medium Editor](https://github.com/daviferreira/medium-edito
|
|
7
7
|
|
8
8
|
## Version
|
9
9
|
|
10
|
-
The latest version of Medium Editor bundled by this gem is [1.7.
|
10
|
+
The latest version of Medium Editor bundled by this gem is [1.7.5](https://github.com/daviferreira/medium-editor/releases)
|
11
11
|
|
12
12
|
## Installation
|
13
13
|
|
@@ -117,7 +117,6 @@ if (typeof module === 'object') {
|
|
117
117
|
if (this.elements.length === 0) {
|
118
118
|
return;
|
119
119
|
}
|
120
|
-
this.isActive = true;
|
121
120
|
this.parentElements = ['p', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'blockquote', 'pre'];
|
122
121
|
this.id = document.querySelectorAll('.medium-editor-toolbar').length + 1;
|
123
122
|
this.options = extend(options, this.defaults);
|
@@ -125,6 +124,7 @@ if (typeof module === 'object') {
|
|
125
124
|
},
|
126
125
|
|
127
126
|
setup: function () {
|
127
|
+
this.isActive = true;
|
128
128
|
this.initElements()
|
129
129
|
.bindSelect()
|
130
130
|
.bindPaste()
|
@@ -173,15 +173,14 @@ if (typeof module === 'object') {
|
|
173
173
|
this.elements[index].addEventListener('keyup', function (e) {
|
174
174
|
var node = getSelectionStart(),
|
175
175
|
tagName;
|
176
|
-
if (node && node.getAttribute('data-medium-element') && node.children.length === 0 &&
|
177
|
-
!(self.options.disableReturn || node.getAttribute('data-disable-return'))) {
|
176
|
+
if (node && node.getAttribute('data-medium-element') && node.children.length === 0 && !(self.options.disableReturn || node.getAttribute('data-disable-return'))) {
|
178
177
|
document.execCommand('formatBlock', false, 'p');
|
179
178
|
}
|
180
179
|
if (e.which === 13) {
|
181
180
|
node = getSelectionStart();
|
182
181
|
tagName = node.tagName.toLowerCase();
|
183
182
|
if (!(self.options.disableReturn || this.getAttribute('data-disable-return')) &&
|
184
|
-
|
183
|
+
tagName !== 'li' && !self.isListItemChild(node)) {
|
185
184
|
if (!e.shiftKey) {
|
186
185
|
document.execCommand('formatBlock', false, 'p');
|
187
186
|
}
|
@@ -271,7 +270,7 @@ if (typeof module === 'object') {
|
|
271
270
|
attrname,
|
272
271
|
buttonLabels = {
|
273
272
|
'bold': '<b>B</b>',
|
274
|
-
'italic'
|
273
|
+
'italic': '<b><i>I</i></b>',
|
275
274
|
'underline': '<b><u>U</u></b>',
|
276
275
|
'superscript': '<b>x<sup>1</sup></b>',
|
277
276
|
'subscript': '<b>x<sub>1</sub></b>',
|
@@ -289,7 +288,7 @@ if (typeof module === 'object') {
|
|
289
288
|
if (buttonLabelType === 'fontawesome') {
|
290
289
|
customButtonLabels = {
|
291
290
|
'bold': '<i class="fa fa-bold"></i>',
|
292
|
-
'italic'
|
291
|
+
'italic': '<i class="fa fa-italic"></i>',
|
293
292
|
'underline': '<i class="fa fa-underline"></i>',
|
294
293
|
'superscript': '<i class="fa fa-superscript"></i>',
|
295
294
|
'subscript': '<i class="fa fa-subscript"></i>',
|
@@ -393,7 +392,7 @@ if (typeof module === 'object') {
|
|
393
392
|
if (this.keepToolbarAlive !== true && !this.options.disableToolbar) {
|
394
393
|
newSelection = window.getSelection();
|
395
394
|
if (newSelection.toString().trim() === '' ||
|
396
|
-
|
395
|
+
(this.options.allowMultiParagraphSelection === false && this.hasMultiParagraphs())) {
|
397
396
|
this.hideToolbarActions();
|
398
397
|
} else {
|
399
398
|
selectionElement = this.getSelectionElement();
|
@@ -407,7 +406,7 @@ if (typeof module === 'object') {
|
|
407
406
|
return this;
|
408
407
|
},
|
409
408
|
|
410
|
-
clickingIntoArchorForm: function(e) {
|
409
|
+
clickingIntoArchorForm: function (e) {
|
411
410
|
var self = this;
|
412
411
|
if (e.type && e.type.toLowerCase() === 'blur' && e.relatedTarget && e.relatedTarget === self.anchorInput) {
|
413
412
|
return true;
|
@@ -443,16 +442,16 @@ if (typeof module === 'object') {
|
|
443
442
|
current = range.commonAncestorContainer,
|
444
443
|
parent = current.parentNode,
|
445
444
|
result,
|
446
|
-
getMediumElement = function(e) {
|
447
|
-
var
|
445
|
+
getMediumElement = function (e) {
|
446
|
+
var localParent = e;
|
448
447
|
try {
|
449
|
-
while (!
|
450
|
-
|
448
|
+
while (!localParent.getAttribute('data-medium-element')) {
|
449
|
+
localParent = localParent.parentNode;
|
451
450
|
}
|
452
451
|
} catch (errb) {
|
453
452
|
return false;
|
454
453
|
}
|
455
|
-
return
|
454
|
+
return localParent;
|
456
455
|
};
|
457
456
|
// First try on current node
|
458
457
|
try {
|
@@ -461,7 +460,7 @@ if (typeof module === 'object') {
|
|
461
460
|
} else {
|
462
461
|
result = getMediumElement(parent);
|
463
462
|
}
|
464
|
-
|
463
|
+
// If not search in the parent nodes.
|
465
464
|
} catch (err) {
|
466
465
|
result = getMediumElement(parent);
|
467
466
|
}
|
@@ -590,7 +589,7 @@ if (typeof module === 'object') {
|
|
590
589
|
// allowing nesting, we need to use outdent
|
591
590
|
// https://developer.mozilla.org/en-US/docs/Rich-Text_Editing_in_Mozilla
|
592
591
|
if (el === 'blockquote' && selectionData.el &&
|
593
|
-
|
592
|
+
selectionData.el.parentNode.tagName.toLowerCase() === 'blockquote') {
|
594
593
|
return document.execCommand('outdent', false, null);
|
595
594
|
}
|
596
595
|
if (selectionData.tagName === el) {
|
@@ -649,7 +648,7 @@ if (typeof module === 'object') {
|
|
649
648
|
this.toolbarActions.style.display = 'block';
|
650
649
|
this.keepToolbarAlive = false;
|
651
650
|
clearTimeout(timer);
|
652
|
-
timer = setTimeout(function() {
|
651
|
+
timer = setTimeout(function () {
|
653
652
|
if (!self.toolbar.classList.contains('medium-editor-toolbar-active')) {
|
654
653
|
self.toolbar.classList.add('medium-editor-toolbar-active');
|
655
654
|
}
|
@@ -695,7 +694,7 @@ if (typeof module === 'object') {
|
|
695
694
|
},
|
696
695
|
|
697
696
|
|
698
|
-
hideAnchorPreview: function() {
|
697
|
+
hideAnchorPreview: function () {
|
699
698
|
this.anchorPreview.classList.remove('medium-editor-anchor-preview-active');
|
700
699
|
},
|
701
700
|
|
@@ -718,7 +717,7 @@ if (typeof module === 'object') {
|
|
718
717
|
defaultLeft = self.options.diffLeft - halfOffsetWidth;
|
719
718
|
|
720
719
|
clearTimeout(timer);
|
721
|
-
timer = setTimeout(function() {
|
720
|
+
timer = setTimeout(function () {
|
722
721
|
if (!self.anchorPreview.classList.contains('medium-editor-anchor-preview-active')) {
|
723
722
|
self.anchorPreview.classList.add('medium-editor-anchor-preview-active');
|
724
723
|
}
|
@@ -741,20 +740,20 @@ if (typeof module === 'object') {
|
|
741
740
|
},
|
742
741
|
|
743
742
|
// TODO: break method
|
744
|
-
observeAnchorPreview: function(anchorEl) {
|
743
|
+
observeAnchorPreview: function (anchorEl) {
|
745
744
|
var self = this,
|
746
745
|
lastOver = (new Date()).getTime(),
|
747
746
|
over = true,
|
748
|
-
stamp = function() {
|
747
|
+
stamp = function () {
|
749
748
|
lastOver = (new Date()).getTime();
|
750
749
|
over = true;
|
751
750
|
},
|
752
|
-
unstamp = function(e) {
|
751
|
+
unstamp = function (e) {
|
753
752
|
if (!e.relatedTarget || !/anchor-preview/.test(e.relatedTarget.className)) {
|
754
753
|
over = false;
|
755
754
|
}
|
756
755
|
},
|
757
|
-
interval_timer = setInterval(function() {
|
756
|
+
interval_timer = setInterval(function () {
|
758
757
|
if (over) {
|
759
758
|
return true;
|
760
759
|
}
|
@@ -788,7 +787,7 @@ if (typeof module === 'object') {
|
|
788
787
|
anchorPreview.innerHTML = this.anchorPreviewTemplate();
|
789
788
|
document.body.appendChild(anchorPreview);
|
790
789
|
|
791
|
-
anchorPreview.addEventListener('click', function() {
|
790
|
+
anchorPreview.addEventListener('click', function () {
|
792
791
|
self.anchorPreviewClickHandler();
|
793
792
|
});
|
794
793
|
|
@@ -797,11 +796,11 @@ if (typeof module === 'object') {
|
|
797
796
|
|
798
797
|
anchorPreviewTemplate: function () {
|
799
798
|
return '<div class="medium-editor-toolbar-anchor-preview" id="medium-editor-toolbar-anchor-preview">' +
|
800
|
-
' <i class="medium-editor-toolbar-anchor-preview-inner"
|
799
|
+
' <i class="medium-editor-toolbar-anchor-preview-inner"></i>' +
|
801
800
|
'</div>';
|
802
801
|
},
|
803
802
|
|
804
|
-
anchorPreviewClickHandler: function(e) {
|
803
|
+
anchorPreviewClickHandler: function (e) {
|
805
804
|
if (this.activeAnchor) {
|
806
805
|
|
807
806
|
var self = this,
|
@@ -811,7 +810,7 @@ if (typeof module === 'object') {
|
|
811
810
|
range.selectNodeContents(self.activeAnchor);
|
812
811
|
sel.removeAllRanges();
|
813
812
|
sel.addRange(range);
|
814
|
-
setTimeout(function() {
|
813
|
+
setTimeout(function () {
|
815
814
|
self.showAnchorForm(self.activeAnchor.href);
|
816
815
|
self.keepToolbarAlive = false;
|
817
816
|
}, 100 + self.options.delay);
|
@@ -821,10 +820,10 @@ if (typeof module === 'object') {
|
|
821
820
|
this.hideAnchorPreview();
|
822
821
|
},
|
823
822
|
|
824
|
-
editorAnchorObserver: function(e) {
|
823
|
+
editorAnchorObserver: function (e) {
|
825
824
|
var self = this,
|
826
825
|
overAnchor = true,
|
827
|
-
leaveAnchor = function() {
|
826
|
+
leaveAnchor = function () {
|
828
827
|
// mark the anchor as no longer hovered, and stop listening
|
829
828
|
overAnchor = false;
|
830
829
|
self.activeAnchor.removeEventListener('mouseout', leaveAnchor);
|
@@ -848,7 +847,7 @@ if (typeof module === 'object') {
|
|
848
847
|
this.activeAnchor.addEventListener('mouseout', leaveAnchor);
|
849
848
|
// show the anchor preview according to the configured delay
|
850
849
|
// if the mouse has not left the anchor tag in that time
|
851
|
-
setTimeout(function() {
|
850
|
+
setTimeout(function () {
|
852
851
|
if (overAnchor) {
|
853
852
|
self.showAnchorPreview(e.target);
|
854
853
|
}
|
@@ -860,7 +859,7 @@ if (typeof module === 'object') {
|
|
860
859
|
|
861
860
|
bindAnchorPreview: function (index) {
|
862
861
|
var self = this;
|
863
|
-
this.elements[index].addEventListener('mouseover', function(e) {
|
862
|
+
this.elements[index].addEventListener('mouseover', function (e) {
|
864
863
|
self.editorAnchorObserver(e);
|
865
864
|
});
|
866
865
|
return this;
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: medium-editor-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.7.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ahmet Sezgin Duran
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-03-
|
11
|
+
date: 2014-03-29 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Medium Editor integrated in Rails asset pipeline
|
14
14
|
email:
|