medium-editor-rails 1.1.0 → 1.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/README.md +1 -1
- data/lib/medium-editor-rails/version.rb +2 -2
- data/vendor/assets/javascripts/medium-editor.js +190 -19
- data/vendor/assets/stylesheets/medium-editor/medium-editor.css +6 -6
- data/vendor/assets/stylesheets/medium-editor/themes/bootstrap.css +7 -7
- data/vendor/assets/stylesheets/medium-editor/themes/default.css +3 -3
- data/vendor/assets/stylesheets/medium-editor/themes/flat.css +6 -6
- data/vendor/assets/stylesheets/medium-editor/themes/mani.css +3 -3
- data/vendor/assets/stylesheets/medium-editor/themes/roman.css +3 -3
- 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: fa0ba14c770973e7f22bda092453aaca2b2b5782
|
4
|
+
data.tar.gz: a453844a62d84214e01f281307ead464074984f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 48eed5d492ac8bfee58818fea34ba15e3cf64ee3ae3aa789880a249e375add2006f80d56829a42d41a4273e8e28e25365b8bbfc52c853ed6a7b3eb0b1285f887
|
7
|
+
data.tar.gz: fc05433556125ed58868debbe20c93b1e36bdd52a92096b61537df23f130382a074ee2fb4a52360710b1b7940a7bb3cf7fa5a3f87efe11b60a939a635479bc8a
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,12 @@
|
|
1
1
|
|
2
2
|
#### [Current]
|
3
|
+
* [4f4d13a](../../commit/4f4d13a) - __(Ahmet Sezgin Duran)__ Update Medium Editor files
|
4
|
+
* [78ae621](../../commit/78ae621) - __(Ahmet Sezgin Duran)__ Merge tag '1.1.0' into develop
|
5
|
+
|
6
|
+
1.1.0
|
7
|
+
|
8
|
+
#### 1.1.0
|
9
|
+
* [4caf800](../../commit/4caf800) - __(Ahmet Sezgin Duran)__ Dump changelog
|
3
10
|
* [6e3450b](../../commit/6e3450b) - __(Ahmet Sezgin Duran)__ Bump versions 1.1.0 and 2.1.0
|
4
11
|
* [c3d9387](../../commit/c3d9387) - __(Ahmet Sezgin Duran)__ Update Medium Editor files
|
5
12
|
* [ecf87f3](../../commit/ecf87f3) - __(Ahmet Sezgin Duran)__ Merge tag '1.0.0' into develop
|
data/README.md
CHANGED
@@ -8,7 +8,7 @@ This gem integrates [Medium Editor](https://github.com/daviferreira/medium-edito
|
|
8
8
|
|
9
9
|
## Version
|
10
10
|
|
11
|
-
The latest version of Medium Editor bundled by this gem is [2.1.
|
11
|
+
The latest version of Medium Editor bundled by this gem is [2.1.2](https://github.com/daviferreira/medium-editor/releases)
|
12
12
|
|
13
13
|
## Installation
|
14
14
|
|
@@ -180,6 +180,36 @@ else if (typeof define === 'function' && define.amd) {
|
|
180
180
|
return html;
|
181
181
|
}
|
182
182
|
|
183
|
+
/**
|
184
|
+
* Find the caret position within an element irrespective of any inline tags it may contain.
|
185
|
+
*
|
186
|
+
* @param {DOMElement} An element containing the cursor to find offsets relative to.
|
187
|
+
* @param {Range} A Range representing cursor position. Will window.getSelection if none is passed.
|
188
|
+
* @return {Object} 'left' and 'right' attributes contain offsets from begining and end of Element
|
189
|
+
*/
|
190
|
+
function getCaretOffsets(element, range) {
|
191
|
+
var preCaretRange, postCaretRange;
|
192
|
+
|
193
|
+
if (!range) {
|
194
|
+
range = window.getSelection().getRangeAt(0);
|
195
|
+
}
|
196
|
+
|
197
|
+
preCaretRange = range.cloneRange();
|
198
|
+
postCaretRange = range.cloneRange();
|
199
|
+
|
200
|
+
preCaretRange.selectNodeContents(element);
|
201
|
+
preCaretRange.setEnd(range.endContainer, range.endOffset);
|
202
|
+
|
203
|
+
postCaretRange.selectNodeContents(element);
|
204
|
+
postCaretRange.setStart(range.endContainer, range.endOffset);
|
205
|
+
|
206
|
+
return {
|
207
|
+
left: preCaretRange.toString().length,
|
208
|
+
right: postCaretRange.toString().length
|
209
|
+
};
|
210
|
+
}
|
211
|
+
|
212
|
+
|
183
213
|
// https://github.com/jashkenas/underscore
|
184
214
|
function isElement(obj) {
|
185
215
|
return !!(obj && obj.nodeType === 1);
|
@@ -222,6 +252,7 @@ else if (typeof define === 'function' && define.amd) {
|
|
222
252
|
defaults: {
|
223
253
|
allowMultiParagraphSelection: true,
|
224
254
|
anchorInputPlaceholder: 'Paste or type a link',
|
255
|
+
anchorInputCheckboxLabel: 'Open in new window',
|
225
256
|
anchorPreviewHideDelay: 500,
|
226
257
|
buttons: ['bold', 'italic', 'underline', 'anchor', 'header1', 'header2', 'quote'],
|
227
258
|
buttonLabels: false,
|
@@ -289,8 +320,8 @@ else if (typeof define === 'function' && define.amd) {
|
|
289
320
|
.bindPaste()
|
290
321
|
.setPlaceholders()
|
291
322
|
.bindElementActions()
|
292
|
-
.bindWindowActions()
|
293
|
-
|
323
|
+
.bindWindowActions();
|
324
|
+
//.passInstance();
|
294
325
|
},
|
295
326
|
|
296
327
|
on: function(target, event, listener, useCapture) {
|
@@ -380,7 +411,9 @@ else if (typeof define === 'function' && define.amd) {
|
|
380
411
|
}
|
381
412
|
// Init toolbar
|
382
413
|
if (addToolbar) {
|
383
|
-
this.
|
414
|
+
this.passInstance()
|
415
|
+
.callExtensions('init')
|
416
|
+
.initToolbar()
|
384
417
|
.bindButtons()
|
385
418
|
.bindAnchorForm()
|
386
419
|
.bindAnchorPreview();
|
@@ -464,7 +497,7 @@ else if (typeof define === 'function' && define.amd) {
|
|
464
497
|
|
465
498
|
// Bind the return and tab keypress events
|
466
499
|
this.bindReturn(i)
|
467
|
-
.
|
500
|
+
.bindKeydown(i)
|
468
501
|
.bindBlur(i)
|
469
502
|
.bindClick(i);
|
470
503
|
}
|
@@ -526,6 +559,7 @@ else if (typeof define === 'function' && define.amd) {
|
|
526
559
|
}
|
527
560
|
}
|
528
561
|
}
|
562
|
+
return this;
|
529
563
|
},
|
530
564
|
|
531
565
|
/**
|
@@ -581,7 +615,12 @@ else if (typeof define === 'function' && define.amd) {
|
|
581
615
|
if (!(self.options.disableReturn || editorElement.getAttribute('data-disable-return')) &&
|
582
616
|
tagName !== 'li' && !self.isListItemChild(node)) {
|
583
617
|
if (!e.shiftKey) {
|
584
|
-
|
618
|
+
|
619
|
+
// paragraph creation should not be forced within a header tag
|
620
|
+
if (!/h\d/.test(tagName))
|
621
|
+
{
|
622
|
+
self.options.ownerDocument.execCommand('formatBlock', false, 'p');
|
623
|
+
}
|
585
624
|
}
|
586
625
|
if (tagName === 'a') {
|
587
626
|
self.options.ownerDocument.execCommand('unlink', false, null);
|
@@ -626,9 +665,10 @@ else if (typeof define === 'function' && define.amd) {
|
|
626
665
|
return this;
|
627
666
|
},
|
628
667
|
|
629
|
-
|
668
|
+
bindKeydown: function (index) {
|
630
669
|
var self = this;
|
631
670
|
this.on(this.elements[index], 'keydown', function (e) {
|
671
|
+
|
632
672
|
if (e.which === 9) {
|
633
673
|
// Override tab only for pre nodes
|
634
674
|
var tag = getSelectionStart.call(self).tagName.toLowerCase();
|
@@ -649,10 +689,77 @@ else if (typeof define === 'function' && define.amd) {
|
|
649
689
|
}
|
650
690
|
}
|
651
691
|
}
|
692
|
+
else if ( e.which === 8 || e.which === 46 || e.which === 13 )
|
693
|
+
{
|
694
|
+
|
695
|
+
// Bind keys which can create or destroy a block element: backspace, delete, return
|
696
|
+
self.onBlockModifier(e);
|
697
|
+
|
698
|
+
}
|
652
699
|
});
|
653
700
|
return this;
|
654
701
|
},
|
655
702
|
|
703
|
+
onBlockModifier: function( e ) {
|
704
|
+
|
705
|
+
var range, sel, p, node = getSelectionStart.call(this),
|
706
|
+
tagName = node.tagName.toLowerCase(),
|
707
|
+
isEmpty = /^(\s+|<br\/?>)?$/i,
|
708
|
+
isHeader = /h\d/i;
|
709
|
+
|
710
|
+
if ( (e.which === 8 || e.which === 13) // backspace or return
|
711
|
+
&& node.previousElementSibling
|
712
|
+
&& isHeader.test(tagName) // in a header
|
713
|
+
&& getCaretOffsets(node).left === 0 ) // at the very end of the block
|
714
|
+
{
|
715
|
+
if ( e.which === 8 && isEmpty.test(node.previousElementSibling.innerHTML) )
|
716
|
+
{
|
717
|
+
// backspacing the begining of a header into an empty previous element will
|
718
|
+
// change the tagName of the current node to prevent one
|
719
|
+
// instead delete previous node and cancel the event.
|
720
|
+
node.previousElementSibling.parentNode.removeChild( node.previousElementSibling );
|
721
|
+
e.preventDefault();
|
722
|
+
}
|
723
|
+
else if ( e.which === 13 )
|
724
|
+
{
|
725
|
+
// hitting return in the begining of a header will create empty header elements before the current one
|
726
|
+
// instead, make "<p><br></p>" element, which are what happens if you hit return in an empty paragraph
|
727
|
+
p = this.options.ownerDocument.createElement('p');
|
728
|
+
p.innerHTML = '<br>';
|
729
|
+
node.previousElementSibling.parentNode.insertBefore( p, node );
|
730
|
+
e.preventDefault();
|
731
|
+
}
|
732
|
+
|
733
|
+
}
|
734
|
+
else if ( e.which === 46 // delete
|
735
|
+
&& node.nextElementSibling
|
736
|
+
&& node.previousElementSibling
|
737
|
+
&& !isHeader.test(tagName) // not in a header
|
738
|
+
&& isEmpty.test(node.innerHTML) // in an empty tag
|
739
|
+
&& isHeader.test(node.nextElementSibling.tagName) ) // when the next tag *is* a header
|
740
|
+
{
|
741
|
+
// hitting delete in an empty element preceding a header, ex:
|
742
|
+
// <p>[CURSOR]</p><h1>Header</h1>
|
743
|
+
// Will cause the h1 to become a paragraph.
|
744
|
+
// Instead, delete the paragraph node and move the cursor to the begining of the h1
|
745
|
+
|
746
|
+
// remove node and move cursor to start of header
|
747
|
+
range = document.createRange();
|
748
|
+
sel = window.getSelection();
|
749
|
+
|
750
|
+
range.setStart(node.nextElementSibling, 0);
|
751
|
+
range.collapse(true);
|
752
|
+
|
753
|
+
sel.removeAllRanges();
|
754
|
+
sel.addRange(range);
|
755
|
+
|
756
|
+
node.previousElementSibling.parentNode.removeChild(node);
|
757
|
+
|
758
|
+
e.preventDefault();
|
759
|
+
}
|
760
|
+
|
761
|
+
},
|
762
|
+
|
656
763
|
buttonTemplate: function (btnType) {
|
657
764
|
var buttonLabels = this.getButtonLabels(this.options.buttonLabels),
|
658
765
|
buttonTemplates = {
|
@@ -745,13 +852,14 @@ else if (typeof define === 'function' && define.amd) {
|
|
745
852
|
return this;
|
746
853
|
}
|
747
854
|
this.toolbar = this.createToolbar();
|
855
|
+
this.addExtensionForms();
|
748
856
|
this.keepToolbarAlive = false;
|
749
857
|
this.toolbarActions = this.toolbar.querySelector('.medium-editor-toolbar-actions');
|
750
858
|
this.anchorPreview = this.createAnchorPreview();
|
751
859
|
|
752
860
|
if (!this.options.disableAnchorForm) {
|
753
|
-
this.anchorForm = this.toolbar.querySelector('.medium-editor-toolbar-form
|
754
|
-
this.anchorInput = this.anchorForm.querySelector('input.medium-editor-toolbar-
|
861
|
+
this.anchorForm = this.toolbar.querySelector('.medium-editor-toolbar-form');
|
862
|
+
this.anchorInput = this.anchorForm.querySelector('input.medium-editor-toolbar-input');
|
755
863
|
this.anchorTarget = this.anchorForm.querySelector('input.medium-editor-toolbar-anchor-target');
|
756
864
|
this.anchorButton = this.anchorForm.querySelector('input.medium-editor-toolbar-anchor-button');
|
757
865
|
}
|
@@ -793,6 +901,9 @@ else if (typeof define === 'function' && define.amd) {
|
|
793
901
|
if (this.options.extensions.hasOwnProperty(btns[i])) {
|
794
902
|
ext = this.options.extensions[btns[i]];
|
795
903
|
btn = ext.getButton !== undefined ? ext.getButton(this) : null;
|
904
|
+
if (ext.hasForm) {
|
905
|
+
btn.setAttribute('data-form', 'medium-editor-toolbar-form-' + btns[i] + '-' + this.id);
|
906
|
+
}
|
796
907
|
} else {
|
797
908
|
btn = this.buttonTemplate(btns[i]);
|
798
909
|
}
|
@@ -811,6 +922,30 @@ else if (typeof define === 'function' && define.amd) {
|
|
811
922
|
return ul;
|
812
923
|
},
|
813
924
|
|
925
|
+
addExtensionForms: function () {
|
926
|
+
var extensions = this.options.extensions,
|
927
|
+
ext,
|
928
|
+
name,
|
929
|
+
form,
|
930
|
+
id;
|
931
|
+
|
932
|
+
for (name in extensions) {
|
933
|
+
if (extensions.hasOwnProperty(name)) {
|
934
|
+
ext = extensions[name];
|
935
|
+
if(ext.hasForm){
|
936
|
+
form = ext.getForm !== undefined ? ext.getForm() : null;
|
937
|
+
}
|
938
|
+
if (form) {
|
939
|
+
id = 'medium-editor-toolbar-form-'+name+'-'+this.id;
|
940
|
+
form.className = 'medium-editor-toolbar-form';
|
941
|
+
form.id = id;
|
942
|
+
ext.getForm().id = id;
|
943
|
+
this.toolbar.appendChild(form);
|
944
|
+
}
|
945
|
+
}
|
946
|
+
}
|
947
|
+
},
|
948
|
+
|
814
949
|
toolbarFormAnchor: function () {
|
815
950
|
var anchor = this.options.ownerDocument.createElement('div'),
|
816
951
|
input = this.options.ownerDocument.createElement('input'),
|
@@ -822,21 +957,21 @@ else if (typeof define === 'function' && define.amd) {
|
|
822
957
|
save = this.options.ownerDocument.createElement('a');
|
823
958
|
|
824
959
|
close.setAttribute('href', '#');
|
825
|
-
close.className = 'medium-editor-toobar-
|
960
|
+
close.className = 'medium-editor-toobar-close';
|
826
961
|
close.innerHTML = '×';
|
827
962
|
|
828
963
|
save.setAttribute('href', '#');
|
829
|
-
save.className = 'medium-editor-toobar-
|
964
|
+
save.className = 'medium-editor-toobar-save';
|
830
965
|
save.innerHTML = '✓';
|
831
966
|
|
832
967
|
input.setAttribute('type', 'text');
|
833
|
-
input.className = 'medium-editor-toolbar-
|
968
|
+
input.className = 'medium-editor-toolbar-input';
|
834
969
|
input.setAttribute('placeholder', this.options.anchorInputPlaceholder);
|
835
970
|
|
836
971
|
|
837
972
|
target.setAttribute('type', 'checkbox');
|
838
973
|
target.className = 'medium-editor-toolbar-anchor-target';
|
839
|
-
target_label.innerHTML =
|
974
|
+
target_label.innerHTML = this.options.anchorInputCheckboxLabel;
|
840
975
|
target_label.insertBefore(target, target_label.firstChild);
|
841
976
|
|
842
977
|
button.setAttribute('type', 'checkbox');
|
@@ -845,7 +980,7 @@ else if (typeof define === 'function' && define.amd) {
|
|
845
980
|
button_label.insertBefore(button, button_label.firstChild);
|
846
981
|
|
847
982
|
|
848
|
-
anchor.className = 'medium-editor-toolbar-form
|
983
|
+
anchor.className = 'medium-editor-toolbar-form';
|
849
984
|
anchor.id = 'medium-editor-toolbar-form-anchor-' + this.id;
|
850
985
|
anchor.appendChild(input);
|
851
986
|
|
@@ -1054,7 +1189,8 @@ else if (typeof define === 'function' && define.amd) {
|
|
1054
1189
|
boundary,
|
1055
1190
|
middleBoundary,
|
1056
1191
|
defaultLeft = (this.options.diffLeft) - (this.toolbar.offsetWidth / 2),
|
1057
|
-
halfOffsetWidth = this.toolbar.offsetWidth / 2
|
1192
|
+
halfOffsetWidth = this.toolbar.offsetWidth / 2,
|
1193
|
+
containerCenter = (containerRect.left + (containerRect.width / 2));
|
1058
1194
|
|
1059
1195
|
if ( selection.focusNode === null ) {
|
1060
1196
|
return this;
|
@@ -1085,8 +1221,18 @@ else if (typeof define === 'function' && define.amd) {
|
|
1085
1221
|
this.toolbar.style.top = containerTop - this.toolbar.offsetHeight + "px";
|
1086
1222
|
}
|
1087
1223
|
|
1088
|
-
this.
|
1089
|
-
|
1224
|
+
if (this.options.toolbarAlign) {
|
1225
|
+
if (this.options.toolbarAlign === 'left') {
|
1226
|
+
this.toolbar.style.left = containerRect.left + "px";
|
1227
|
+
} else if (this.options.toolbarAlign === 'center') {
|
1228
|
+
this.toolbar.style.left = (containerCenter - halfOffsetWidth) + "px";
|
1229
|
+
} else {
|
1230
|
+
this.toolbar.style.left = (containerRect.right - this.toolbar.offsetWidth) + "px";
|
1231
|
+
}
|
1232
|
+
} else {
|
1233
|
+
this.toolbar.style.left = (containerCenter - halfOffsetWidth) + "px";
|
1234
|
+
}
|
1235
|
+
|
1090
1236
|
} else if (!selection.isCollapsed) {
|
1091
1237
|
range = selection.getRangeAt(0);
|
1092
1238
|
boundary = range.getBoundingClientRect();
|
@@ -1165,6 +1311,11 @@ else if (typeof define === 'function' && define.amd) {
|
|
1165
1311
|
if (this.hasAttribute('data-action')) {
|
1166
1312
|
self.execAction(this.getAttribute('data-action'), e);
|
1167
1313
|
}
|
1314
|
+
// Allows extension buttons to show a form
|
1315
|
+
// TO DO: Improve this
|
1316
|
+
if (this.hasAttribute('data-form')) {
|
1317
|
+
self.showForm(this.getAttribute('data-form'), e);
|
1318
|
+
}
|
1168
1319
|
};
|
1169
1320
|
for (i = 0; i < buttons.length; i += 1) {
|
1170
1321
|
this.on(buttons[i], 'click', triggerAction);
|
@@ -1198,6 +1349,27 @@ else if (typeof define === 'function' && define.amd) {
|
|
1198
1349
|
}
|
1199
1350
|
},
|
1200
1351
|
|
1352
|
+
// Method to show an extension's form
|
1353
|
+
// TO DO: Improve this
|
1354
|
+
showForm: function (formId, e) {
|
1355
|
+
this.toolbarActions.style.display = 'none';
|
1356
|
+
this.saveSelection();
|
1357
|
+
var form = document.getElementById(formId);
|
1358
|
+
form.style.display = 'block';
|
1359
|
+
this.setToolbarPosition();
|
1360
|
+
this.keepToolbarAlive = true;
|
1361
|
+
},
|
1362
|
+
|
1363
|
+
// Method to show an extension's form
|
1364
|
+
// TO DO: Improve this
|
1365
|
+
hideForm: function (form, e) {
|
1366
|
+
var el = document.getElementById(form.id);
|
1367
|
+
el.style.display = 'none';
|
1368
|
+
this.showToolbarActions();
|
1369
|
+
this.setToolbarPosition();
|
1370
|
+
restoreSelection.call(this, this.savedSelection);
|
1371
|
+
},
|
1372
|
+
|
1201
1373
|
// http://stackoverflow.com/questions/15867542/range-object-get-selection-parent-node-chrome-vs-firefox
|
1202
1374
|
rangeSelectsSingleNode: function (range) {
|
1203
1375
|
var startNode = range.startContainer;
|
@@ -1355,8 +1527,8 @@ else if (typeof define === 'function' && define.amd) {
|
|
1355
1527
|
return this;
|
1356
1528
|
}
|
1357
1529
|
|
1358
|
-
var linkCancel = this.anchorForm.querySelector('a.medium-editor-toobar-
|
1359
|
-
linkSave = this.anchorForm.querySelector('a.medium-editor-toobar-
|
1530
|
+
var linkCancel = this.anchorForm.querySelector('a.medium-editor-toobar-close'),
|
1531
|
+
linkSave = this.anchorForm.querySelector('a.medium-editor-toobar-save'),
|
1360
1532
|
self = this;
|
1361
1533
|
|
1362
1534
|
this.on(this.anchorForm, 'click', function (e) {
|
@@ -1436,7 +1608,6 @@ else if (typeof define === 'function' && define.amd) {
|
|
1436
1608
|
return this;
|
1437
1609
|
},
|
1438
1610
|
|
1439
|
-
|
1440
1611
|
hideAnchorPreview: function () {
|
1441
1612
|
this.anchorPreview.classList.remove('medium-editor-anchor-preview-active');
|
1442
1613
|
},
|
@@ -135,26 +135,26 @@
|
|
135
135
|
.medium-editor-action-italic {
|
136
136
|
font-style: italic; }
|
137
137
|
|
138
|
-
.medium-editor-toolbar-form
|
138
|
+
.medium-editor-toolbar-form {
|
139
139
|
display: none; }
|
140
|
-
.medium-editor-toolbar-form
|
140
|
+
.medium-editor-toolbar-form input, .medium-editor-toolbar-form a {
|
141
141
|
font-family: HelveticaNeue, Helvetica, Arial, sans-serif; }
|
142
|
-
.medium-editor-toolbar-form
|
142
|
+
.medium-editor-toolbar-form .medium-editor-toolbar-input, .medium-editor-toolbar-form label {
|
143
143
|
margin: 0;
|
144
144
|
padding: 6px;
|
145
145
|
width: 316px;
|
146
146
|
border: none;
|
147
147
|
font-size: 14px;
|
148
148
|
box-sizing: border-box; }
|
149
|
-
.medium-editor-toolbar-form
|
149
|
+
.medium-editor-toolbar-form .medium-editor-toolbar-input:focus, .medium-editor-toolbar-form label:focus {
|
150
150
|
outline: 0;
|
151
151
|
border: none;
|
152
152
|
box-shadow: none;
|
153
153
|
-webkit-appearance: none;
|
154
154
|
-moz-appearance: none; }
|
155
|
-
.medium-editor-toolbar-form
|
155
|
+
.medium-editor-toolbar-form label {
|
156
156
|
display: block; }
|
157
|
-
.medium-editor-toolbar-form
|
157
|
+
.medium-editor-toolbar-form a {
|
158
158
|
display: inline-block;
|
159
159
|
margin: 0 10px;
|
160
160
|
text-decoration: none;
|
@@ -35,29 +35,29 @@
|
|
35
35
|
background-color: #3276b1;
|
36
36
|
color: #fff; }
|
37
37
|
|
38
|
-
.medium-editor-toolbar-form
|
38
|
+
.medium-editor-toolbar-form {
|
39
39
|
background: #428bca;
|
40
40
|
color: #fff;
|
41
41
|
border-radius: 4px; }
|
42
|
-
.medium-editor-toolbar-form
|
42
|
+
.medium-editor-toolbar-form .medium-editor-toolbar-input {
|
43
43
|
height: 60px;
|
44
44
|
background: #428bca;
|
45
45
|
color: #fff; }
|
46
|
-
.medium-editor-toolbar-form
|
46
|
+
.medium-editor-toolbar-form .medium-editor-toolbar-input::-webkit-input-placeholder {
|
47
47
|
color: #fff;
|
48
48
|
color: rgba(255, 255, 255, 0.8); }
|
49
|
-
.medium-editor-toolbar-form
|
49
|
+
.medium-editor-toolbar-form .medium-editor-toolbar-input:-moz-placeholder {
|
50
50
|
/* Firefox 18- */
|
51
51
|
color: #fff;
|
52
52
|
color: rgba(255, 255, 255, 0.8); }
|
53
|
-
.medium-editor-toolbar-form
|
53
|
+
.medium-editor-toolbar-form .medium-editor-toolbar-input::-moz-placeholder {
|
54
54
|
/* Firefox 19+ */
|
55
55
|
color: #fff;
|
56
56
|
color: rgba(255, 255, 255, 0.8); }
|
57
|
-
.medium-editor-toolbar-form
|
57
|
+
.medium-editor-toolbar-form .medium-editor-toolbar-input:-ms-input-placeholder {
|
58
58
|
color: #fff;
|
59
59
|
color: rgba(255, 255, 255, 0.8); }
|
60
|
-
.medium-editor-toolbar-form
|
60
|
+
.medium-editor-toolbar-form a {
|
61
61
|
color: #fff; }
|
62
62
|
|
63
63
|
.medium-editor-toolbar-anchor-preview {
|
@@ -44,16 +44,16 @@
|
|
44
44
|
background: -webkit-linear-gradient(bottom, #242424, rgba(0, 0, 0, 0.89));
|
45
45
|
background: linear-gradient(bottom, #242424, rgba(0, 0, 0, 0.89)); }
|
46
46
|
|
47
|
-
.medium-editor-toolbar-form
|
47
|
+
.medium-editor-toolbar-form {
|
48
48
|
background: #242424;
|
49
49
|
color: #999;
|
50
50
|
border-radius: 5px; }
|
51
|
-
.medium-editor-toolbar-form
|
51
|
+
.medium-editor-toolbar-form .medium-editor-toolbar-input {
|
52
52
|
height: 50px;
|
53
53
|
background: #242424;
|
54
54
|
color: #ccc;
|
55
55
|
box-sizing: border-box; }
|
56
|
-
.medium-editor-toolbar-form
|
56
|
+
.medium-editor-toolbar-form a {
|
57
57
|
color: #fff; }
|
58
58
|
|
59
59
|
.medium-editor-toolbar-anchor-preview {
|
@@ -28,25 +28,25 @@
|
|
28
28
|
.medium-editor-toolbar li .medium-editor-button-last {
|
29
29
|
border-right: none; }
|
30
30
|
|
31
|
-
.medium-editor-toolbar-form
|
31
|
+
.medium-editor-toolbar-form .medium-editor-toolbar-input {
|
32
32
|
height: 60px;
|
33
33
|
background: #57ad68;
|
34
34
|
color: #fff; }
|
35
|
-
.medium-editor-toolbar-form
|
35
|
+
.medium-editor-toolbar-form .medium-editor-toolbar-input::-webkit-input-placeholder {
|
36
36
|
color: #fff;
|
37
37
|
color: rgba(255, 255, 255, 0.8); }
|
38
|
-
.medium-editor-toolbar-form
|
38
|
+
.medium-editor-toolbar-form .medium-editor-toolbar-input:-moz-placeholder {
|
39
39
|
/* Firefox 18- */
|
40
40
|
color: #fff;
|
41
41
|
color: rgba(255, 255, 255, 0.8); }
|
42
|
-
.medium-editor-toolbar-form
|
42
|
+
.medium-editor-toolbar-form .medium-editor-toolbar-input::-moz-placeholder {
|
43
43
|
/* Firefox 19+ */
|
44
44
|
color: #fff;
|
45
45
|
color: rgba(255, 255, 255, 0.8); }
|
46
|
-
.medium-editor-toolbar-form
|
46
|
+
.medium-editor-toolbar-form .medium-editor-toolbar-input:-ms-input-placeholder {
|
47
47
|
color: #fff;
|
48
48
|
color: rgba(255, 255, 255, 0.8); }
|
49
|
-
.medium-editor-toolbar-form
|
49
|
+
.medium-editor-toolbar-form a {
|
50
50
|
color: #fff; }
|
51
51
|
|
52
52
|
.medium-editor-toolbar-anchor-preview {
|
@@ -35,16 +35,16 @@
|
|
35
35
|
background: -webkit-linear-gradient(bottom, #dee7f0, rgba(0, 0, 0, 0.1));
|
36
36
|
background: linear-gradient(bottom, #dee7f0, rgba(0, 0, 0, 0.1)); }
|
37
37
|
|
38
|
-
.medium-editor-toolbar-form
|
38
|
+
.medium-editor-toolbar-form {
|
39
39
|
background: #dee7f0;
|
40
40
|
color: #999;
|
41
41
|
border-radius: 2px; }
|
42
|
-
.medium-editor-toolbar-form
|
42
|
+
.medium-editor-toolbar-form .medium-editor-toolbar-input {
|
43
43
|
height: 50px;
|
44
44
|
background: #dee7f0;
|
45
45
|
color: #40648a;
|
46
46
|
box-sizing: border-box; }
|
47
|
-
.medium-editor-toolbar-form
|
47
|
+
.medium-editor-toolbar-form a {
|
48
48
|
color: #40648a; }
|
49
49
|
|
50
50
|
.medium-editor-toolbar-anchor-preview {
|
@@ -36,16 +36,16 @@
|
|
36
36
|
background: -webkit-linear-gradient(bottom, #fff, rgba(0, 0, 0, 0.2));
|
37
37
|
background: linear-gradient(bottom, #fff, rgba(0, 0, 0, 0.2)); }
|
38
38
|
|
39
|
-
.medium-editor-toolbar-form
|
39
|
+
.medium-editor-toolbar-form {
|
40
40
|
background: #fff;
|
41
41
|
color: #999;
|
42
42
|
border-radius: 5px; }
|
43
|
-
.medium-editor-toolbar-form
|
43
|
+
.medium-editor-toolbar-form .medium-editor-toolbar-input {
|
44
44
|
margin: 0;
|
45
45
|
height: 50px;
|
46
46
|
background: #fff;
|
47
47
|
color: #a8a8a8; }
|
48
|
-
.medium-editor-toolbar-form
|
48
|
+
.medium-editor-toolbar-form a {
|
49
49
|
color: #889aac; }
|
50
50
|
|
51
51
|
.medium-editor-toolbar-anchor-preview {
|
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: 1.1.
|
4
|
+
version: 1.1.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: 2015-01
|
11
|
+
date: 2015-02-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|