update-node.js
Installation and usage
cd dir-with-cloned-update-node
npm i --no-save external-editor yaml
cd your-project
node path/to/update-node <min> <max> <branch>
cd dir-with-cloned-update-node
npm i --no-save external-editor yaml
cd your-project
node path/to/update-node <min> <max> <branch>
function deepClone( obj ) { | |
const clone = { ...obj }; | |
Object.entries( clone ).forEach( ( [ key, value ] ) => { | |
if ( value && typeof value === 'object' ) { | |
clone[ key ] = deepClone( value ); | |
} | |
} ); | |
return clone; |
<html xmlns:v="urn:schemas-microsoft-com:vml" | |
xmlns:o="urn:schemas-microsoft-com:office:office" | |
xmlns:x="urn:schemas-microsoft-com:office:excel" | |
xmlns="http://www.w3.org/TR/REC-html40"> | |
<head> | |
<meta http-equiv=Content-Type content="text/html; charset=utf-8"> | |
<meta name=ProgId content=Excel.Sheet> | |
<meta name=Generator content="Microsoft Excel 15"> | |
<link id=Main-File rel=Main-File |
::highlight(example-highlight) {
background-color: yellow;
color: blue;
}
Editor | Link | Ctrl+K | Ctrl+L |
---|---|---|---|
CKEditor 4 | a |
✗ | ✓ |
TinyMCE | a |
✓ | ✗ |
Trix | a |
✓ | ✗ |
Squire | a |
✗ | ✗ |
ProseMirror | a |
✗ | ✗ |
Scribe | a |
✗ | ✗ |
Quill | a |
✓ | ✗ |
Summernote | a |
✓ | ✗ |
Editor | Enter | Shift + Enter | Ctrl + Enter | Alt + Enter |
---|---|---|---|---|
CKEditor 4 | p |
br |
— | — |
TinyMCE | p |
br |
p |
p |
Trix | br |
br |
— | — |
Squire | div |
br |
— | — |
ProseMirror | p |
br |
br |
— |
Scribe | p |
br |
— | — |
Quill | div |
div |
— | — |
Summernote | p |
br |
hr + p |
p |
Editor | Feature |
---|---|
CKEditor 4 | tag |
TinyMCE | tag |
Trix | tag |
Squire | tag |
ProseMirror | tag |
Scribe | tag |
Quill | tag |
Summernote | tag |
// Based on http://yuilibrary.com/yui/docs/api/files/test_js_ObjectAssert.js.html#l12. | |
YUITest.ObjectAssert.areDeepEqual = function( expected, actual, message ) { | |
var expectedKeys = YUITest.Object.keys(expected), | |
actualKeys = YUITest.Object.keys(actual), | |
areEqual = YUITest.ObjectAssert.areEqual; | |
YUITest.Assert._increment(); | |
// First check keys array length. | |
if ( expectedKeys.length != actualKeys.length ) { |
Editor | Bold | Italic | Underline | Strike | Superscript/subscript |
---|---|---|---|---|---|
CKEditor 4 | strong |
em |
u |
s |
sup /sub |
TinyMCE | strong |
em |
span[style] |
span[style] |
sup /sub |
Trix | strong |
em |
— | del |
— |
Squire | b |
i |
u |
— | — |
ProseMirror | strong |
em |
— | — | — |
Scribe | b |
i |
u |
strike |
— |
Quill | b |
i |
u |
s |
— |
Summernote | b |
— | u |
— | — |
var isLocalStorageSupported = (function() | |
{ | |
try | |
{ | |
localStorage.setItem('test', 'test'); | |
localStorage.removeItem('test'); | |
return true; | |
} | |
catch(e) | |
{ |