@wordpress/block-library
Version:
Block library for the WordPress editor.
112 lines (107 loc) • 2.41 kB
JavaScript
/**
* WordPress dependencies
*/
import { createBlock, getBlockAttributes } from '@wordpress/blocks';
/**
* Internal dependencies
*/
const {
name: name
} = {
$schema: "https://schemas.wp.org/trunk/block.json",
apiVersion: 2,
name: "core/paragraph",
title: "Paragraph",
category: "text",
description: "Start with the basic building block of all narrative.",
keywords: ["text"],
textdomain: "default",
attributes: {
align: {
type: "string"
},
content: {
type: "string",
source: "html",
selector: "p",
"default": "",
__experimentalRole: "content"
},
dropCap: {
type: "boolean",
"default": false
},
placeholder: {
type: "string"
},
direction: {
type: "string",
"enum": ["ltr", "rtl"]
}
},
supports: {
anchor: true,
className: false,
color: {
gradients: true,
link: true,
__experimentalDefaultControls: {
background: true,
text: true
}
},
spacing: {
margin: true,
padding: true
},
typography: {
fontSize: true,
lineHeight: true,
__experimentalFontFamily: true,
__experimentalTextDecoration: true,
__experimentalFontStyle: true,
__experimentalFontWeight: true,
__experimentalLetterSpacing: true,
__experimentalTextTransform: true,
__experimentalDefaultControls: {
fontSize: true
}
},
__experimentalSelector: "p",
__unstablePasteTextInline: true
},
editorStyle: "wp-block-paragraph-editor",
style: "wp-block-paragraph"
};
const transforms = {
from: [{
type: 'raw',
// Paragraph is a fallback and should be matched last.
priority: 20,
selector: 'p',
schema: _ref => {
let {
phrasingContentSchema,
isPaste
} = _ref;
return {
p: {
children: phrasingContentSchema,
attributes: isPaste ? [] : ['style', 'id']
}
};
},
transform(node) {
const attributes = getBlockAttributes(name, node.outerHTML);
const {
textAlign
} = node.style || {};
if (textAlign === 'left' || textAlign === 'center' || textAlign === 'right') {
attributes.align = textAlign;
}
return createBlock(name, attributes);
}
}]
};
export default transforms;
//# sourceMappingURL=transforms.js.map