medium-editor-rails 0.8.0 → 0.9.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 +31 -14
- metadata +5 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ca3c5a67bdf9a7e031605174b1f6e8e21e33c5e7
|
4
|
+
data.tar.gz: 34354ac8e82fc28410759f143a7a4841e8fb11ad
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e0b48b045340e3edeb01bff8c87c35fd1085c9577b4adf9c6c9de1aba4ba951fa4bc7f6701ead472384fdc38ab94489ab4dd1a3510f4d09b283a0f1809015cc7
|
7
|
+
data.tar.gz: cb923bb2e00562718cfcc048c498dee4c866b81de940cc44ca46dd6da4bf369d81b1e7299950f110b52cb52cde7c2f07587afa30056e17c97df81d7df96ef913
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
|
2
2
|
#### [Current]
|
3
|
+
* [e5c7084](../../commit/e5c7084) - __(Ahmet Sezgin Duran)__ Update Medium Editor files
|
4
|
+
|
5
|
+
#### 0.8.0
|
6
|
+
* [49bc574](../../commit/49bc574) - __(Ahmet Sezgin Duran)__ Bump versions 0.8.0 and 1.8.0
|
3
7
|
* [fe79879](../../commit/fe79879) - __(Ahmet Sezgin Duran)__ Update Medium Editor files
|
4
8
|
|
5
9
|
#### 0.7.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.8.
|
10
|
+
The latest version of Medium Editor bundled by this gem is [1.8.5](https://github.com/daviferreira/medium-editor/releases)
|
11
11
|
|
12
12
|
## Installation
|
13
13
|
|
@@ -105,6 +105,8 @@ if (typeof module === 'object') {
|
|
105
105
|
disableReturn: false,
|
106
106
|
disableDoubleReturn: false,
|
107
107
|
disableToolbar: false,
|
108
|
+
disableEditing: false,
|
109
|
+
elementsContainer: false,
|
108
110
|
firstHeader: 'h3',
|
109
111
|
forcePlainText: true,
|
110
112
|
placeholder: 'Type your text',
|
@@ -118,10 +120,7 @@ if (typeof module === 'object') {
|
|
118
120
|
isIE: ((navigator.appName === 'Microsoft Internet Explorer') || ((navigator.appName === 'Netscape') && (new RegExp('Trident/.*rv:([0-9]{1,}[.0-9]{0,})').exec(navigator.userAgent) !== null))),
|
119
121
|
|
120
122
|
init: function (elements, options) {
|
121
|
-
this.
|
122
|
-
if (this.elements.nodeType === 1) {
|
123
|
-
this.elements = [this.elements];
|
124
|
-
}
|
123
|
+
this.setElementSelection(elements);
|
125
124
|
if (this.elements.length === 0) {
|
126
125
|
return;
|
127
126
|
}
|
@@ -141,10 +140,13 @@ if (typeof module === 'object') {
|
|
141
140
|
},
|
142
141
|
|
143
142
|
initElements: function () {
|
143
|
+
this.updateElementList();
|
144
144
|
var i,
|
145
145
|
addToolbar = false;
|
146
146
|
for (i = 0; i < this.elements.length; i += 1) {
|
147
|
-
this.elements[i].
|
147
|
+
if (!this.options.disableEditing && !this.elements[i].getAttribute('data-disable-editing')) {
|
148
|
+
this.elements[i].setAttribute('contentEditable', true);
|
149
|
+
}
|
148
150
|
if (!this.elements[i].getAttribute('data-placeholder')) {
|
149
151
|
this.elements[i].setAttribute('data-placeholder', this.options.placeholder);
|
150
152
|
}
|
@@ -156,6 +158,9 @@ if (typeof module === 'object') {
|
|
156
158
|
}
|
157
159
|
// Init toolbar
|
158
160
|
if (addToolbar) {
|
161
|
+
if (!this.options.elementsContainer) {
|
162
|
+
this.options.elementsContainer = document.body;
|
163
|
+
}
|
159
164
|
this.initToolbar()
|
160
165
|
.bindButtons()
|
161
166
|
.bindAnchorForm()
|
@@ -164,6 +169,18 @@ if (typeof module === 'object') {
|
|
164
169
|
return this;
|
165
170
|
},
|
166
171
|
|
172
|
+
setElementSelection: function (selector) {
|
173
|
+
this.elementSelection = selector;
|
174
|
+
this.updateElementList();
|
175
|
+
},
|
176
|
+
|
177
|
+
updateElementList: function () {
|
178
|
+
this.elements = typeof this.elementSelection === 'string' ? document.querySelectorAll(this.elementSelection) : this.elementSelection;
|
179
|
+
if (this.elements.nodeType === 1) {
|
180
|
+
this.elements = [this.elements];
|
181
|
+
}
|
182
|
+
},
|
183
|
+
|
167
184
|
serialize: function () {
|
168
185
|
var i,
|
169
186
|
elementid,
|
@@ -369,7 +386,7 @@ if (typeof module === 'object') {
|
|
369
386
|
toolbar.className = 'medium-editor-toolbar';
|
370
387
|
toolbar.appendChild(this.toolbarButtons());
|
371
388
|
toolbar.appendChild(this.toolbarFormAnchor());
|
372
|
-
|
389
|
+
this.options.elementsContainer.appendChild(toolbar);
|
373
390
|
return toolbar;
|
374
391
|
},
|
375
392
|
|
@@ -782,20 +799,20 @@ if (typeof module === 'object') {
|
|
782
799
|
},
|
783
800
|
|
784
801
|
// TODO: break method
|
785
|
-
showAnchorPreview: function (
|
802
|
+
showAnchorPreview: function (anchorEl) {
|
786
803
|
if (this.anchorPreview.classList.contains('medium-editor-anchor-preview-active')) {
|
787
804
|
return true;
|
788
805
|
}
|
789
806
|
|
790
807
|
var self = this,
|
791
808
|
buttonHeight = 40,
|
792
|
-
boundary =
|
809
|
+
boundary = anchorEl.getBoundingClientRect(),
|
793
810
|
middleBoundary = (boundary.left + boundary.right) / 2,
|
794
811
|
halfOffsetWidth,
|
795
812
|
defaultLeft,
|
796
813
|
timer;
|
797
814
|
|
798
|
-
self.anchorPreview.querySelector('i').
|
815
|
+
self.anchorPreview.querySelector('i').textContent = anchorEl.href;
|
799
816
|
halfOffsetWidth = self.anchorPreview.offsetWidth / 2;
|
800
817
|
defaultLeft = self.options.diffLeft - halfOffsetWidth;
|
801
818
|
|
@@ -806,7 +823,7 @@ if (typeof module === 'object') {
|
|
806
823
|
}
|
807
824
|
}, 100);
|
808
825
|
|
809
|
-
self.observeAnchorPreview(
|
826
|
+
self.observeAnchorPreview(anchorEl);
|
810
827
|
|
811
828
|
self.anchorPreview.classList.add('medium-toolbar-arrow-over');
|
812
829
|
self.anchorPreview.classList.remove('medium-toolbar-arrow-under');
|
@@ -868,7 +885,7 @@ if (typeof module === 'object') {
|
|
868
885
|
anchorPreview.id = 'medium-editor-anchor-preview-' + this.id;
|
869
886
|
anchorPreview.className = 'medium-editor-anchor-preview';
|
870
887
|
anchorPreview.innerHTML = this.anchorPreviewTemplate();
|
871
|
-
|
888
|
+
this.options.elementsContainer.appendChild(anchorPreview);
|
872
889
|
|
873
890
|
anchorPreview.addEventListener('click', function () {
|
874
891
|
self.anchorPreviewClickHandler();
|
@@ -1019,8 +1036,8 @@ if (typeof module === 'object') {
|
|
1019
1036
|
this.isActive = false;
|
1020
1037
|
|
1021
1038
|
if (this.toolbar !== undefined) {
|
1022
|
-
|
1023
|
-
|
1039
|
+
this.options.elementsContainer.removeChild(this.anchorPreview);
|
1040
|
+
this.options.elementsContainer.removeChild(this.toolbar);
|
1024
1041
|
delete this.toolbar;
|
1025
1042
|
delete this.anchorPreview;
|
1026
1043
|
}
|
@@ -1063,7 +1080,7 @@ if (typeof module === 'object') {
|
|
1063
1080
|
if (self.options.cleanPastedHTML && e.clipboardData.getData('text/html')) {
|
1064
1081
|
return self.cleanPaste(e.clipboardData.getData('text/html'));
|
1065
1082
|
}
|
1066
|
-
if (!self.options.disableReturn) {
|
1083
|
+
if (!(self.options.disableReturn || this.getAttribute('data-disable-return'))) {
|
1067
1084
|
paragraphs = e.clipboardData.getData('text/plain').split(/[\r\n]/g);
|
1068
1085
|
for (p = 0; p < paragraphs.length; p += 1) {
|
1069
1086
|
if (paragraphs[p] !== '') {
|
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.9.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-
|
11
|
+
date: 2014-05-01 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Medium Editor integrated in Rails asset pipeline
|
14
14
|
email:
|
@@ -17,7 +17,7 @@ executables: []
|
|
17
17
|
extensions: []
|
18
18
|
extra_rdoc_files: []
|
19
19
|
files:
|
20
|
-
-
|
20
|
+
- .gitignore
|
21
21
|
- CHANGELOG.md
|
22
22
|
- Gemfile
|
23
23
|
- LICENSE.txt
|
@@ -45,12 +45,12 @@ require_paths:
|
|
45
45
|
- lib
|
46
46
|
required_ruby_version: !ruby/object:Gem::Requirement
|
47
47
|
requirements:
|
48
|
-
- -
|
48
|
+
- - '>='
|
49
49
|
- !ruby/object:Gem::Version
|
50
50
|
version: '0'
|
51
51
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
|
-
- -
|
53
|
+
- - '>='
|
54
54
|
- !ruby/object:Gem::Version
|
55
55
|
version: '0'
|
56
56
|
requirements: []
|