Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fallback for dropcap when __experimentalFeatures is not present #25979

Merged
merged 3 commits into from
Oct 9, 2020

Conversation

oandregal
Copy link
Member

@oandregal oandregal commented Oct 9, 2020

Related: #20588
Previously: #24761, #24932

This PR makes sure the dropCap feature is available for paragraph in contexts where __experimentalFeatures is not present (core without the plugin, given that lib/global-styles.php is not ported over).

Test

Make sure theme.json still works as expected:

  • Load a post with a paragraph and verify that the drop cap option is shown.
  • Edit lib/experimental-default-theme.json and set typography.dropCap to false => load a post with a paragraph and verify that the drop cap option is not shown.

Make sure it works without any theme.json:

  • Go to lib/load.php and comment the line require dirname( __FILE__ ) . '/global-styles.php';.
  • Load a post with a paragraph and verify that the drop cap option is shown.

@oandregal oandregal self-assigned this Oct 9, 2020
@oandregal oandregal added the [Block] Paragraph Affects the Paragraph Block label Oct 9, 2020
@github-actions
Copy link

github-actions bot commented Oct 9, 2020

Size Change: +25 B (0%)

Total Size: 1.19 MB

Filename Size Change
build/block-editor/index.js 129 kB +25 B (0%)
ℹ️ View Unchanged
Filename Size Change
build/a11y/index.js 1.14 kB 0 B
build/annotations/index.js 3.54 kB 0 B
build/api-fetch/index.js 3.35 kB 0 B
build/autop/index.js 2.72 kB 0 B
build/blob/index.js 668 B 0 B
build/block-directory/index.js 8.55 kB 0 B
build/block-directory/style-rtl.css 943 B 0 B
build/block-directory/style.css 942 B 0 B
build/block-editor/style-rtl.css 10.9 kB 0 B
build/block-editor/style.css 10.9 kB 0 B
build/block-library/editor-rtl.css 8.65 kB 0 B
build/block-library/editor.css 8.65 kB 0 B
build/block-library/index.js 145 kB 0 B
build/block-library/style-rtl.css 7.66 kB 0 B
build/block-library/style.css 7.65 kB 0 B
build/block-library/theme-rtl.css 741 B 0 B
build/block-library/theme.css 741 B 0 B
build/block-serialization-default-parser/index.js 1.78 kB 0 B
build/block-serialization-spec-parser/index.js 3.1 kB 0 B
build/blocks/index.js 47.6 kB 0 B
build/components/index.js 169 kB 0 B
build/components/style-rtl.css 15.5 kB 0 B
build/components/style.css 15.5 kB 0 B
build/compose/index.js 9.43 kB 0 B
build/core-data/index.js 12 kB 0 B
build/data-controls/index.js 685 B 0 B
build/data/index.js 8.6 kB 0 B
build/date/index.js 31.9 kB 0 B
build/deprecated/index.js 772 B 0 B
build/dom-ready/index.js 568 B 0 B
build/dom/index.js 4.42 kB 0 B
build/edit-navigation/index.js 10.6 kB 0 B
build/edit-navigation/style-rtl.css 868 B 0 B
build/edit-navigation/style.css 871 B 0 B
build/edit-post/index.js 306 kB 0 B
build/edit-post/style-rtl.css 6.29 kB 0 B
build/edit-post/style.css 6.28 kB 0 B
build/edit-site/index.js 21 kB 0 B
build/edit-site/style-rtl.css 3.73 kB 0 B
build/edit-site/style.css 3.73 kB 0 B
build/edit-widgets/index.js 21.2 kB 0 B
build/edit-widgets/style-rtl.css 3.02 kB 0 B
build/edit-widgets/style.css 3.02 kB 0 B
build/editor/editor-styles-rtl.css 492 B 0 B
build/editor/editor-styles.css 493 B 0 B
build/editor/index.js 45.5 kB 0 B
build/editor/style-rtl.css 3.85 kB 0 B
build/editor/style.css 3.84 kB 0 B
build/element/index.js 4.45 kB 0 B
build/escape-html/index.js 734 B 0 B
build/format-library/index.js 7.49 kB 0 B
build/format-library/style-rtl.css 547 B 0 B
build/format-library/style.css 548 B 0 B
build/hooks/index.js 1.74 kB 0 B
build/html-entities/index.js 621 B 0 B
build/i18n/index.js 3.54 kB 0 B
build/is-shallow-equal/index.js 710 B 0 B
build/keyboard-shortcuts/index.js 2.39 kB 0 B
build/keycodes/index.js 1.85 kB 0 B
build/list-reusable-blocks/index.js 3.02 kB 0 B
build/list-reusable-blocks/style-rtl.css 476 B 0 B
build/list-reusable-blocks/style.css 476 B 0 B
build/media-utils/index.js 5.12 kB 0 B
build/notices/index.js 1.69 kB 0 B
build/nux/index.js 3.27 kB 0 B
build/nux/style-rtl.css 671 B 0 B
build/nux/style.css 668 B 0 B
build/plugins/index.js 2.44 kB 0 B
build/primitives/index.js 1.34 kB 0 B
build/priority-queue/index.js 790 B 0 B
build/redux-routine/index.js 2.85 kB 0 B
build/rich-text/index.js 13 kB 0 B
build/server-side-render/index.js 2.6 kB 0 B
build/shortcode/index.js 1.7 kB 0 B
build/token-list/index.js 1.24 kB 0 B
build/url/index.js 4.06 kB 0 B
build/viewport/index.js 1.74 kB 0 B
build/warning/index.js 1.14 kB 0 B
build/wordcount/index.js 1.17 kB 0 B

