Add and enable the drupal_cms_seo_tools recipe

```bash
composer require drupal/drupal_cms_seo_tools
drush recipe $(pwd)/recipes/drupal_cms_seo_tools
```
This commit is contained in:
Oliver Davies 2025-04-16 18:18:17 +01:00
parent a4eacb5cf4
commit bc2ab546d4
17 changed files with 2547 additions and 1 deletions

View file

@ -0,0 +1,200 @@
langcode: en
status: true
dependencies:
module:
- eca_base
- eca_config
- eca_content
- eca_misc
- eca_user
id: node_sitemap_settings
modeller: bpmn_io
label: 'Automatically configure sitemap settings for content types'
version: 1.0.0
weight: 0
events:
Event_save_config:
plugin: 'config:save'
label: 'Create node bundle'
configuration:
config_name: node.type.
sync_mode: 'no'
write_mode: new
successors:
-
id: Activity_switch_user
condition: Flow_path_is_not_add_bundle
Event_applied_seo_tools:
plugin: 'drupal:recipe_applied'
label: 'SEO Tools applied'
configuration:
recipe_base_path: drupal_cms_seo_tools
successors:
-
id: Activity_1ghfkn0
condition: ''
conditions:
Flow_number_of_bundles:
plugin: eca_count
configuration:
negate: false
case: false
left: bundles
right: '0'
operator: greaterthan
type: numeric
Flow_path_is_not_add_bundle:
plugin: eca_scalar
configuration:
case: false
left: '[current-page:url:path]'
right: /admin/structure/types/add
operator: equal
type: value
negate: true
Flow_config_is_empty:
plugin: eca_scalar
configuration:
negate: false
case: false
left: '[priority]'
right: priority
operator: contains
type: value
Flow_config_exists:
plugin: eca_scalar
configuration:
case: false
left: '[priority]'
right: priority
operator: contains
type: value
negate: true
gateways:
Gateway_AND_1:
type: 0
successors:
-
id: Activity_get_bundle_id
condition: Flow_number_of_bundles
actions:
Activity_set_bundle_id_to_token:
plugin: eca_token_set_value
label: 'Remember bundle id'
configuration:
token_name: bundle
token_value: '[config:type]'
use_yaml: false
successors:
-
id: Activity_read_sitemap_config_for_bundle
condition: ''
Activity_set_index:
plugin: eca_config_write
label: 'Set index'
configuration:
config_value: '1'
use_yaml: false
save_config: true
config_name: 'simple_sitemap.bundle_settings.default.node.[bundle]'
config_key: index
successors:
-
id: Activity_set_priority
condition: ''
Activity_set_priority:
plugin: eca_config_write
label: 'Set priority'
configuration:
config_value: '0.9'
use_yaml: false
save_config: true
config_name: 'simple_sitemap.bundle_settings.default.node.[bundle]'
config_key: priority
successors:
-
id: Activity_set_changefreq
condition: ''
Activity_set_changefreq:
plugin: eca_config_write
label: 'Set changefreq'
configuration:
config_value: daily
use_yaml: false
save_config: true
config_name: 'simple_sitemap.bundle_settings.default.node.[bundle]'
config_key: changefreq
successors:
-
id: Activity_set_include_images
condition: ''
Activity_set_include_images:
plugin: eca_config_write
label: 'Set include_images'
configuration:
config_value: '0'
use_yaml: false
save_config: true
config_name: 'simple_sitemap.bundle_settings.default.node.[bundle]'
config_key: include_images
successors:
-
id: Gateway_AND_1
condition: ''
Activity_get_list_of_bundles:
plugin: eca_get_bundle_list
label: 'Get bundles'
configuration:
token_name: bundles
type: node
mode: ids
successors:
-
id: Gateway_AND_1
condition: ''
Activity_get_bundle_id:
plugin: eca_list_remove
label: 'Get next bundle ID'
configuration:
value: ''
token_name: bundle
method: first
index: ''
list_token: bundles
successors:
-
id: Activity_read_sitemap_config_for_bundle
condition: ''
Activity_read_sitemap_config_for_bundle:
plugin: eca_config_read
label: 'Read sitemap setting'
configuration:
token_name: priority
include_overridden: true
config_name: 'simple_sitemap.bundle_settings.default.node.[bundle]'
config_key: priority
successors:
-
id: Activity_set_index
condition: Flow_config_is_empty
-
id: Gateway_AND_1
condition: Flow_config_exists
Activity_switch_user:
plugin: eca_switch_account
label: 'Switch user'
configuration:
user_id: '1'
successors:
-
id: Activity_set_bundle_id_to_token
condition: ''
Activity_1ghfkn0:
plugin: eca_switch_account
label: 'Switch user'
configuration:
user_id: '1'
successors:
-
id: Activity_get_list_of_bundles
condition: ''

