summaryrefslogtreecommitdiffstats
path: root/src/index.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/index.js')
-rw-r--r--src/index.js116
1 files changed, 116 insertions, 0 deletions
diff --git a/src/index.js b/src/index.js
new file mode 100644
index 0000000..048682a
--- /dev/null
+++ b/src/index.js
@@ -0,0 +1,116 @@
+/**
+ * Registers a new block provided a unique name and an object defining its behavior.
+ *
+ * @see https://developer.wordpress.org/block-editor/developers/block-api/#registering-a-block
+ */
+import { registerBlockType } from '@wordpress/blocks';
+import { AlignmentToolbar } from '@wordpress/block-editor';
+
+/**
+ * Retrieves the translation of text.
+ *
+ * @see https://developer.wordpress.org/block-editor/packages/packages-i18n/
+ */
+import { __ } from '@wordpress/i18n';
+
+/**
+ * Lets webpack process CSS, SASS or SCSS files referenced in JavaScript files.
+ * All files containing `style` keyword are bundled together. The code used
+ * gets applied both to the front of your site and to the editor.
+ *
+ * @see https://www.npmjs.com/package/@wordpress/scripts#using-css
+ */
+import './style.scss';
+import './editor.scss';
+
+/**
+ * Internal dependencies
+ */
+import Edit from './edit';
+import save from './save';
+
+/**
+ * Every block starts by registering a new block type definition.
+ *
+ * @see https://developer.wordpress.org/block-editor/developers/block-api/#registering-a-block
+ */
+registerBlockType( 'dnxvatar/danixland-gravatar', {
+ /**
+ * This is the display title for your block, which can be translated with `i18n` functions.
+ * The block inserter will show this name.
+ */
+ title: __( 'Gravatar', 'dnxvatar' ),
+
+ /**
+ * This is a short description for your block, can be translated with `i18n` functions.
+ * It will be shown in the Block Tab in the Settings Sidebar.
+ */
+ description: __( 'Insert a gravatar inside a post or page.', 'dnxvatar' ),
+
+ attributes: {
+ email: {
+ type: 'string',
+ source: 'text',
+ selector: 'div',
+ },
+ size: {
+ type: 'string',
+ source: 'text',
+ selector: 'div',
+ },
+ alt: {
+ type: 'string',
+ source: 'text',
+ selector: 'div',
+ },
+ caption: {
+ type: 'string',
+ source: 'text',
+ selector: 'div',
+ },
+ alignment: {
+ type: 'string',
+ default: 'none',
+ },
+ },
+ example: {
+ attributes: {
+ email: 'danix@example.com',
+ alt: 'my profile photo',
+ caption: 'this is me',
+ size: '200',
+ alignment: 'right',
+ },
+ },
+
+ /**
+ * Blocks are grouped into categories to help users browse and discover them.
+ * The categories provided by core are `common`, `embed`, `formatting`, `layout` and `widgets`.
+ */
+ category: 'common',
+
+ /**
+ * An icon property should be specified to make it easier to identify a block.
+ * These can be any of WordPress’ Dashicons, or a custom svg element.
+ */
+ icon: 'businessman',
+
+ /**
+ * Optional block extended support features.
+ */
+ supports: {
+ // Removes support for an HTML mode.
+ html: false,
+ align: [ 'left', 'right', 'center' ],
+ },
+
+ /**
+ * @see ./edit.js
+ */
+ edit: Edit,
+
+ /**
+ * @see ./save.js
+ */
+ save,
+} );