Skip to content

Commit e996a63

Browse files
authored
Merge pull request #1218 from alleyinteractive/feature/APPLE10-9/new-component
Add support for Recipe component
2 parents ef8c813 + 963679f commit e996a63

File tree

14 files changed

+2616
-195
lines changed

14 files changed

+2616
-195
lines changed

admin/settings/class-admin-apple-settings-section-advanced.php

Lines changed: 25 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,27 +32,27 @@ public function __construct( $page ) {
3232

3333
// Add the settings.
3434
$this->settings = [
35-
'component_alerts' => [
35+
'component_alerts' => [
3636
'label' => __( 'Component Alerts', 'apple-news' ),
3737
'type' => [ 'none', 'warn', 'fail' ],
3838
'description' => __( 'If a post has a component that is unsupported by Apple News, choose "none" to generate no alert, "warn" to provide an admin warning notice, or "fail" to generate a notice and stop publishing.', 'apple-news' ),
3939
],
40-
'use_remote_images' => [
40+
'use_remote_images' => [
4141
'label' => __( 'Use Remote Images?', 'apple-news' ),
4242
'type' => [ 'yes', 'no' ],
4343
'description' => __( 'Allow the Apple News API to retrieve images remotely rather than bundle them. This setting is recommended if you are having any issues with publishing images. If your images are not publicly accessible, such as on a development site, you cannot use this feature.', 'apple-news' ),
4444
],
45-
'full_bleed_images' => [
45+
'full_bleed_images' => [
4646
'label' => __( 'Use Full-Bleed Images?', 'apple-news' ),
4747
'type' => [ 'yes', 'no' ],
4848
'description' => __( 'If set to yes, images that are centered or have no alignment will span edge-to-edge rather than being constrained within the body margins.', 'apple-news' ),
4949
],
50-
'deduplicate_cover_media' => [
50+
'deduplicate_cover_media' => [
5151
'label' => __( 'Deduplicate Cover Media?', 'apple-news' ),
5252
'type' => [ 'yes', 'no' ],
5353
'description' => __( 'If set to yes, any image, video, or other content selected as an article\'s Cover Media will not appear again in the article body in Apple News.', 'apple-news' ),
5454
],
55-
'html_support' => [
55+
'html_support' => [
5656
'label' => __( 'Enable HTML support?', 'apple-news' ),
5757
'type' => [ 'yes', 'no' ],
5858
'description' => sprintf(
@@ -62,21 +62,34 @@ public function __construct( $page ) {
6262
'</a>'
6363
),
6464
],
65-
'in_article_position' => [
65+
'in_article_position' => [
6666
'label' => __( 'Position of In Article Module', 'apple-news' ),
6767
'type' => 'number',
6868
'min' => 3,
6969
'max' => 99,
7070
'step' => 1,
7171
'description' => __( 'If you have configured an In Article module via Customize JSON, the position that the module should be inserted into. Defaults to 3, which is after the third content block in the article body (e.g., the third paragraph).', 'apple-news' ),
7272
],
73-
'aside_component_class' => [
73+
'aside_component_class' => [
7474
'label' => __( 'Aside Content CSS Class', 'apple-news' ),
7575
'type' => 'text',
76+
'size' => 100,
7677
'description' => __( 'Enter a CSS class name that will be used to generate the Aside component. Do not prefix with a period.', 'apple-news' ),
7778
'required' => false,
7879
],
79-
'excluded_selectors' => [
80+
'recipe_component_class' => [
81+
'label' => __( 'Recipe Content CSS Class', 'apple-news' ),
82+
'type' => 'text',
83+
'size' => 100,
84+
'description' => __( 'Enter a CSS class name that will be used to generate the Recipe component. Do not prefix with a period.', 'apple-news' ),
85+
'required' => false,
86+
],
87+
'recipe_component_use_schema' => [
88+
'label' => __( 'Build Recipe Component From Structured Data', 'apple-news' ),
89+
'type' => [ 'yes', 'no' ],
90+
'description' => __( 'Set to yes if you want the recipe JSON-LD to replace the HTML markup inside the specified CSS class. Set to no if you want to render the HTML markup inside the specified CSS class as-is.', 'apple-news' ),
91+
],
92+
'excluded_selectors' => [
8093
'label' => __( 'Selectors', 'apple-news' ),
8194
'type' => 'text',
8295
'size' => 100,
@@ -111,6 +124,10 @@ public function __construct( $page ) {
111124
'label' => __( 'Aside Component', 'apple-news' ),
112125
'settings' => [ 'aside_component_class' ],
113126
],
127+
'recipe' => [
128+
'label' => __( 'Recipe Component', 'apple-news' ),
129+
'settings' => [ 'recipe_component_class', 'recipe_component_use_schema' ],
130+
],
114131
'selectors' => [
115132
'label' => __( 'Excluded Elements', 'apple-news' ),
116133
'settings' => [ 'excluded_selectors' ],

assets/themes/classic.json

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -270,6 +270,48 @@
270270
"pullquote_size": 27,
271271
"pullquote_tracking": -2,
272272
"pullquote_transform": "none",
273+
"recipe_background_color": "#d3d3d3",
274+
"recipe_body_background_color": "#d3d3d3",
275+
"recipe_body_color": "#000000",
276+
"recipe_body_font": "Georgia",
277+
"recipe_body_line_height": 23,
278+
"recipe_body_link_color": "#5c5c5c",
279+
"recipe_body_size": 17,
280+
"recipe_body_tracking": 0,
281+
"recipe_caption_background_color": "#d3d3d3",
282+
"recipe_caption_color": "#000000",
283+
"recipe_caption_font": "Georgia",
284+
"recipe_caption_line_height": 23,
285+
"recipe_caption_link_color": "#5c5c5c",
286+
"recipe_caption_size": 17,
287+
"recipe_caption_tracking": 0,
288+
"recipe_details_background_color": "#d3d3d3",
289+
"recipe_details_color": "#000000",
290+
"recipe_details_font": "Georgia",
291+
"recipe_details_line_height": 23,
292+
"recipe_details_link_color": "#5c5c5c",
293+
"recipe_details_size": 17,
294+
"recipe_details_tracking": 0,
295+
"recipe_header2_color": "#000000",
296+
"recipe_header2_font": "Helvetica",
297+
"recipe_header2_line_height": 32,
298+
"recipe_header2_size": 23,
299+
"recipe_header2_tracking": -2,
300+
"recipe_header3_color": "#000000",
301+
"recipe_header3_font": "Helvetica",
302+
"recipe_header3_line_height": 29,
303+
"recipe_header3_size": 21,
304+
"recipe_header3_tracking": -2,
305+
"recipe_header4_color": "#000000",
306+
"recipe_header4_font": "Helvetica",
307+
"recipe_header4_line_height": 27,
308+
"recipe_header4_size": 19,
309+
"recipe_header4_tracking": -2,
310+
"recipe_title_color": "#000000",
311+
"recipe_title_font": "Helvetica",
312+
"recipe_title_line_height": 35,
313+
"recipe_title_size": 25,
314+
"recipe_title_tracking": -2,
273315
"slug_color": "#000000",
274316
"slug_font": "Helvetica-Bold",
275317
"slug_line_height": 24,

assets/themes/colorful.json

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -274,6 +274,48 @@
274274
"pullquote_size": 36,
275275
"pullquote_tracking": -5,
276276
"pullquote_transform": "none",
277+
"recipe_background_color": "#ffff00",
278+
"recipe_body_background_color": "#ffff00",
279+
"recipe_body_color": "#3045ca",
280+
"recipe_body_font": "Optima-Regular",
281+
"recipe_body_line_height": 22,
282+
"recipe_body_link_color": "#3045ca",
283+
"recipe_body_size": 17,
284+
"recipe_body_tracking": 0,
285+
"recipe_caption_background_color": "#ffff00",
286+
"recipe_caption_color": "#3045ca",
287+
"recipe_caption_font": "Optima-Regular",
288+
"recipe_caption_line_height": 22,
289+
"recipe_caption_link_color": "#3045ca",
290+
"recipe_caption_size": 17,
291+
"recipe_caption_tracking": 0,
292+
"recipe_details_background_color": "#ffff00",
293+
"recipe_details_color": "#3045ca",
294+
"recipe_details_font": "Optima-Regular",
295+
"recipe_details_line_height": 22,
296+
"recipe_details_link_color": "#3045ca",
297+
"recipe_details_size": 17,
298+
"recipe_details_tracking": 0,
299+
"recipe_header2_color": "#3045ca",
300+
"recipe_header2_font": "Georgia",
301+
"recipe_header2_line_height": 28,
302+
"recipe_header2_size": 28,
303+
"recipe_header2_tracking": -3,
304+
"recipe_header3_color": "#3045ca",
305+
"recipe_header3_font": "Georgia",
306+
"recipe_header3_line_height": 26,
307+
"recipe_header3_size": 26,
308+
"recipe_header3_tracking": -3,
309+
"recipe_header4_color": "#3045ca",
310+
"recipe_header4_font": "Georgia",
311+
"recipe_header4_line_height": 24,
312+
"recipe_header4_size": 24,
313+
"recipe_header4_tracking": -3,
314+
"recipe_title_color": "#3045ca",
315+
"recipe_title_font": "Georgia",
316+
"recipe_title_line_height": 36,
317+
"recipe_title_size": 36,
318+
"recipe_title_tracking": -3,
277319
"slug_color": "#000000",
278320
"slug_font": "Optima-Regular",
279321
"slug_line_height": 26,

assets/themes/dark.json

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -290,6 +290,48 @@
290290
"pullquote_size": 29,
291291
"pullquote_tracking": -2,
292292
"pullquote_transform": "none",
293+
"recipe_background_color": "",
294+
"recipe_body_background_color": "",
295+
"recipe_body_color": "#e2e2e2",
296+
"recipe_body_font": "Georgia",
297+
"recipe_body_line_height": 23,
298+
"recipe_body_link_color": "#ffe890",
299+
"recipe_body_size": 17,
300+
"recipe_body_tracking": 0,
301+
"recipe_caption_background_color": "",
302+
"recipe_caption_color": "#e2e2e2",
303+
"recipe_caption_font": "Georgia",
304+
"recipe_caption_line_height": 23,
305+
"recipe_caption_link_color": "#ffe890",
306+
"recipe_caption_size": 17,
307+
"recipe_caption_tracking": 0,
308+
"recipe_details_background_color": "",
309+
"recipe_details_color": "#e2e2e2",
310+
"recipe_details_font": "Georgia",
311+
"recipe_details_line_height": 23,
312+
"recipe_details_link_color": "#ffe890",
313+
"recipe_details_size": 17,
314+
"recipe_details_tracking": 0,
315+
"recipe_header2_color": "#ffffff",
316+
"recipe_header2_font": "HelveticaNeue-Thin",
317+
"recipe_header2_line_height": 31,
318+
"recipe_header2_size": 27,
319+
"recipe_header2_tracking": 0,
320+
"recipe_header3_color": "#ffffff",
321+
"recipe_header3_font": "HelveticaNeue-Thin",
322+
"recipe_header3_line_height": 28,
323+
"recipe_header3_size": 25,
324+
"recipe_header3_tracking": 0,
325+
"recipe_header4_color": "#ffffff",
326+
"recipe_header4_font": "HelveticaNeue-Thin",
327+
"recipe_header4_line_height": 26,
328+
"recipe_header4_size": 23,
329+
"recipe_header4_tracking": 0,
330+
"recipe_title_color": "#ffffff",
331+
"recipe_title_font": "HelveticaNeue-Thin",
332+
"recipe_title_line_height": 33,
333+
"recipe_title_size": 29,
334+
"recipe_title_tracking": 0,
293335
"slug_color": "#e2e2e2",
294336
"slug_font": "Helvetica-Bold",
295337
"slug_line_height": 26,

assets/themes/default.json

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,48 @@
121121
"pullquote_size": 48,
122122
"pullquote_tracking": 0,
123123
"pullquote_transform": "uppercase",
124+
"recipe_background_color": "#e1e1e1",
125+
"recipe_body_background_color": "#e1e1e1",
126+
"recipe_body_color": "#4f4f4f",
127+
"recipe_body_font": "AvenirNext-Regular",
128+
"recipe_body_line_height": 24,
129+
"recipe_body_link_color": "#428bca",
130+
"recipe_body_size": 18,
131+
"recipe_body_tracking": 0,
132+
"recipe_caption_background_color": "#e1e1e1",
133+
"recipe_caption_color": "#4f4f4f",
134+
"recipe_caption_font": "AvenirNext-Regular",
135+
"recipe_caption_line_height": 24,
136+
"recipe_caption_link_color": "#428bca",
137+
"recipe_caption_size": 18,
138+
"recipe_caption_tracking": 0,
139+
"recipe_details_background_color": "#e1e1e1",
140+
"recipe_details_color": "#4f4f4f",
141+
"recipe_details_font": "AvenirNext-Regular",
142+
"recipe_details_line_height": 24,
143+
"recipe_details_link_color": "#428bca",
144+
"recipe_details_size": 18,
145+
"recipe_details_tracking": 0,
146+
"recipe_header2_color": "#333333",
147+
"recipe_header2_font": "AvenirNext-Bold",
148+
"recipe_header2_line_height": 28,
149+
"recipe_header2_size": 24,
150+
"recipe_header2_tracking": 0,
151+
"recipe_header3_color": "#333333",
152+
"recipe_header3_font": "AvenirNext-Bold",
153+
"recipe_header3_line_height": 26,
154+
"recipe_header3_size": 21,
155+
"recipe_header3_tracking": 0,
156+
"recipe_header4_color": "#333333",
157+
"recipe_header4_font": "AvenirNext-Bold",
158+
"recipe_header4_line_height": 24,
159+
"recipe_header4_size": 18,
160+
"recipe_header4_tracking": 0,
161+
"recipe_title_color": "#333333",
162+
"recipe_title_font": "AvenirNext-Bold",
163+
"recipe_title_line_height": 36,
164+
"recipe_title_size": 32,
165+
"recipe_title_tracking": 0,
124166
"slug_color": "#4f4f4f",
125167
"slug_font": "AvenirNext-Medium",
126168
"slug_line_height": 26,

assets/themes/modern.json

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,48 @@
309309
"pullquote_size": 36,
310310
"pullquote_tracking": -5,
311311
"pullquote_transform": "none",
312+
"recipe_background_color": "#e6f7ff",
313+
"recipe_body_background_color": "#e6f7ff",
314+
"recipe_body_color": "#30bcff",
315+
"recipe_body_font": "Optima-Regular",
316+
"recipe_body_line_height": 22,
317+
"recipe_body_link_color": "#30bcff",
318+
"recipe_body_size": 17,
319+
"recipe_body_tracking": 0,
320+
"recipe_caption_background_color": "#e6f7ff",
321+
"recipe_caption_color": "#30bcff",
322+
"recipe_caption_font": "Optima-Regular",
323+
"recipe_caption_line_height": 22,
324+
"recipe_caption_link_color": "#30bcff",
325+
"recipe_caption_size": 17,
326+
"recipe_caption_tracking": 0,
327+
"recipe_details_background_color": "#e6f7ff",
328+
"recipe_details_color": "#30bcff",
329+
"recipe_details_font": "Optima-Regular",
330+
"recipe_details_line_height": 22,
331+
"recipe_details_link_color": "#30bcff",
332+
"recipe_details_size": 17,
333+
"recipe_details_tracking": 0,
334+
"recipe_header2_color": "#000000",
335+
"recipe_header2_font": "AvenirNext-Bold",
336+
"recipe_header2_line_height": 46,
337+
"recipe_header2_size": 48,
338+
"recipe_header2_tracking": -4,
339+
"recipe_header3_color": "#000000",
340+
"recipe_header3_font": "AvenirNext-Bold",
341+
"recipe_header3_line_height": 34,
342+
"recipe_header3_size": 36,
343+
"recipe_header3_tracking": -4,
344+
"recipe_header4_color": "#000000",
345+
"recipe_header4_font": "AvenirNext-Bold",
346+
"recipe_header4_line_height": 22,
347+
"recipe_header4_size": 24,
348+
"recipe_header4_tracking": -4,
349+
"recipe_title_color": "#000000",
350+
"recipe_title_font": "AvenirNext-Bold",
351+
"recipe_title_line_height": 58,
352+
"recipe_title_size": 60,
353+
"recipe_title_tracking": -4,
312354
"slug_color": "#000000",
313355
"slug_font": "AvenirNext-Regular",
314356
"slug_line_height": 26,

assets/themes/pastel.json

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -278,6 +278,48 @@
278278
"pullquote_size": 22,
279279
"pullquote_tracking": 5,
280280
"pullquote_transform": "uppercase",
281+
"recipe_background_color": "#ffebe0",
282+
"recipe_body_background_color": "#ffebe0",
283+
"recipe_body_color": "#000000",
284+
"recipe_body_font": "Georgia",
285+
"recipe_body_line_height": 23,
286+
"recipe_body_link_color": "#000000",
287+
"recipe_body_size": 17,
288+
"recipe_body_tracking": 0,
289+
"recipe_caption_background_color": "#ffebe0",
290+
"recipe_caption_color": "#000000",
291+
"recipe_caption_font": "Georgia",
292+
"recipe_caption_line_height": 23,
293+
"recipe_caption_link_color": "#000000",
294+
"recipe_caption_size": 17,
295+
"recipe_caption_tracking": 0,
296+
"recipe_details_background_color": "#ffebe0",
297+
"recipe_details_color": "#000000",
298+
"recipe_details_font": "Georgia",
299+
"recipe_details_line_height": 23,
300+
"recipe_details_link_color": "#000000",
301+
"recipe_details_size": 17,
302+
"recipe_details_tracking": 0,
303+
"recipe_header2_color": "#000000",
304+
"recipe_header2_font": "AvenirNext-Italic",
305+
"recipe_header2_line_height": 31,
306+
"recipe_header2_size": 23,
307+
"recipe_header2_tracking": 12,
308+
"recipe_header3_color": "#000000",
309+
"recipe_header3_font": "AvenirNext-Italic",
310+
"recipe_header3_line_height": 29,
311+
"recipe_header3_size": 21,
312+
"recipe_header3_tracking": 12,
313+
"recipe_header4_color": "#000000",
314+
"recipe_header4_font": "AvenirNext-Italic",
315+
"recipe_header4_line_height": 26,
316+
"recipe_header4_size": 19,
317+
"recipe_header4_tracking": 12,
318+
"recipe_title_color": "#000000",
319+
"recipe_title_font": "AvenirNext-Italic",
320+
"recipe_title_line_height": 34,
321+
"recipe_title_size": 25,
322+
"recipe_title_tracking": 12,
281323
"slug_color": "#000000",
282324
"slug_font": "AvenirNext-Bold",
283325
"slug_line_height": 26,

includes/apple-exporter/class-component-factory.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,7 @@ public static function initialize(
121121
self::register_component( 'author', '\\Apple_Exporter\\Components\\Author' );
122122
self::register_component( 'date', '\\Apple_Exporter\\Components\\Date' );
123123
self::register_component( 'slug', '\\Apple_Exporter\\Components\\Slug' );
124+
self::register_component( 'recipe', '\\Apple_Exporter\\Components\\Recipe' );
124125
self::register_component( 'end-of-article', '\\Apple_Exporter\\Components\\End_Of_Article' );
125126
self::register_component( 'in-article', '\\Apple_Exporter\\Components\\In_Article' );
126127

0 commit comments

Comments
 (0)