View file

@ -0,0 +1,18 @@
langcode: en
status: true
dependencies:
module:
- node
- yoast_seo
id: node.field_seo_analysis
field_name: field_seo_analysis
entity_type: node
type: yoast_seo
settings: { }
module: yoast_seo
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View file

@ -0,0 +1,18 @@
langcode: en
status: true
dependencies:
module:
- node
id: node.field_seo_description
field_name: field_seo_description
entity_type: node
type: string_long
settings:
case_sensitive: false
module: core
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View file

@ -0,0 +1,19 @@
langcode: en
status: true
dependencies:
module:
- media
- node
id: node.field_seo_image
field_name: field_seo_image
entity_type: node
type: entity_reference
settings:
target_type: media
module: core
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View file

@ -0,0 +1,20 @@
langcode: en
status: true
dependencies:
module:
- node
id: node.field_seo_title
field_name: field_seo_title
entity_type: node
type: string
settings:
max_length: 255
case_sensitive: false
is_ascii: false
module: core
locked: false
cardinality: 1
translatable: true
indexes: { }
persist_with_no_fields: false
custom_storage: false

View file

@ -0,0 +1,22 @@
langcode: en
status: true
dependencies:
module:
- focal_point
name: social_media_facebook
label: 'Social media - Facebook'
effects:
338d92b4-4580-4118-aa11-96fb253e343e:
uuid: 338d92b4-4580-4118-aa11-96fb253e343e
id: focal_point_scale_and_crop
weight: 1
data:
width: 1200
height: 630
crop_type: focal_point
8ddd479d-03db-45d3-8591-a7b72e13bb21:
uuid: 8ddd479d-03db-45d3-8591-a7b72e13bb21
id: image_convert
weight: 2
data:
extension: webp

View file

@ -0,0 +1,22 @@
langcode: en
status: true
dependencies:
module:
- focal_point
name: social_media_x
label: 'Social media - X (Twitter)'
effects:
7de498f6-16e8-4f33-aa2b-afc30ad91155:
uuid: 7de498f6-16e8-4f33-aa2b-afc30ad91155
id: focal_point_scale_and_crop
weight: 1
data:
width: 1600
height: 900
crop_type: focal_point
94553ea6-7659-4f21-b586-3dd07fb21e88:
uuid: 94553ea6-7659-4f21-b586-3dd07fb21e88
id: image_convert
weight: 2
data:
extension: webp

View file

