Jelajahi Sumber

Refactored font data in theme.json so that it wouldn't crash w/o Gutenberg

Jason Crist 3 tahun lalu
induk
melakukan
a2c719611d

+ 18 - 19
blockbase/inc/fonts/blockbase-fonts-provider.php

@@ -101,32 +101,31 @@ function register_blockbase_fonts_provider() {
 	wp_register_webfont_provider( 'blockbase-fonts', 'Blockbase_Fonts_Provider' );
 	wp_register_webfont_provider( 'blockbase-fonts', 'Blockbase_Fonts_Provider' );
 
 
 	foreach ( $settings['typography']['fontFamilies'] as $font_families ) {
 	foreach ( $settings['typography']['fontFamilies'] as $font_families ) {
-		foreach ( $font_families as $font_family ) {
+		foreach ( $font_families as $font ) {
 
 
-			// Skip if fontFace is not defined.
-			if ( empty( $font_family['fontFace'] ) ) {
+			// NOTE: Implemented correctly this would then operate on a `fontFace` collection.
+			// The format of the fontface in Blockbase's theme.json is abnormal so that CORE doesn't try to process
+			// them as local files (and allowing Blockbase to manage that itself).  Therefore 'provider' is defined
+			// incorrectly.  This should be fixable in WP 6.1
+
+			// Skip if the provider isn't blockbase-fonts
+			if ( ! array_key_exists( 'provider', $font ) || ! 'blockbase-fonts' === $font['provider'] ) {
 				continue;
 				continue;
 			}
 			}
 
 
-			$font_family['fontFace'] = (array) $font_family['fontFace'];
-
-			foreach ( $font_family['fontFace'] as $font_face ) {
-				// Skip if the provider isn't blockbase-fonts
-				if ( ! 'blockbase-fonts' === $font_face['provider'] ) {
-					continue;
-				}
+			$font['fontFamily'] = $font['name'];
+			unset( $font['name'] );
 
 
-				// Convert keys to kebab-case.
-				foreach ( $font_face as $property => $value ) {
-					$kebab_case               = _wp_to_kebab_case( $property );
-					$font_face[ $kebab_case ] = $value;
-					if ( $kebab_case !== $property ) {
-						unset( $font_face[ $property ] );
-					}
+			// Convert keys to kebab-case.
+			foreach ( $font as $property => $value ) {
+				$kebab_case          = _wp_to_kebab_case( $property );
+				$font[ $kebab_case ] = $value;
+				if ( $kebab_case !== $property ) {
+					unset( $font[ $property ] );
 				}
 				}
-
-				wp_webfonts()->register_webfont( $font_face );
 			}
 			}
+
+			wp_webfonts()->register_webfont( $font );
 		}
 		}
 	}
 	}
 
 

+ 3 - 3
blockbase/inc/fonts/custom-fonts.php

@@ -161,9 +161,9 @@ function enqueue_fse_font_styles( $fonts ) {
 	wp_add_inline_style( 'wp-block-library', $font_css );
 	wp_add_inline_style( 'wp-block-library', $font_css );
 }
 }
 
 
-if ( ! class_exists( '\WP_Webfonts_Provider' ) ) {
+if ( class_exists( '\WP_Webfonts_Provider' ) ) {
+	require get_template_directory() . '/inc/fonts/blockbase-fonts-provider.php';
+} else {
 	add_action( 'init', 'enqueue_global_styles_fonts' );
 	add_action( 'init', 'enqueue_global_styles_fonts' );
 	add_action( 'admin_init', 'enqueue_fse_font_styles' );
 	add_action( 'admin_init', 'enqueue_fse_font_styles' );
-} else {
-	require get_template_directory() . '/inc/fonts/blockbase-fonts-provider.php';
 }
 }

+ 31 - 217
blockbase/theme.json

