meta-tags 2.22.3 → 2.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +83 -0
- data/README.md +191 -60
- data/SECURITY.md +40 -0
- data/lib/generators/meta_tags/install_generator.rb +5 -0
- data/lib/generators/meta_tags/templates/config/initializers/meta_tags.rb +16 -5
- data/lib/meta_tags/configuration.rb +31 -10
- data/lib/meta_tags/content_tag.rb +3 -4
- data/lib/meta_tags/controller_helper.rb +11 -8
- data/lib/meta_tags/meta_tags_collection.rb +123 -50
- data/lib/meta_tags/railtie.rb +5 -0
- data/lib/meta_tags/renderer.rb +124 -84
- data/lib/meta_tags/tag.rb +10 -8
- data/lib/meta_tags/text_normalizer.rb +54 -40
- data/lib/meta_tags/version.rb +1 -1
- data/lib/meta_tags/view_helper.rb +65 -75
- data/lib/meta_tags.rb +6 -2
- data/sig/{lib/_internal/rails.rbs → _private/rails_support.rbs} +5 -19
- data/sig/lib/meta_tags/configuration.rbs +5 -3
- data/sig/lib/meta_tags/controller_helper.rbs +1 -1
- data/sig/lib/meta_tags/meta_tags_collection.rbs +9 -3
- data/sig/lib/meta_tags/rails_interfaces.rbs +15 -0
- data/sig/lib/meta_tags/renderer.rbs +11 -7
- data/sig/lib/meta_tags/tag.rbs +1 -1
- data/sig/lib/meta_tags/view_helper.rbs +9 -37
- data/sig/lib/meta_tags.rbs +5 -1
- data.tar.gz.sig +0 -0
- metadata +22 -5
- metadata.gz.sig +0 -0
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
module MetaTags
|
|
4
4
|
# Contains methods to use in views and helpers.
|
|
5
|
-
#
|
|
6
5
|
module ViewHelper
|
|
7
6
|
# Get meta tags for the page.
|
|
8
7
|
def meta_tags
|
|
@@ -11,67 +10,62 @@ module MetaTags
|
|
|
11
10
|
|
|
12
11
|
# Set meta tags for the page.
|
|
13
12
|
#
|
|
14
|
-
#
|
|
15
|
-
# be merged. If you
|
|
13
|
+
# This method can be used several times, and all passed options will
|
|
14
|
+
# be merged. If you set the same property several times, the last one
|
|
16
15
|
# will take precedence.
|
|
17
16
|
#
|
|
18
|
-
# Usually you will not call this method directly. Use
|
|
19
|
-
# {#description} for
|
|
17
|
+
# Usually you will not call this method directly. Use helpers like
|
|
18
|
+
# {#title}, {#description}, {#noindex}, and {#canonical} for daily tasks.
|
|
19
|
+
# {#keywords} remains available for legacy compatibility.
|
|
20
20
|
#
|
|
21
|
-
# @param [Hash]
|
|
21
|
+
# @param meta_tags [Hash] list of meta tags. See {#display_meta_tags}
|
|
22
22
|
# for allowed options.
|
|
23
|
-
#
|
|
23
|
+
# @see #display_meta_tags
|
|
24
24
|
# @example
|
|
25
25
|
# set_meta_tags title: 'Login Page', description: 'Here you can login'
|
|
26
|
-
# set_meta_tags
|
|
27
|
-
#
|
|
28
|
-
# @see #display_meta_tags
|
|
29
|
-
#
|
|
26
|
+
# set_meta_tags canonical: 'https://example.com/login'
|
|
30
27
|
def set_meta_tags(meta_tags = {})
|
|
31
28
|
self.meta_tags.update(meta_tags)
|
|
32
29
|
end
|
|
33
30
|
|
|
34
|
-
# Set the page title and return it
|
|
31
|
+
# Set the page title and return it.
|
|
35
32
|
#
|
|
36
33
|
# This method is best suited for use in helpers. It sets the page title
|
|
37
34
|
# and returns it (or +headline+ if specified).
|
|
38
35
|
#
|
|
39
|
-
# @param [nil, String, Array]
|
|
36
|
+
# @param title [nil, String, Array] page title. When passed as an
|
|
40
37
|
# +Array+, parts will be joined using configured separator value
|
|
41
38
|
# (see {#display_meta_tags}). When nil, current title will be returned.
|
|
42
|
-
# @param [String]
|
|
39
|
+
# @param headline [String] the value to return from the method. Useful
|
|
43
40
|
# for using this method in views to set both page title
|
|
44
|
-
# and the content of heading tag.
|
|
41
|
+
# and the content of the heading tag.
|
|
45
42
|
# @return [String] returns +title+ value or +headline+ if passed.
|
|
46
|
-
#
|
|
47
|
-
# @example Set HTML title to "
|
|
43
|
+
# @see #display_meta_tags
|
|
44
|
+
# @example Set HTML title to "Login Page", return "Login Page"
|
|
48
45
|
# title 'Login Page'
|
|
49
46
|
# @example Set HTML title to "Login Page", return "Please login"
|
|
50
47
|
# title 'Login Page', 'Please login'
|
|
51
48
|
# @example Set title as array of strings
|
|
52
|
-
# title
|
|
49
|
+
# title ['part1', 'part2'] # => "part1 | part2"
|
|
53
50
|
# @example Get current title
|
|
54
51
|
# title
|
|
55
|
-
#
|
|
56
|
-
# @see #display_meta_tags
|
|
57
|
-
#
|
|
58
52
|
def title(title = nil, headline = "")
|
|
59
53
|
set_meta_tags(title: title) unless title.nil?
|
|
60
|
-
headline.presence || meta_tags
|
|
54
|
+
headline.presence || meta_tags.page_title
|
|
61
55
|
end
|
|
62
56
|
|
|
63
|
-
# Set the
|
|
57
|
+
# Set the legacy keywords meta tag.
|
|
58
|
+
#
|
|
59
|
+
# Modern search engines ignore this tag, but some older integrations and
|
|
60
|
+
# internal systems may still read it.
|
|
64
61
|
#
|
|
65
|
-
# @param [String, Array] keywords meta
|
|
62
|
+
# @param keywords [String, Array] keywords meta tag value to render in the HEAD
|
|
66
63
|
# section of the HTML document.
|
|
67
64
|
# @return [String, Array] passed value.
|
|
68
|
-
#
|
|
65
|
+
# @see #display_meta_tags
|
|
69
66
|
# @example
|
|
70
67
|
# keywords 'keyword1, keyword2'
|
|
71
68
|
# keywords %w(keyword1 keyword2)
|
|
72
|
-
#
|
|
73
|
-
# @see #display_meta_tags
|
|
74
|
-
#
|
|
75
69
|
def keywords(keywords)
|
|
76
70
|
set_meta_tags(keywords: keywords)
|
|
77
71
|
keywords
|
|
@@ -79,78 +73,66 @@ module MetaTags
|
|
|
79
73
|
|
|
80
74
|
# Set the page description.
|
|
81
75
|
#
|
|
82
|
-
# @param [String]
|
|
83
|
-
# the HTML document. Please note
|
|
84
|
-
# from output string, and string will be truncated to
|
|
85
|
-
#
|
|
76
|
+
# @param description [String] page description to be set in the HEAD section
|
|
77
|
+
# of the HTML document. Please note that any HTML tags will be stripped
|
|
78
|
+
# from the output string, and the string will be truncated to the
|
|
79
|
+
# configured description limit.
|
|
86
80
|
# @return [String] passed value.
|
|
87
|
-
#
|
|
81
|
+
# @see #display_meta_tags
|
|
88
82
|
# @example
|
|
89
83
|
# description 'This is login page'
|
|
90
|
-
#
|
|
91
|
-
# @see #display_meta_tags
|
|
92
|
-
#
|
|
93
84
|
def description(description)
|
|
94
85
|
set_meta_tags(description: description)
|
|
95
86
|
description
|
|
96
87
|
end
|
|
97
88
|
|
|
98
|
-
# Set the noindex meta tag
|
|
89
|
+
# Set the noindex meta tag.
|
|
99
90
|
#
|
|
100
|
-
# @param [Boolean, String, Array<String>]
|
|
91
|
+
# @param noindex [Boolean, String, Array<String>] a noindex value.
|
|
101
92
|
# @return [Boolean, String, Array<String>] passed value.
|
|
102
|
-
#
|
|
93
|
+
# @see #display_meta_tags
|
|
103
94
|
# @example
|
|
104
95
|
# noindex true
|
|
105
96
|
# noindex 'googlebot'
|
|
106
|
-
#
|
|
107
|
-
# @see #display_meta_tags
|
|
108
|
-
#
|
|
109
97
|
def noindex(noindex = true)
|
|
110
98
|
set_meta_tags(noindex: noindex)
|
|
111
99
|
noindex
|
|
112
100
|
end
|
|
113
101
|
|
|
114
|
-
# Set the nofollow meta tag
|
|
102
|
+
# Set the nofollow meta tag.
|
|
115
103
|
#
|
|
116
|
-
# @param [Boolean, String, Array<String>]
|
|
104
|
+
# @param nofollow [Boolean, String, Array<String>] a nofollow value.
|
|
117
105
|
# @return [Boolean, String, Array<String>] passed value.
|
|
118
|
-
#
|
|
106
|
+
# @see #display_meta_tags
|
|
119
107
|
# @example
|
|
120
108
|
# nofollow true
|
|
121
109
|
# nofollow 'googlebot'
|
|
122
|
-
#
|
|
123
|
-
# @see #display_meta_tags
|
|
124
|
-
#
|
|
125
110
|
def nofollow(nofollow = true)
|
|
126
111
|
set_meta_tags(nofollow: nofollow)
|
|
127
112
|
nofollow
|
|
128
113
|
end
|
|
129
114
|
|
|
130
|
-
# Set the refresh meta tag
|
|
115
|
+
# Set the refresh meta tag.
|
|
131
116
|
#
|
|
132
|
-
# @param [Integer, String]
|
|
117
|
+
# @param refresh [Integer, String] a refresh value.
|
|
133
118
|
# @return [Integer, String] passed value.
|
|
134
|
-
#
|
|
119
|
+
# @see #display_meta_tags
|
|
135
120
|
# @example
|
|
136
121
|
# refresh 5
|
|
137
122
|
# refresh "5;url=http://www.example.com/"
|
|
138
|
-
#
|
|
139
|
-
# @see #display_meta_tags
|
|
140
|
-
#
|
|
141
123
|
def refresh(refresh)
|
|
142
124
|
set_meta_tags(refresh: refresh)
|
|
143
125
|
refresh
|
|
144
126
|
end
|
|
145
127
|
|
|
146
128
|
# Set default meta tag values and display meta tags. This method
|
|
147
|
-
# should be used in layout file.
|
|
129
|
+
# should be used in the layout file.
|
|
148
130
|
#
|
|
149
|
-
# @param [Hash]
|
|
131
|
+
# @param defaults [Hash] default meta tag values.
|
|
150
132
|
# @option default [String] :site (nil) site title;
|
|
151
133
|
# @option default [String] :title ("") page title;
|
|
152
134
|
# @option default [String] :description (nil) page description;
|
|
153
|
-
# @option default [String] :keywords (nil) page keywords;
|
|
135
|
+
# @option default [String] :keywords (nil) legacy page keywords;
|
|
154
136
|
# @option default [String, Boolean] :prefix (" ") text between site name and separator;
|
|
155
137
|
# when +false+, no prefix will be rendered;
|
|
156
138
|
# @option default [String] :separator ("|") text used to separate website name from page title;
|
|
@@ -164,31 +146,36 @@ module MetaTags
|
|
|
164
146
|
# otherwise the string will be used;
|
|
165
147
|
# @option default [String] :canonical (nil) add canonical link tag.
|
|
166
148
|
# @option default [Hash] :alternate ({}) add alternate link tag.
|
|
167
|
-
# @option default [String] :prev (nil) add prev link tag;
|
|
168
|
-
# @option default [String] :next (nil) add next link tag.
|
|
149
|
+
# @option default [String] :prev (nil) add legacy prev pagination link tag;
|
|
150
|
+
# @option default [String] :next (nil) add legacy next pagination link tag.
|
|
169
151
|
# @option default [String, Integer] :refresh (nil) meta refresh tag;
|
|
170
152
|
# @option default [Hash] :open_graph ({}) add Open Graph meta tags.
|
|
171
153
|
# @option default [Hash] :open_search ({}) add Open Search link tag.
|
|
154
|
+
# @option default [Hash] :robots ({}) add robots meta tags.
|
|
155
|
+
# @option default [Hash] :googlebot ({}) add googlebot meta tags.
|
|
156
|
+
# @option default [Hash] :bingbot ({}) add bingbot meta tags.
|
|
172
157
|
# @return [String] HTML meta tags to render in HEAD section of the
|
|
173
158
|
# HTML document.
|
|
174
|
-
#
|
|
175
|
-
#
|
|
176
|
-
#
|
|
177
|
-
#
|
|
178
|
-
#
|
|
179
|
-
#
|
|
159
|
+
# @example Render meta tags in a layout
|
|
160
|
+
# display_meta_tags site: 'My website'
|
|
161
|
+
# @example ERB layout usage
|
|
162
|
+
# <<~ERB
|
|
163
|
+
# <head>
|
|
164
|
+
# <%= display_meta_tags site: 'My website' %>
|
|
165
|
+
# </head>
|
|
166
|
+
# ERB
|
|
180
167
|
def display_meta_tags(defaults = {})
|
|
181
168
|
meta_tags.with_defaults(defaults) { Renderer.new(meta_tags).render(self) }
|
|
182
169
|
end
|
|
183
170
|
|
|
184
171
|
# Returns full page title as a string without surrounding <title> tag.
|
|
185
172
|
#
|
|
186
|
-
# The only case when you may need this helper is when you use
|
|
187
|
-
# that your layout file (with display_meta_tags helper) will not be rendered,
|
|
188
|
-
# so you have to pass default arguments
|
|
189
|
-
# want to define helper with default options to minimize code duplication.
|
|
173
|
+
# The only case when you may need this helper is when you use PJAX. This means
|
|
174
|
+
# that your layout file (with the display_meta_tags helper) will not be rendered,
|
|
175
|
+
# so you have to pass default arguments such as the site title here. You probably
|
|
176
|
+
# want to define a helper with default options to minimize code duplication.
|
|
190
177
|
#
|
|
191
|
-
# @param [Hash]
|
|
178
|
+
# @param defaults [Hash] list of meta tags.
|
|
192
179
|
# @option default [String] :site (nil) site title;
|
|
193
180
|
# @option default [String] :title ("") page title;
|
|
194
181
|
# @option default [String, Boolean] :prefix (" ") text between site name and separator; when +false+,
|
|
@@ -196,12 +183,15 @@ module MetaTags
|
|
|
196
183
|
# @option default [String] :separator ("|") text used to separate website name from page title;
|
|
197
184
|
# @option default [String, Boolean] :suffix (" ") text between separator and page title; when +false+,
|
|
198
185
|
# no suffix will be rendered;
|
|
199
|
-
# @option default [Boolean] :lowercase (false) when true, the page
|
|
186
|
+
# @option default [Boolean] :lowercase (false) when true, the page title will be lowercase;
|
|
200
187
|
# @option default [Boolean] :reverse (false) when true, the page and site names will be reversed;
|
|
201
|
-
#
|
|
202
|
-
#
|
|
203
|
-
#
|
|
204
|
-
#
|
|
188
|
+
# @example Build a PJAX-compatible title string
|
|
189
|
+
# display_title title: 'My Page', site: 'PJAX Site'
|
|
190
|
+
# @example ERB PJAX container usage
|
|
191
|
+
# <<~ERB
|
|
192
|
+
# <div data-page-container="true" title="<%= display_title title: 'My Page', site: 'PJAX Site' %>">
|
|
193
|
+
# </div>
|
|
194
|
+
# ERB
|
|
205
195
|
def display_title(defaults = {})
|
|
206
196
|
meta_tags.full_title(defaults)
|
|
207
197
|
end
|
data/lib/meta_tags.rb
CHANGED
|
@@ -2,20 +2,24 @@
|
|
|
2
2
|
|
|
3
3
|
require "set"
|
|
4
4
|
require "active_support/core_ext/hash/indifferent_access"
|
|
5
|
+
require "active_support/deprecation"
|
|
5
6
|
|
|
6
7
|
# MetaTags gem namespace.
|
|
7
8
|
module MetaTags
|
|
8
9
|
# Returns MetaTags gem configuration.
|
|
9
|
-
#
|
|
10
10
|
def self.config
|
|
11
11
|
@config ||= Configuration.new
|
|
12
12
|
end
|
|
13
13
|
|
|
14
|
+
# Returns the deprecator used for MetaTags API warnings.
|
|
15
|
+
def self.deprecator
|
|
16
|
+
@deprecator ||= ActiveSupport::Deprecation.new("3.0", "MetaTags")
|
|
17
|
+
end
|
|
18
|
+
|
|
14
19
|
# Configures MetaTags gem.
|
|
15
20
|
#
|
|
16
21
|
# @yield [Configuration] configuration object.
|
|
17
22
|
# @example
|
|
18
|
-
#
|
|
19
23
|
# MetaTags.configure do |config|
|
|
20
24
|
# # config.title_limit = 100
|
|
21
25
|
# end
|
|
@@ -24,9 +24,6 @@ class ::Loofah
|
|
|
24
24
|
def self.fragment: (String tags, ?String? encoding) -> DocumentFragment
|
|
25
25
|
end
|
|
26
26
|
|
|
27
|
-
class ::Rails
|
|
28
|
-
end
|
|
29
|
-
|
|
30
27
|
module ActionController
|
|
31
28
|
class Base
|
|
32
29
|
include _ActionControllerBase
|
|
@@ -36,24 +33,13 @@ module ActionController
|
|
|
36
33
|
end
|
|
37
34
|
|
|
38
35
|
module ActiveSupport
|
|
36
|
+
class Deprecation
|
|
37
|
+
def initialize: (String deprecation_horizon, String gem_name) -> void
|
|
38
|
+
def warn: (String message) -> void
|
|
39
|
+
end
|
|
40
|
+
|
|
39
41
|
class HashWithIndifferentAccess[unchecked out K, unchecked out V] < Hash[K, V]
|
|
40
42
|
def with_indifferent_access: () -> self
|
|
41
43
|
def deep_merge!: (instance | Hash[K, V] other) -> self
|
|
42
44
|
end
|
|
43
45
|
end
|
|
44
|
-
|
|
45
|
-
interface _ActionControllerBase
|
|
46
|
-
def render: (*untyped args) ?{ () -> untyped } -> untyped
|
|
47
|
-
end
|
|
48
|
-
|
|
49
|
-
interface _ActionViewBase
|
|
50
|
-
def tag: (String name, ?Hash[String | Symbol, untyped] options, ?bool open) -> String
|
|
51
|
-
|
|
52
|
-
def content_tag: (String name, String content, ?Hash[String | Symbol, untyped] options, ?bool open) -> String
|
|
53
|
-
|
|
54
|
-
def safe_join: (Array[String], String) -> String
|
|
55
|
-
|
|
56
|
-
def truncate: (String text, ?Hash[Symbol, untyped] options) -> String
|
|
57
|
-
|
|
58
|
-
def strip_tags: (String html) -> String
|
|
59
|
-
end
|
|
@@ -1,20 +1,22 @@
|
|
|
1
1
|
module MetaTags
|
|
2
2
|
class Configuration
|
|
3
3
|
type html_tag_key = String | Symbol
|
|
4
|
-
type html_tag_value = Hash[html_tag_key, html_tag_value] | html_tag_content
|
|
5
|
-
type html_tag_content = String? | Symbol | (_Stringish & Object)
|
|
4
|
+
type html_tag_value = Hash[html_tag_key, html_tag_value] | Array[html_tag_value] | html_tag_content
|
|
5
|
+
type html_tag_content = String? | Symbol | Numeric | bool | (_Stringish & Object)
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
attr_accessor title_limit: Integer?
|
|
9
9
|
attr_accessor truncate_site_title_first: bool
|
|
10
10
|
attr_accessor truncate_on_natural_separator: String?|Regexp
|
|
11
|
+
attr_accessor truncate_array_items_at_boundaries: bool
|
|
11
12
|
attr_accessor title_tag_attributes: Hash[html_tag_key, html_tag_value]?
|
|
12
|
-
attr_accessor description_limit: Integer
|
|
13
|
+
attr_accessor description_limit: Integer?
|
|
13
14
|
attr_accessor keywords_limit: Integer
|
|
14
15
|
attr_accessor keywords_separator: String
|
|
15
16
|
attr_accessor keywords_lowercase: bool
|
|
16
17
|
attr_accessor open_meta_tags: bool
|
|
17
18
|
attr_accessor minify_output: bool
|
|
19
|
+
attr_accessor resolve_symbolic_references_in_arrays: bool
|
|
18
20
|
attr_reader property_tags: Array[String | Symbol]
|
|
19
21
|
attr_accessor skip_canonical_links_on_noindex: bool
|
|
20
22
|
|
|
@@ -7,7 +7,7 @@ module MetaTags
|
|
|
7
7
|
|
|
8
8
|
def render: (*untyped args) ?{ () -> untyped } -> untyped
|
|
9
9
|
|
|
10
|
-
def set_meta_tags: (
|
|
10
|
+
def set_meta_tags: (meta_tags | (_MetaTagish & Object) meta_tags) -> void
|
|
11
11
|
|
|
12
12
|
def meta_tags: () -> MetaTagsCollection
|
|
13
13
|
end
|
|
@@ -28,14 +28,20 @@ module MetaTags
|
|
|
28
28
|
|
|
29
29
|
def extract_robots: () -> Hash[String, String]
|
|
30
30
|
|
|
31
|
+
def noindex?: () -> bool
|
|
32
|
+
|
|
33
|
+
def robots: () -> Hash[String, String]
|
|
34
|
+
|
|
31
35
|
def normalize_open_graph: (Hash[String | Symbol, untyped] meta_tags) -> ActiveSupport::HashWithIndifferentAccess[String | Symbol, untyped]
|
|
32
36
|
|
|
33
37
|
def extract_separator_section: (String | Symbol name, String default) -> String
|
|
34
38
|
|
|
35
|
-
def extract_robots_attribute: (String | Symbol name) -> [String | Array[String
|
|
39
|
+
def extract_robots_attribute: (String | Symbol name) -> [String | Array[String], String?]
|
|
40
|
+
|
|
41
|
+
def robots_attribute_present?: (untyped value) -> bool
|
|
36
42
|
|
|
37
|
-
def calculate_robots_attributes: (
|
|
43
|
+
def calculate_robots_attributes: (Hash[String, Array[String]] result, String | Symbol | Array[String | Symbol] attributes) -> void
|
|
38
44
|
|
|
39
|
-
def apply_robots_value: (
|
|
45
|
+
def apply_robots_value: (Hash[String, Array[String]] result, String name, String value, Set[String] processed) -> void
|
|
40
46
|
end
|
|
41
47
|
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
interface _ActionControllerBase
|
|
2
|
+
def render: (*untyped args) ?{ () -> untyped } -> untyped
|
|
3
|
+
end
|
|
4
|
+
|
|
5
|
+
interface _ActionViewBase
|
|
6
|
+
def tag: (String name, ?Hash[String | Symbol, untyped] options, ?bool open) -> String
|
|
7
|
+
|
|
8
|
+
def content_tag: (String name, String content, ?Hash[String | Symbol, untyped] options, ?bool open) -> String
|
|
9
|
+
|
|
10
|
+
def safe_join: (Array[String], String) -> String
|
|
11
|
+
|
|
12
|
+
def truncate: (String text, ?Hash[Symbol, untyped] options) -> String
|
|
13
|
+
|
|
14
|
+
def strip_tags: (String html) -> String
|
|
15
|
+
end
|
|
@@ -2,7 +2,7 @@ module MetaTags
|
|
|
2
2
|
class Renderer
|
|
3
3
|
type meta_key = String | Symbol
|
|
4
4
|
type meta_value = Hash[meta_key, meta_value] | Array[meta_value] | meta_content
|
|
5
|
-
type meta_content = String? | Symbol | Integer | bool | (_Timish & Object) | (_Stringish & Object)
|
|
5
|
+
type meta_content = String? | Symbol | Integer | Float | bool | (_Timish & Object) | (_Stringish & Object)
|
|
6
6
|
|
|
7
7
|
attr_reader meta_tags: MetaTagsCollection
|
|
8
8
|
attr_reader normalized_meta_tags: Hash[Symbol, meta_value]
|
|
@@ -31,20 +31,24 @@ module MetaTags
|
|
|
31
31
|
|
|
32
32
|
def render_canonical_link: (Array[Tag] tags) -> void
|
|
33
33
|
|
|
34
|
-
def render_hashes: (Array[Tag] tags
|
|
34
|
+
def render_hashes: (Array[Tag] tags) -> void
|
|
35
35
|
|
|
36
|
-
def render_hash: (Array[Tag] tags,
|
|
36
|
+
def render_hash: (Array[Tag] tags, meta_key key) -> void
|
|
37
37
|
|
|
38
38
|
def render_custom: (Array[Tag] tags) -> void
|
|
39
39
|
|
|
40
|
-
def process_tree: (Array[Tag] tags, meta_key property, meta_value content, ?itemprop:
|
|
40
|
+
def process_tree: (Array[Tag] tags, meta_key property, meta_value content, ?itemprop: meta_value itemprop) -> void
|
|
41
41
|
|
|
42
|
-
def process_hash: (Array[Tag] tags, meta_key property, Hash[meta_key, meta_value] content,
|
|
42
|
+
def process_hash: (Array[Tag] tags, meta_key property, Hash[meta_key, meta_value] content, ?itemprop: meta_value itemprop) -> void
|
|
43
43
|
|
|
44
|
-
def process_array: (Array[Tag] tags, meta_key property, Array[meta_value] content,
|
|
44
|
+
def process_array: (Array[Tag] tags, meta_key property, Array[meta_value] content, ?itemprop: meta_value itemprop) -> void
|
|
45
45
|
|
|
46
|
-
def
|
|
46
|
+
def process_reference: (Array[Tag] tags, meta_key property, Symbol reference, ?itemprop: meta_value itemprop) -> void
|
|
47
|
+
|
|
48
|
+
def render_tag: (Array[Tag] tags, meta_key name, meta_content value, ?itemprop: meta_value itemprop) -> void
|
|
47
49
|
|
|
48
50
|
def configured_name_key: (meta_key name) -> Symbol
|
|
51
|
+
|
|
52
|
+
def property_tag?: (String name, String tag_name) -> bool
|
|
49
53
|
end
|
|
50
54
|
end
|
data/sig/lib/meta_tags/tag.rbs
CHANGED
|
@@ -7,6 +7,6 @@ module MetaTags
|
|
|
7
7
|
|
|
8
8
|
def render: (_ActionViewBase view) -> String
|
|
9
9
|
|
|
10
|
-
def
|
|
10
|
+
def serialize_iso8601_attributes: (Hash[String | Symbol, untyped] attributes) -> Hash[String | Symbol, untyped]
|
|
11
11
|
end
|
|
12
12
|
end
|
|
@@ -2,53 +2,25 @@ module MetaTags
|
|
|
2
2
|
module ViewHelper : Module, _ActionViewBase
|
|
3
3
|
@meta_tags: MetaTagsCollection?
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
# title: Array[String] | String?,
|
|
8
|
-
# description: String?,
|
|
9
|
-
# keywords: Array[String] | String?,
|
|
10
|
-
# charset: String,
|
|
11
|
-
# prefix: String,
|
|
12
|
-
# separator: String,
|
|
13
|
-
# suffix: String,
|
|
14
|
-
# lowercase: bool,
|
|
15
|
-
# reverse: bool,
|
|
16
|
-
# noindex: bool | String | Array[String],
|
|
17
|
-
# index: bool | String | Array[String],
|
|
18
|
-
# nofollow: bool | String | Array[String],
|
|
19
|
-
# follow: bool | String | Array[String],
|
|
20
|
-
# noarchive: bool | String | Array[String],
|
|
21
|
-
# canonical: String,
|
|
22
|
-
# prev: String,
|
|
23
|
-
# next: String,
|
|
24
|
-
# image_src: String,
|
|
25
|
-
# alternate: String,
|
|
26
|
-
# amphtml: String,
|
|
27
|
-
# manifest: String,
|
|
28
|
-
# og: Hash[Renderer::meta_key, Renderer::meta_value],
|
|
29
|
-
# twitter: Hash[Renderer::meta_key, Renderer::meta_value],
|
|
30
|
-
# open_search: Hash[Renderer::meta_key, Renderer::meta_value],
|
|
31
|
-
# article: Hash[Renderer::meta_key, Renderer::meta_value],
|
|
32
|
-
# al: Hash[Renderer::meta_key, Renderer::meta_value],
|
|
33
|
-
# refresh: Integer | String | nil,
|
|
34
|
-
# } & Hash[Renderer::meta_key, Renderer::meta_value]
|
|
5
|
+
type stringish = String | (_Stringish & Object)
|
|
6
|
+
type robots_value = bool | String | Array[String]
|
|
35
7
|
type meta_tags = Hash[Renderer::meta_key, Renderer::meta_value]
|
|
36
8
|
|
|
37
9
|
def meta_tags: () -> MetaTagsCollection
|
|
38
10
|
|
|
39
|
-
def set_meta_tags: (?meta_tags | (_MetaTagish&Object) meta_tags) -> void
|
|
11
|
+
def set_meta_tags: (?meta_tags | (_MetaTagish & Object) meta_tags) -> void
|
|
40
12
|
|
|
41
|
-
def title: (?
|
|
13
|
+
def title: (?(stringish | Array[stringish]) title, ?::String? headline) -> String
|
|
42
14
|
|
|
43
|
-
def keywords: (
|
|
15
|
+
def keywords: (TextNormalizer::keywords keywords) -> TextNormalizer::keywords
|
|
44
16
|
|
|
45
|
-
def description: (
|
|
17
|
+
def description: (TextNormalizer::keyword description) -> TextNormalizer::keyword
|
|
46
18
|
|
|
47
|
-
def noindex: (?
|
|
19
|
+
def noindex: (?robots_value noindex) -> robots_value
|
|
48
20
|
|
|
49
|
-
def nofollow: (?
|
|
21
|
+
def nofollow: (?robots_value nofollow) -> robots_value
|
|
50
22
|
|
|
51
|
-
def refresh: (
|
|
23
|
+
def refresh: (TextNormalizer::keyword | Integer? refresh) -> (TextNormalizer::keyword | Integer?)
|
|
52
24
|
|
|
53
25
|
def display_meta_tags: (?meta_tags defaults) -> String
|
|
54
26
|
|
data/sig/lib/meta_tags.rbs
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
module MetaTags
|
|
2
|
+
type meta_tags = Hash[Renderer::meta_key, Renderer::meta_value]
|
|
3
|
+
|
|
2
4
|
self.@config: Configuration
|
|
5
|
+
self.@deprecator: ActiveSupport::Deprecation?
|
|
3
6
|
|
|
4
7
|
def self.config: () -> Configuration
|
|
8
|
+
def self.deprecator: () -> ActiveSupport::Deprecation
|
|
5
9
|
def self.configure: () { (Configuration) -> void } -> void
|
|
6
10
|
|
|
7
11
|
interface _Stringish
|
|
@@ -13,6 +17,6 @@ module MetaTags
|
|
|
13
17
|
end
|
|
14
18
|
|
|
15
19
|
interface _MetaTagish
|
|
16
|
-
def to_meta_tags: () ->
|
|
20
|
+
def to_meta_tags: () -> meta_tags
|
|
17
21
|
end
|
|
18
22
|
end
|
data.tar.gz.sig
CHANGED
|
Binary file
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: meta-tags
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.24.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Dmytro Shteflyuk
|
|
@@ -30,7 +30,7 @@ cert_chain:
|
|
|
30
30
|
pPzkBOwQl2p1ykAEUe7cwoqJcO+1rPeTHjudNqhOfc3VnMA8A7uXOkTtYNVhvApn
|
|
31
31
|
oW4hE/8SnZkQm8jzdi0iX9nWxo8=
|
|
32
32
|
-----END CERTIFICATE-----
|
|
33
|
-
date: 2026-01
|
|
33
|
+
date: 2026-09-01 00:00:00.000000000 Z
|
|
34
34
|
dependencies:
|
|
35
35
|
- !ruby/object:Gem::Dependency
|
|
36
36
|
name: actionpack
|
|
@@ -130,6 +130,20 @@ dependencies:
|
|
|
130
130
|
- - "~>"
|
|
131
131
|
- !ruby/object:Gem::Version
|
|
132
132
|
version: 0.22.0
|
|
133
|
+
- !ruby/object:Gem::Dependency
|
|
134
|
+
name: steep
|
|
135
|
+
requirement: !ruby/object:Gem::Requirement
|
|
136
|
+
requirements:
|
|
137
|
+
- - "~>"
|
|
138
|
+
- !ruby/object:Gem::Version
|
|
139
|
+
version: 1.10.0
|
|
140
|
+
type: :development
|
|
141
|
+
prerelease: false
|
|
142
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
143
|
+
requirements:
|
|
144
|
+
- - "~>"
|
|
145
|
+
- !ruby/object:Gem::Version
|
|
146
|
+
version: 1.10.0
|
|
133
147
|
- !ruby/object:Gem::Dependency
|
|
134
148
|
name: rubocop-rake
|
|
135
149
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -200,7 +214,8 @@ dependencies:
|
|
|
200
214
|
- - "~>"
|
|
201
215
|
- !ruby/object:Gem::Version
|
|
202
216
|
version: 0.6.0
|
|
203
|
-
description:
|
|
217
|
+
description: Rails helpers for HTML metadata such as titles, descriptions, canonical
|
|
218
|
+
links, robots directives, and social tags.
|
|
204
219
|
email:
|
|
205
220
|
- kpumuk@kpumuk.info
|
|
206
221
|
executables: []
|
|
@@ -212,6 +227,7 @@ files:
|
|
|
212
227
|
- CONTRIBUTING.md
|
|
213
228
|
- MIT-LICENSE
|
|
214
229
|
- README.md
|
|
230
|
+
- SECURITY.md
|
|
215
231
|
- certs/kpumuk.pem
|
|
216
232
|
- lib/generators/meta_tags/install_generator.rb
|
|
217
233
|
- lib/generators/meta_tags/templates/config/initializers/meta_tags.rb
|
|
@@ -227,12 +243,13 @@ files:
|
|
|
227
243
|
- lib/meta_tags/text_normalizer.rb
|
|
228
244
|
- lib/meta_tags/version.rb
|
|
229
245
|
- lib/meta_tags/view_helper.rb
|
|
230
|
-
- sig/
|
|
246
|
+
- sig/_private/rails_support.rbs
|
|
231
247
|
- sig/lib/meta_tags.rbs
|
|
232
248
|
- sig/lib/meta_tags/configuration.rbs
|
|
233
249
|
- sig/lib/meta_tags/content_tag.rbs
|
|
234
250
|
- sig/lib/meta_tags/controller_helper.rbs
|
|
235
251
|
- sig/lib/meta_tags/meta_tags_collection.rbs
|
|
252
|
+
- sig/lib/meta_tags/rails_interfaces.rbs
|
|
236
253
|
- sig/lib/meta_tags/renderer.rbs
|
|
237
254
|
- sig/lib/meta_tags/tag.rbs
|
|
238
255
|
- sig/lib/meta_tags/text_normalizer.rbs
|
|
@@ -266,5 +283,5 @@ requirements: []
|
|
|
266
283
|
rubygems_version: 3.5.22
|
|
267
284
|
signing_key:
|
|
268
285
|
specification_version: 4
|
|
269
|
-
summary: Collection of
|
|
286
|
+
summary: Collection of metadata helpers for Ruby on Rails.
|
|
270
287
|
test_files: []
|
metadata.gz.sig
CHANGED
|
Binary file
|