@ -0,0 +1,28 @@
langcode: en
status: true
id: front
label: 'Front page'
tags:
canonical_url: '[site:url]'
description: '[node:field_seo_description|node:field_description]'
image_src: '[node:field_seo_image:entity:field_media_image:social_media_facebook|node:field_image:entity:field_media_image:social_media_facebook]'
og_description: '[node:field_seo_description|node:field_description]'
og_image: '[node:field_seo_image:entity:field_media_image:social_media_facebook|node:field_image:entity:field_media_image:social_media_facebook]'
og_image_alt: '[node:field_seo_image:entity:field_media_image:alt|node:field_image:entity:field_media_image:alt]'
og_image_height: '[node:field_seo_image:entity:field_media_image:social_media_facebook:height|node:field_image:entity:field_media_image:social_media_facebook:height]'
og_image_type: '[node:field_seo_image:entity:field_media_image:social_media_facebook:mimetype|node:field_image:entity:field_media_image:social_media_facebook:mimetype]'
og_image_width: '[node:field_seo_image:entity:field_media_image:social_media_facebook:width|node:field_image:entity:field_media_image:social_media_facebook:width]'
og_site_name: '[site:name]'
og_title: '[node:field_seo_title|node:title]'
og_type: website
og_updated_time: '[node:changed:custom:c]'
og_url: '[current-page:url:absolute]'
referrer: unsafe-url
rights: 'Copyright ©[date:html_year] All rights reserved.'
shortlink: '[site:url]'
title: '[node:field_seo_title|node:title] | [site:name]'
twitter_cards_description: '[node:field_seo_description|node:field_description]'
twitter_cards_image: '[node:field_seo_image:entity:field_media_image:social_media_x:url|node:field_image:entity:field_media_image:social_media_x:url]'
twitter_cards_image_alt: '[node:field_seo_image:entity:field_media_image:alt|node:field_image:entity:field_media_image:alt]'
twitter_cards_title: '[node:field_seo_title|node:title]'
twitter_cards_type: summary_large_image

View file

@ -0,0 +1,13 @@
langcode: en
status: true
id: global
label: Global
tags:
referrer: unsafe-url
title: '[current-page:title] | [site:name]'
canonical_url: '[current-page:url:absolute]'
shortlink: '[current-page:url:unaliased]'
rights: 'Copyright ©[date:html_year] All rights reserved.'
og_url: '[current-page:url:absolute]'
og_site_name: '[site:name]'
twitter_cards_type: summary

View file

@ -0,0 +1,28 @@
langcode: en
status: true
id: node
label: Content
tags:
canonical_url: '[current-page:url:absolute]'
description: '[node:field_seo_description|node:field_description]'
image_src: '[node:field_seo_image:entity:field_media_image:social_media_facebook|node:field_featured_image:entity:field_media_image:social_media_facebook]'
og_description: '[node:field_seo_description|node:field_description]'
og_image: '[node:field_seo_image:entity:field_media_image:social_media_facebook|node:field_featured_image:entity:field_media_image:social_media_facebook]'
og_image_alt: '[node:field_seo_image:entity:field_media_image:alt|node:field_featured_image:entity:field_media_image:alt]'
og_image_height: '[node:field_seo_image:entity:field_media_image:social_media_facebook:height|node:field_featured_image:entity:field_media_image:social_media_facebook:height]'
og_image_type: '[node:field_seo_image:entity:field_media_image:social_media_facebook:mimetype|node:field_featured_image:entity:field_media_image:social_media_facebook:mimetype]'
og_image_width: '[node:field_seo_image:entity:field_media_image:social_media_facebook:width|node:field_featured_image:entity:field_media_image:social_media_facebook:width]'
og_site_name: '[site:name]'
og_title: '[node:field_seo_title|node:title]'
og_type: article
og_updated_time: '[node:changed:custom:c]'
og_url: '[current-page:url:absolute]'
referrer: unsafe-url
rights: 'Copyright ©[date:html_year] All rights reserved.'
shortlink: '[site:url]'
title: '[node:field_seo_title|node:title] | [site:name]'
twitter_cards_description: '[node:field_seo_description|node:field_description]'
twitter_cards_image: '[node:field_seo_image:entity:field_media_image:social_media_x:url|node:field_featured_image:entity:field_media_image:social_media_x:url]'
twitter_cards_image_alt: '[node:field_seo_image:entity:field_media_image:alt|node:field_featured_image:entity:field_media_image:alt]'
twitter_cards_title: '[node:field_seo_title|node:title]'
twitter_cards_type: summary_large_image