@@ -369,373 +369,187 @@
 					"fontFamily": "Arvo, serif",
 					"fontFamily": "Arvo, serif",
 					"slug": "arvo",
 					"slug": "arvo",
 					"name": "Arvo",
 					"name": "Arvo",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "Arvo",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "'Bodoni Moda', serif",
 					"fontFamily": "'Bodoni Moda', serif",
 					"slug": "bodoni-moda",
 					"slug": "bodoni-moda",
 					"name": "Bodoni Moda",
 					"name": "Bodoni Moda",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "Bodoni Moda",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "Cabin, sans-serif",
 					"fontFamily": "Cabin, sans-serif",
 					"slug": "cabin",
 					"slug": "cabin",
 					"name": "Cabin",
 					"name": "Cabin",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "Cabin",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "Chivo, sans-serif",
 					"fontFamily": "Chivo, sans-serif",
 					"slug": "chivo",
 					"slug": "chivo",
 					"name": "Chivo",
 					"name": "Chivo",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "Chivo",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "'Courier Prime', serif",
 					"fontFamily": "'Courier Prime', serif",
 					"slug": "courier-prime",
 					"slug": "courier-prime",
 					"name": "Courier Prime",
 					"name": "Courier Prime",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "Courier Prime",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "'DM Sans', sans-serif",
 					"fontFamily": "'DM Sans', sans-serif",
 					"slug": "dm-sans",
 					"slug": "dm-sans",
 					"name": "DM Sans",
 					"name": "DM Sans",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "DM Sans",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "Domine, serif",
 					"fontFamily": "Domine, serif",
 					"slug": "domine",
 					"slug": "domine",
 					"name": "Domine",
 					"name": "Domine",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "Domine",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "'EB Garamond', serif",
 					"fontFamily": "'EB Garamond', serif",
 					"slug": "eb-garamond",
 					"slug": "eb-garamond",
 					"name": "EB Garamond",
 					"name": "EB Garamond",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "EB Garamond",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "'Fira Sans', sans-serif",
 					"fontFamily": "'Fira Sans', sans-serif",
 					"slug": "fira-sans",
 					"slug": "fira-sans",
 					"name": "Fira Sans",
 					"name": "Fira Sans",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "Fira Sans",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "'IBM Plex Mono', monospace",
 					"fontFamily": "'IBM Plex Mono', monospace",
 					"slug": "ibm-plex-mono",
 					"slug": "ibm-plex-mono",
 					"name": "IBM Plex Mono",
 					"name": "IBM Plex Mono",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "IBM Plex Mono",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "Inter, sans-serif",
 					"fontFamily": "Inter, sans-serif",
 					"slug": "inter",
 					"slug": "inter",
 					"name": "Inter",
 					"name": "Inter",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "Inter",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "'Josefin Sans', sans-serif",
 					"fontFamily": "'Josefin Sans', sans-serif",
 					"slug": "josefin-sans",
 					"slug": "josefin-sans",
 					"name": "Josefin Sans",
 					"name": "Josefin Sans",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "Josefin Sans",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "'Libre Baskerville', serif",
 					"fontFamily": "'Libre Baskerville', serif",
 					"slug": "libre-baskerville",
 					"slug": "libre-baskerville",
 					"name": "Libre Baskerville",
 					"name": "Libre Baskerville",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "Libre Baskerville",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "'Libre Franklin', sans-serif",
 					"fontFamily": "'Libre Franklin', sans-serif",
 					"slug": "libre-franklin",
 					"slug": "libre-franklin",
 					"name": "Libre Franklin",
 					"name": "Libre Franklin",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "Libre Franklin",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "Lora, serif",
 					"fontFamily": "Lora, serif",
 					"slug": "lora",
 					"slug": "lora",
 					"name": "Lora",
 					"name": "Lora",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "Lora",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "Merriweather, serif",
 					"fontFamily": "Merriweather, serif",
 					"slug": "merriweather",
 					"slug": "merriweather",
 					"name": "Merriweather",
 					"name": "Merriweather",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "Merriweather",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "Montserrat, sans-serif",
 					"fontFamily": "Montserrat, sans-serif",
 					"slug": "montserrat",
 					"slug": "montserrat",
 					"name": "Montserrat",
 					"name": "Montserrat",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "Montserrat",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "Nunito, sans-serif",
 					"fontFamily": "Nunito, sans-serif",
 					"slug": "nunito",
 					"slug": "nunito",
 					"name": "Nunito",
 					"name": "Nunito",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "Nunito",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "'Open Sans', sans-serif",
 					"fontFamily": "'Open Sans', sans-serif",
 					"slug": "open-sans",
 					"slug": "open-sans",
 					"name": "Open Sans",
 					"name": "Open Sans",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "Open Sans",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "Overpass, sans-serif",
 					"fontFamily": "Overpass, sans-serif",
 					"slug": "overpass",
 					"slug": "overpass",
 					"name": "Overpass",
 					"name": "Overpass",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "Overpass",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "'Playfair Display', serif",
 					"fontFamily": "'Playfair Display', serif",
 					"slug": "playfair-display",
 					"slug": "playfair-display",
 					"name": "Playfair Display",
 					"name": "Playfair Display",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "Playfair Display",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "Poppins, sans-serif",
 					"fontFamily": "Poppins, sans-serif",
 					"slug": "poppins",
 					"slug": "poppins",
 					"name": "Poppins",
 					"name": "Poppins",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "Poppins",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "Raleway, sans-serif",
 					"fontFamily": "Raleway, sans-serif",
 					"slug": "raleway",
 					"slug": "raleway",
 					"name": "Raleway",
 					"name": "Raleway",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "Raleway",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "'Red Hat Display', sans-serif",
 					"fontFamily": "'Red Hat Display', sans-serif",
 					"slug": "red-hat-display",
 					"slug": "red-hat-display",
 					"name": "Red Hat Display",
 					"name": "Red Hat Display",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "Red Hat Display",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "Roboto, sans-serif",
 					"fontFamily": "Roboto, sans-serif",
 					"slug": "roboto",
 					"slug": "roboto",
 					"name": "Roboto",
 					"name": "Roboto",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "Roboto",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "'Roboto Slab', sans-serif",
 					"fontFamily": "'Roboto Slab', sans-serif",
 					"slug": "roboto-slab",
 					"slug": "roboto-slab",
 					"name": "Roboto Slab",
 					"name": "Roboto Slab",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "Roboto Slab",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "Rubik, sans-serif",
 					"fontFamily": "Rubik, sans-serif",
 					"slug": "rubik",
 					"slug": "rubik",
 					"name": "Rubik",
 					"name": "Rubik",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "Rubik",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "'Source Sans Pro', sans-serif",
 					"fontFamily": "'Source Sans Pro', sans-serif",
 					"slug": "source-sans-pro",
 					"slug": "source-sans-pro",
 					"name": "Source Sans Pro",
 					"name": "Source Sans Pro",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "Source Sans Pro",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "'Source Serif Pro', sans-serif",
 					"fontFamily": "'Source Serif Pro', sans-serif",
 					"slug": "source-serif-pro",
 					"slug": "source-serif-pro",
 					"name": "Source Serif Pro",
 					"name": "Source Serif Pro",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "Source Serif Pro",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "'Space Mono', sans-serif",
 					"fontFamily": "'Space Mono', sans-serif",
 					"slug": "space-mono",
 					"slug": "space-mono",
 					"name": "Space Mono",
 					"name": "Space Mono",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "Space Mono",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				},
 				},
 				{
 				{
 					"fontFamily": "'Work Sans', sans-serif",
 					"fontFamily": "'Work Sans', sans-serif",
 					"slug": "work-sans",
 					"slug": "work-sans",
 					"name": "Work Sans",
 					"name": "Work Sans",
-					"fontFace": [
-						{
-							"provider": "blockbase-fonts",
-							"fontFamily": "Work Sans",
-							"origin": "gutenberg_wp_webfonts_api"
-						}
-					]
+					"provider": "blockbase-fonts"
 				}
 				}
 			],
 			],
 			"fontSizes": [
 			"fontSizes": [