Skip to content

Commit 014a92e

Browse files
committed
Register element block group and create separate map
1 parent 4bdebbb commit 014a92e

7 files changed

Lines changed: 39 additions & 15 deletions

File tree

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/elements/blockquote/register.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
window.wp.blocks.registerBlock( {
2-
elements: [ 'blockquote' ],
2+
name: 'blockquote',
33
displayName: 'Quote',
4+
elements: [ 'blockquote' ],
45
type: 'text',
56
icon: 'gridicons-quote',
67
controls: [

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

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,14 @@
2727
}
2828

2929
wp.blocks.registerBlock( {
30-
elements: [ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6' ],
30+
name: 'heading',
3131
displayName: 'Heading',
32+
elements: [ 'h1', 'h2', 'h3', 'h4', 'h5', 'h6' ],
3233
type: 'text',
3334
icon: 'gridicons-heading',
34-
controls: getControls()
35+
controls: getControls(),
36+
insert: function() {
37+
38+
}
3539
} );
3640
} )( window.wp );

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
window.wp.blocks.registerBlock( {
2+
name: 'hortizontal-rule',
3+
displayName: 'Horizontal Rule',
24
elements: [ 'hr' ],
35
type: 'separator',
4-
displayName: 'Horizontal Rule',
56
icon: 'gridicons-minus',
67
insert: function( block ) {
78
block.parentNode.replaceChild( document.createElement( 'hr' ), block );

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: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
window.wp.blocks.registerBlock( {
2+
name: 'paragraph',
3+
displayName: 'Paragraph',
24
elements: [ 'p' ],
35
type: 'text',
4-
displayName: 'Paragraph',
56
icon: 'gridicons-posts',
67
controls: [
78
{

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)