medium-editor-rails 0.9.1 → 0.9.2
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/medium-editor-rails.gemspec +15 -14
- data/vendor/assets/javascripts/medium-editor.js +39 -6
- data/vendor/assets/stylesheets/medium-editor/medium-editor.css +0 -5
- metadata +31 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3f86fb92e17f8573cfd49a7c6ffe30da374b9e3d
|
4
|
+
data.tar.gz: 08c9f3c73a4d3f94c0aa28d3836cb546f4bc9935
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: adf688674f3a41d3eade1f89d871fb0ec0aef9214035ba0963177ceae54336aecf2e5d7d34b8fdf67b4a0528b50d21955a52ad80e02e183d44cea70d6234460a
|
7
|
+
data.tar.gz: 567bf93c5626609403026cf81c7d9621e8d93701e38350c4f47fd7c2b83d34547ae8198d182b6baf8784239d393bcf6ff37014626643356ce540e121c105443c
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
|
2
2
|
#### [Current]
|
3
|
+
* [1338bb4](../../commit/1338bb4) - __(Ahmet Sezgin Duran)__ Update Medium Editor files
|
4
|
+
|
5
|
+
#### 0.9.1
|
6
|
+
* [20ecac5](../../commit/20ecac5) - __(Ahmet Sezgin Duran)__ Bump versions 0.9.1 and 1.8.6
|
3
7
|
* [f4f2a29](../../commit/f4f2a29) - __(Ahmet Sezgin Duran)__ Update Medium Editor files
|
4
8
|
|
5
9
|
#### 0.9.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.8](https://github.com/daviferreira/medium-editor/releases)
|
11
11
|
|
12
12
|
## Installation
|
13
13
|
|
data/medium-editor-rails.gemspec
CHANGED
@@ -3,18 +3,19 @@ lib = File.expand_path('../lib', __FILE__)
|
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
4
|
require 'medium-editor-rails/version'
|
5
5
|
|
6
|
-
Gem::Specification.new do |
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
6
|
+
Gem::Specification.new do |gem|
|
7
|
+
gem.name = 'medium-editor-rails'
|
8
|
+
gem.version = MediumEditorRails::Rails::VERSION
|
9
|
+
gem.authors = ['Ahmet Sezgin Duran']
|
10
|
+
gem.email = ['marjinalist1@gmail.com']
|
11
|
+
gem.summary = %q{Medium Editor integrated in Rails asset pipeline}
|
12
|
+
gem.description = gem.summary
|
13
|
+
gem.homepage = 'https://github.com/marjinal1st/medium-editor-rails'
|
14
|
+
gem.license = 'MIT'
|
15
15
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
16
|
+
gem.files = `git ls-files`.split($/)
|
17
|
+
gem.require_paths = ['lib']
|
18
|
+
|
19
|
+
gem.add_dependency 'railties', '~> 3.0'
|
20
|
+
gem.add_development_dependency 'bundler', '~> 1.0'
|
21
|
+
end
|
@@ -222,6 +222,17 @@ if (typeof module === 'object') {
|
|
222
222
|
|
223
223
|
bindParagraphCreation: function (index) {
|
224
224
|
var self = this;
|
225
|
+
this.elements[index].addEventListener('keypress', function (e) {
|
226
|
+
var node = getSelectionStart(),
|
227
|
+
tagName;
|
228
|
+
if (e.which === 32) {
|
229
|
+
tagName = node.tagName.toLowerCase();
|
230
|
+
if (tagName === 'a') {
|
231
|
+
document.execCommand('unlink', false, null);
|
232
|
+
}
|
233
|
+
}
|
234
|
+
});
|
235
|
+
|
225
236
|
this.elements[index].addEventListener('keyup', function (e) {
|
226
237
|
var node = getSelectionStart(),
|
227
238
|
tagName;
|
@@ -596,10 +607,7 @@ if (typeof module === 'object') {
|
|
596
607
|
|
597
608
|
checkActiveButtons: function () {
|
598
609
|
var elements = Array.prototype.slice.call(this.elements),
|
599
|
-
parentNode = this.
|
600
|
-
if (!parentNode.tagName) {
|
601
|
-
parentNode = this.selection.anchorNode.parentNode;
|
602
|
-
}
|
610
|
+
parentNode = this.getSelectedParentElement();
|
603
611
|
while (parentNode.tagName !== undefined && this.parentElements.indexOf(parentNode.tagName.toLowerCase) === -1) {
|
604
612
|
this.activateButton(parentNode.tagName.toLowerCase());
|
605
613
|
this.callExtensions('checkState', parentNode);
|
@@ -668,8 +676,31 @@ if (typeof module === 'object') {
|
|
668
676
|
}
|
669
677
|
},
|
670
678
|
|
679
|
+
// http://stackoverflow.com/questions/15867542/range-object-get-selection-parent-node-chrome-vs-firefox
|
680
|
+
rangeSelectsSingleNode: function (range) {
|
681
|
+
var startNode = range.startContainer;
|
682
|
+
return startNode === range.endContainer &&
|
683
|
+
startNode.hasChildNodes() &&
|
684
|
+
range.endOffset === range.startOffset + 1;
|
685
|
+
},
|
686
|
+
|
687
|
+
getSelectedParentElement: function () {
|
688
|
+
var selectedParentElement = null,
|
689
|
+
range = this.selectionRange;
|
690
|
+
if (this.rangeSelectsSingleNode(range)) {
|
691
|
+
selectedParentElement = range.startContainer.childNodes[range.startOffset];
|
692
|
+
} else if (range.startContainer.nodeType === 3) {
|
693
|
+
selectedParentElement = range.startContainer.parentNode;
|
694
|
+
} else {
|
695
|
+
selectedParentElement = range.startContainer;
|
696
|
+
}
|
697
|
+
return selectedParentElement;
|
698
|
+
},
|
699
|
+
|
671
700
|
triggerAnchorAction: function () {
|
672
|
-
|
701
|
+
var selectedParentElement = this.getSelectedParentElement();
|
702
|
+
if (selectedParentElement.tagName &&
|
703
|
+
selectedParentElement.tagName.toLowerCase() === 'a') {
|
673
704
|
document.execCommand('unlink', false, null);
|
674
705
|
} else {
|
675
706
|
if (this.anchorForm.style.display === 'block') {
|
@@ -1000,6 +1031,7 @@ if (typeof module === 'object') {
|
|
1000
1031
|
if (this.options.targetBlank) {
|
1001
1032
|
this.setTargetBlank();
|
1002
1033
|
}
|
1034
|
+
this.checkSelection();
|
1003
1035
|
this.showToolbarActions();
|
1004
1036
|
input.value = '';
|
1005
1037
|
},
|
@@ -1106,7 +1138,8 @@ if (typeof module === 'object') {
|
|
1106
1138
|
setPlaceholders: function () {
|
1107
1139
|
var i,
|
1108
1140
|
activatePlaceholder = function (el) {
|
1109
|
-
if (el.
|
1141
|
+
if (!(el.querySelector('img')) &&
|
1142
|
+
el.textContent.replace(/^\s+|\s+$/g, '') === '') {
|
1110
1143
|
el.classList.add('medium-editor-placeholder');
|
1111
1144
|
}
|
1112
1145
|
},
|
@@ -35,31 +35,26 @@
|
|
35
35
|
@keyframes pop-upwards {
|
36
36
|
0% {
|
37
37
|
-webkit-transform: matrix(0.97, 0, 0, 1, 0, 12);
|
38
|
-
-ms-transform: matrix(0.97, 0, 0, 1, 0, 12);
|
39
38
|
transform: matrix(0.97, 0, 0, 1, 0, 12);
|
40
39
|
opacity: 0; }
|
41
40
|
|
42
41
|
20% {
|
43
42
|
-webkit-transform: matrix(0.99, 0, 0, 1, 0, 2);
|
44
|
-
-ms-transform: matrix(0.99, 0, 0, 1, 0, 2);
|
45
43
|
transform: matrix(0.99, 0, 0, 1, 0, 2);
|
46
44
|
opacity: 0.7; }
|
47
45
|
|
48
46
|
40% {
|
49
47
|
-webkit-transform: matrix(1, 0, 0, 1, 0, -1);
|
50
|
-
-ms-transform: matrix(1, 0, 0, 1, 0, -1);
|
51
48
|
transform: matrix(1, 0, 0, 1, 0, -1);
|
52
49
|
opacity: 1; }
|
53
50
|
|
54
51
|
70% {
|
55
52
|
-webkit-transform: matrix(1, 0, 0, 1, 0, 0);
|
56
|
-
-ms-transform: matrix(1, 0, 0, 1, 0, 0);
|
57
53
|
transform: matrix(1, 0, 0, 1, 0, 0);
|
58
54
|
opacity: 1; }
|
59
55
|
|
60
56
|
100% {
|
61
57
|
-webkit-transform: matrix(1, 0, 0, 1, 0, 0);
|
62
|
-
-ms-transform: matrix(1, 0, 0, 1, 0, 0);
|
63
58
|
transform: matrix(1, 0, 0, 1, 0, 0);
|
64
59
|
opacity: 1; } }
|
65
60
|
|
metadata
CHANGED
@@ -1,15 +1,43 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: medium-editor-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.9.
|
4
|
+
version: 0.9.2
|
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-05-
|
12
|
-
dependencies:
|
11
|
+
date: 2014-05-07 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: railties
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '3.0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '3.0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: bundler
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ~>
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '1.0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ~>
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '1.0'
|
13
41
|
description: Medium Editor integrated in Rails asset pipeline
|
14
42
|
email:
|
15
43
|
- marjinalist1@gmail.com
|