diff --git a/cdmm/Gemfile b/cdmm/Gemfile index 21f4172..2d100ee 100644 --- a/cdmm/Gemfile +++ b/cdmm/Gemfile @@ -33,6 +33,8 @@ gem "tzinfo-data", platforms: %i[ windows jruby ] # Reduces boot times through caching; required in config/boot.rb gem "bootsnap", require: false +gem "meta-tags" + # Use Active Storage variants [https://guides.rubyonrails.org/active_storage_overview.html#transforming-images] # gem "image_processing", "~> 1.2" diff --git a/cdmm/Gemfile.lock b/cdmm/Gemfile.lock index d632e7f..257cdc2 100644 --- a/cdmm/Gemfile.lock +++ b/cdmm/Gemfile.lock @@ -141,6 +141,8 @@ GEM net-smtp marcel (1.0.4) matrix (0.4.2) + meta-tags (2.22.1) + actionpack (>= 6.0.0, < 8.1) mini_mime (1.1.5) minitest (5.25.1) msgpack (1.7.3) @@ -341,6 +343,7 @@ DEPENDENCIES debug importmap-rails jbuilder + meta-tags puma (>= 5.0) rails (~> 7.2.1, >= 7.2.1.1) rails_live_reload diff --git a/cdmm/app/helpers/application_helper.rb b/cdmm/app/helpers/application_helper.rb index de6be79..d6bcdff 100644 --- a/cdmm/app/helpers/application_helper.rb +++ b/cdmm/app/helpers/application_helper.rb @@ -1,2 +1,26 @@ module ApplicationHelper + def default_meta_tags + { + site: 'CDMM', + title: 'Continuous Delivery Maturity Model', + reverse: true, + separator: '|', + description: 'Continuous Delivery Maturity Assessment Form', + keywords: 'action, horror, drama', + canonical: request.original_url, + noindex: !Rails.env.production?, + icon: [ + { href: image_url('box.svg'), type: 'image/svg+xml' }, + # { href: image_url('icon.jpg'), rel: 'apple-touch-icon', sizes: '180x180', type: 'image/jpg' }, + ], + og: { + site_name: 'CDMM', + title: 'Continuous Delivery Maturity Model', + description: 'The Continuous Delivery Maturity Assessment Form', + type: 'website', + url: request.original_url, + # image: image_url('login-page.png') + } + } + end end diff --git a/cdmm/app/views/layouts/application.html.erb b/cdmm/app/views/layouts/application.html.erb index 70199c1..bfead44 100644 --- a/cdmm/app/views/layouts/application.html.erb +++ b/cdmm/app/views/layouts/application.html.erb @@ -1,6 +1,7 @@ + <%= display_meta_tags default_meta_tags %> <%= content_for(:title) || "CDMM" %> diff --git a/cdmm/config/initializers/meta_tags.rb b/cdmm/config/initializers/meta_tags.rb new file mode 100644 index 0000000..752ed4c --- /dev/null +++ b/cdmm/config/initializers/meta_tags.rb @@ -0,0 +1,49 @@ +# frozen_string_literal: true + +# Use this setup block to configure all options available in MetaTags. +MetaTags.configure do |config| + # How many characters should the title meta tag have at most. Default is 70. + # Set to nil or 0 to remove limits. + # config.title_limit = 70 + + # When true, site title will be truncated instead of title. Default is false. + # config.truncate_site_title_first = false + + # Add HTML attributes to the HTML tag. Default is {}. + # config.title_tag_attributes = {} + + # Natural separator when truncating. Default is " " (space character). + # Set to nil to disable natural separator. + # This also allows you to use a whitespace regular expression (/\s/) or + # a Unicode space (/\p{Space}/). + # config.truncate_on_natural_separator = " " + + # Maximum length of the page description. Default is 300. + # Set to nil or 0 to remove limits. + # config.description_limit = 300 + + # Maximum length of the keywords meta tag. Default is 255. + # config.keywords_limit = 255 + + # Default separator for keywords meta tag (used when an Array passed with + # the list of keywords). Default is ", ". + # config.keywords_separator = ', ' + + # When true, keywords will be converted to lowercase, otherwise they will + # appear on the page as is. Default is true. + # config.keywords_lowercase = true + + # When true, the output will not include new line characters between meta tags. + # Default is false. + # config.minify_output = false + + # When false, generated meta tags will be self-closing (<meta ... />) instead + # of open (`<meta ...>`). Default is true. + # config.open_meta_tags = true + + # List of additional meta tags that should use "property" attribute instead + # of "name" attribute in <meta> tags. + # config.property_tags.push( + # 'x-hearthstone:deck', + # ) +end