Skip to content

Commit fdb5cf8

Browse files
authored
Merge pull request #211 from WordPress/add/tinymce-single/insert
Update single MCE inserter
2 parents 5037e59 + 833f04e commit fdb5cf8

13 files changed

Lines changed: 117 additions & 34 deletions

File tree

shared/index.css

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ body {
2626

2727
#editor {
2828
font-family: "Noto Serif", serif;
29+
font-size: 16px;
2930
outline: none;
3031
padding: 50px;
3132
}
@@ -84,11 +85,6 @@ body {
8485
font-size: 28px;
8586
}
8687

87-
#editor p {
88-
font-size: 16px;
89-
min-height: 3.4em;
90-
}
91-
9288
#editor blockquote {
9389
font-size: 20px;
9490
border-left: 4px solid black;

tinymce-single/blocks.js

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,19 +4,23 @@
44
_blocks = {};
55
_controls = {};
66

7+
var _elementMap = {};
8+
79
wp.blocks = {
810
registerBlock: function( settings ) {
911
// Note, elements should probably only be registered by core.
1012
// Maybe for each block, we should offer to extend the settings (add buttons).
1113

14+
var namespace = settings.namespace || 'elements';
15+
var id = namespace + ':' + settings.name;
16+
17+
_blocks[ id ] = settings;
18+
_blocks[ id ]._id = id;
19+
1220
if ( settings.elements ) {
1321
settings.elements.forEach( function( element ) {
14-
_blocks[ 'element:' + element ] = settings;
15-
_blocks[ 'element:' + element ]._id = 'element:' + element;
22+
_elementMap[ element ] = id;
1623
} );
17-
} else if ( settings.namespace && settings.name ) {
18-
_blocks[ settings.namespace + ':' + settings.name ] = settings;
19-
_blocks[ settings.namespace + ':' + settings.name ]._id = settings.namespace + ':' + settings.name;
2024
}
2125
},
2226
registerControl: function( name, settings ) {
@@ -29,10 +33,13 @@
2933
return _controls[ name ];
3034
},
3135
getBlockSettingsByElement: function( element ) {
32-
var blockType = element.getAttribute( 'data-wp-block-type' );
33-
var nodeName = element.nodeName.toLowerCase();
36+
var id = element.getAttribute( 'data-wp-block-type' );
37+
38+
if ( ! id ) {
39+
id = _elementMap[ element.nodeName.toLowerCase() ];
40+
}
3441

35-
return this.getBlockSettings( blockType || 'element:' + nodeName );
42+
return this.getBlockSettings( id );
3643
},
3744
getBlocks: function() {
3845
return _blocks;

tinymce-single/blocks/core/gallery/register.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
window.wp.blocks.registerBlock( {
22
name: 'gallery',
33
namespace: 'core',
4-
type: 'image',
4+
displayName: 'Gallery',
5+
type: 'media',
56
keywords: [],
67
icon: 'gridicons-image-multiple',
78
controls: [
@@ -24,5 +25,8 @@ window.wp.blocks.registerBlock( {
2425
{
2526
icon: 'gridicons-cog'
2627
}
27-
]
28+
],
29+
insert: function( block, editor ) {
30+
31+
}
2832
} );
Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
window.wp.blocks.registerBlock( {
22
name: 'image',
33
namespace: 'core',
4-
type: 'image',
4+
displayName: 'Image',
5+
type: 'media',
56
icon: 'gridicons-image',
67
controls: [
78
'block-align-left',
89
'block-align-center',
910
'block-align-right',
1011
'block-align-full',
1112
'togglefigcaption'
12-
]
13+
],
14+
insert: function( block, editor ) {
15+
16+
}
1317
} );

tinymce-single/blocks/elements/blockquote/register.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
window.wp.blocks.registerBlock( {
2+
name: 'blockquote',
3+
displayName: 'Quote',
24
elements: [ 'blockquote' ],
35
type: 'text',
46
icon: 'gridicons-quote',

tinymce-single/blocks/elements/headings/register.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,9 +27,14 @@
2727
}
2828

2929
wp.blocks.registerBlock( {
30+
name: 'heading',
31+
displayName: 'Heading',
3032
elements: [ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6' ],
3133
type: 'text',
3234
icon: 'gridicons-heading',
33-
controls: getControls()
35+
controls: getControls(),
36+
insert: function() {
37+
38+
}
3439
} );
3540
} )( window.wp );

tinymce-single/blocks/elements/horizontal-rule/register.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
window.wp.blocks.registerBlock( {
2+
name: 'hortizontal-rule',
3+
displayName: 'Horizontal Rule',
24
elements: [ 'hr' ],
35
type: 'separator',
46
icon: 'gridicons-minus',

tinymce-single/blocks/elements/lists/register.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
window.wp.blocks.registerBlock( {
2+
name: 'list',
3+
displayName: 'List',
24
elements: [ 'ul', 'ol' ],
35
type: 'text',
46
icon: 'gridicons-list-unordered',
@@ -28,5 +30,8 @@ window.wp.blocks.registerBlock( {
2830
}
2931
}
3032
}
31-
]
33+
],
34+
insert: function( block, editor ) {
35+
editor.execCommand( 'InsertUnorderedList' );
36+
}
3237
} );

tinymce-single/blocks/elements/paragraph/register.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
window.wp.blocks.registerBlock( {
2+
name: 'paragraph',
3+
displayName: 'Paragraph',
24
elements: [ 'p' ],
35
type: 'text',
46
icon: 'gridicons-posts',
@@ -30,5 +32,8 @@ window.wp.blocks.registerBlock( {
3032
'text-align-left',
3133
'text-align-center',
3234
'text-align-right'
33-
]
35+
],
36+
insert: function( block, editor ) {
37+
editor.formatter.apply( 'paragraph', block );
38+
}
3439
} );

tinymce-single/blocks/elements/preformatted/register.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
window.wp.blocks.registerBlock( {
2+
name: 'preformatted',
3+
displayName: 'Preformatted',
24
elements: [ 'pre' ],
35
type: 'text',
46
icon: 'gridicons-code',
@@ -13,5 +15,8 @@ window.wp.blocks.registerBlock( {
1315
editor.formatter.remove( 'pre' );
1416
}
1517
}
16-
]
18+
],
19+
insert: function( block, editor ) {
20+
editor.formatter.apply( 'pre' );
21+
}
1722
} );

0 commit comments

Comments
 (0)