compressed-size-action

@@ -36,6 +36,9 @@
"fontSize": true,
"lineHeight": true,
"__experimentalSelector": "p",
"__unstablePasteTextInline": true
"__unstablePasteTextInline": true,
"typography": {
Copy link
Member

@jorgefilipecosta jorgefilipecosta Oct 9, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The shape that is part of WordPress 5.5 is:

	"supports": {
		"anchor": true,
		"className": false,
		"lightBlockWrapper": true,
		"__experimentalColor": {
			"linkColor": true
		},
		"__experimentalFontSize": true,
		"__experimentalLineHeight": true,
		"__experimentalFeatures": {
			"typography": {
				"dropCap": true
			}
		},
		"__experimentalSelector": "p",
		"__unstablePasteTextInline": true
	}

typography.dropCap is under __experimentalFeatures. I think we should avoid exposing typography.dropCamp under supports without any experimental mark when we know that we want to remove this from block.json. Block authors may replicate our json file.

// when __experimentalFeatures are not present (core without plugin).
// To remove when __experimentalFeatures are ported to core.
const { getBlockSupport } = select( 'core/blocks' );
return getBlockSupport( blockName, featurePath );
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We only want this for typography.dropCap but in the end, we are adding a mechanism that allows to control any feature not explicitly set on theme.json via block.json. People may start relying on this and then removing the behavior would be breaking backward compatibility.

In practice what happens is that on WordPress 5.6 there is no way a theme or plugin can disable the dropCap right? It seems to be always true without a way to change that. If that's case could our fallback be as simple as returning true all the time if featurePath is typography.dropCap?
We would have:

// 3 - Fall back for "typography.dropCap".
if( featurePath === 'typography.dropCap' ) {
	return true;
}

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Implemented this at 62ac47f

Copy link

@jakewhiteley jakewhiteley Dec 15, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jorgefilipecosta @nosolosw the below is true as far as I can see now that 5.6 is released.

In practice what happens is that on WordPress 5.6 there is no way a theme or plugin can disable the dropCap right

Is there any way to disable dropCap? I understand the rationale behind this PR, but removing functionality that people are actively using while providing no alternative is not particularly useful.

Edit
A developer can still disable dropcap using the WordPress block_editor_settings filter in 5.6 :)

@oandregal oandregal force-pushed the update/use-editor-feature-dropcap branch from 611248b to 62ac47f Compare October 9, 2020 13:56
Copy link
Member

@jorgefilipecosta jorgefilipecosta left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM 👍

@oandregal oandregal merged commit 2709751 into master Oct 9, 2020
@oandregal oandregal deleted the update/use-editor-feature-dropcap branch October 9, 2020 14:47
@github-actions github-actions bot added this to the Gutenberg 9.2 milestone Oct 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
[Block] Paragraph Affects the Paragraph Block
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants