actiontext 7.0.8.6 → 7.1.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of actiontext might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +36 -174
- data/MIT-LICENSE +1 -1
- data/README.md +2 -2
- data/app/assets/javascripts/actiontext.js +781 -766
- data/app/assets/javascripts/trix.js +13077 -19
- data/app/assets/stylesheets/trix.css +64 -29
- data/app/helpers/action_text/content_helper.rb +17 -4
- data/app/helpers/action_text/tag_helper.rb +9 -1
- data/app/models/action_text/encrypted_rich_text.rb +2 -0
- data/app/models/action_text/rich_text.rb +29 -1
- data/app/views/action_text/attachables/_content_attachment.html.erb +3 -0
- data/lib/action_text/attachable.rb +57 -1
- data/lib/action_text/attachables/content_attachment.rb +20 -18
- data/lib/action_text/attachables/missing_attachable.rb +17 -3
- data/lib/action_text/attachment.rb +43 -2
- data/lib/action_text/attribute.rb +10 -5
- data/lib/action_text/content.rb +43 -2
- data/lib/action_text/deprecator.rb +7 -0
- data/lib/action_text/engine.rb +14 -8
- data/lib/action_text/fixture_set.rb +2 -0
- data/lib/action_text/fragment.rb +4 -3
- data/lib/action_text/gem_version.rb +4 -4
- data/lib/action_text/html_conversion.rb +1 -1
- data/lib/action_text/plain_text_conversion.rb +1 -6
- data/lib/action_text/rendering.rb +5 -2
- data/lib/action_text/trix_attachment.rb +2 -2
- data/lib/action_text/version.rb +1 -1
- data/lib/action_text.rb +19 -0
- data/lib/generators/action_text/install/install_generator.rb +20 -3
- data/lib/generators/action_text/install/templates/actiontext.css +0 -4
- data/package.json +7 -6
- metadata +21 -19
@@ -3,12 +3,23 @@
|
|
3
3
|
require "active_support/core_ext/object/try"
|
4
4
|
|
5
5
|
module ActionText
|
6
|
+
# = Action Text \Attachment
|
7
|
+
#
|
8
|
+
# Attachments serialize attachables to HTML or plain text.
|
9
|
+
#
|
10
|
+
# class Person < ApplicationRecord
|
11
|
+
# include ActionText::Attachable
|
12
|
+
# end
|
13
|
+
#
|
14
|
+
# attachable = Person.create! name: "Javan"
|
15
|
+
# attachment = ActionText::Attachment.from_attachable(attachable)
|
16
|
+
# attachment.to_html # => "<action-text-attachment sgid=\"BAh7CEk..."
|
6
17
|
class Attachment
|
7
18
|
include Attachments::TrixConversion, Attachments::Minification, Attachments::Caching
|
8
19
|
|
9
20
|
mattr_accessor :tag_name, default: "action-text-attachment"
|
10
21
|
|
11
|
-
ATTRIBUTES = %w( sgid content-type url href filename filesize width height previewable presentation caption )
|
22
|
+
ATTRIBUTES = %w( sgid content-type url href filename filesize width height previewable presentation caption content )
|
12
23
|
|
13
24
|
class << self
|
14
25
|
def fragment_by_canonicalizing_attachments(content)
|
@@ -69,6 +80,31 @@ module ActionText
|
|
69
80
|
self.class.from_attributes(full_attributes, attachable)
|
70
81
|
end
|
71
82
|
|
83
|
+
# Converts the attachment to plain text.
|
84
|
+
#
|
85
|
+
# attachable = ActiveStorage::Blob.find_by filename: "racecar.jpg"
|
86
|
+
# attachment = ActionText::Attachment.from_attachable(attachable)
|
87
|
+
# attachment.to_plain_text # => "[racecar.jpg]"
|
88
|
+
#
|
89
|
+
# Use the +caption+ when set:
|
90
|
+
#
|
91
|
+
# attachment = ActionText::Attachment.from_attachable(attachable, caption: "Vroom vroom")
|
92
|
+
# attachment.to_plain_text # => "[Vroom vroom]"
|
93
|
+
#
|
94
|
+
# The presentation can be overridden by implementing the
|
95
|
+
# +attachable_plain_text_representation+ method:
|
96
|
+
#
|
97
|
+
# class Person < ApplicationRecord
|
98
|
+
# include ActionText::Attachable
|
99
|
+
#
|
100
|
+
# def attachable_plain_text_representation
|
101
|
+
# "[#{name}]"
|
102
|
+
# end
|
103
|
+
# end
|
104
|
+
#
|
105
|
+
# attachable = Person.create! name: "Javan"
|
106
|
+
# attachment = ActionText::Attachment.from_attachable(attachable)
|
107
|
+
# attachment.to_plain_text # => "[Javan]"
|
72
108
|
def to_plain_text
|
73
109
|
if respond_to?(:attachable_plain_text_representation)
|
74
110
|
attachable_plain_text_representation(caption)
|
@@ -77,6 +113,11 @@ module ActionText
|
|
77
113
|
end
|
78
114
|
end
|
79
115
|
|
116
|
+
# Converts the attachment to HTML.
|
117
|
+
#
|
118
|
+
# attachable = Person.create! name: "Javan"
|
119
|
+
# attachment = ActionText::Attachment.from_attachable(attachable)
|
120
|
+
# attachment.to_html # => "<action-text-attachment sgid=\"BAh7CEk...
|
80
121
|
def to_html
|
81
122
|
HtmlConversion.node_to_html(node)
|
82
123
|
end
|
@@ -91,7 +132,7 @@ module ActionText
|
|
91
132
|
|
92
133
|
private
|
93
134
|
def node_attributes
|
94
|
-
@node_attributes ||= ATTRIBUTES.
|
135
|
+
@node_attributes ||= ATTRIBUTES.to_h { |name| [ name.underscore, node[name] ] }.compact
|
95
136
|
end
|
96
137
|
|
97
138
|
def attachable_attributes
|
@@ -26,11 +26,15 @@ module ActionText
|
|
26
26
|
# Message.all.with_rich_text_content_and_embeds # Avoids N+1 queries when you just want the body and attachments.
|
27
27
|
# Message.all.with_all_rich_text # Loads all rich text associations.
|
28
28
|
#
|
29
|
-
#
|
29
|
+
# ==== Options
|
30
30
|
#
|
31
|
-
#
|
32
|
-
#
|
33
|
-
|
31
|
+
# * <tt>:encrypted</tt> - Pass true to encrypt the rich text attribute. The encryption will be non-deterministic. See
|
32
|
+
# +ActiveRecord::Encryption::EncryptableRecord.encrypts+. Default: false.
|
33
|
+
#
|
34
|
+
# * <tt>:strict_loading</tt> - Pass true to force strict loading. When
|
35
|
+
# omitted, <tt>strict_loading:</tt> will be set to the value of the
|
36
|
+
# <tt>strict_loading_by_default</tt> class attribute (false by default).
|
37
|
+
def has_rich_text(name, encrypted: false, strict_loading: strict_loading_by_default)
|
34
38
|
class_eval <<-CODE, __FILE__, __LINE__ + 1
|
35
39
|
def #{name}
|
36
40
|
rich_text_#{name} || build_rich_text_#{name}
|
@@ -47,7 +51,8 @@ module ActionText
|
|
47
51
|
|
48
52
|
rich_text_class_name = encrypted ? "ActionText::EncryptedRichText" : "ActionText::RichText"
|
49
53
|
has_one :"rich_text_#{name}", -> { where(name: name) },
|
50
|
-
class_name: rich_text_class_name, as: :record, inverse_of: :record, autosave: true, dependent: :destroy
|
54
|
+
class_name: rich_text_class_name, as: :record, inverse_of: :record, autosave: true, dependent: :destroy,
|
55
|
+
strict_loading: strict_loading
|
51
56
|
|
52
57
|
scope :"with_rich_text_#{name}", -> { includes("rich_text_#{name}") }
|
53
58
|
scope :"with_rich_text_#{name}_and_embeds", -> { includes("rich_text_#{name}": { embeds_attachments: :blob }) }
|
data/lib/action_text/content.rb
CHANGED
@@ -1,6 +1,24 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module ActionText
|
4
|
+
# = Action Text \Content
|
5
|
+
#
|
6
|
+
# The +ActionText::Content+ class wraps an HTML fragment to add support for
|
7
|
+
# parsing, rendering and serialization. It can be used to extract links and
|
8
|
+
# attachments, convert the fragment to plain text, or serialize the fragment
|
9
|
+
# to the database.
|
10
|
+
#
|
11
|
+
# The ActionText::RichText record serializes the `body` attribute as
|
12
|
+
# +ActionText::Content+.
|
13
|
+
#
|
14
|
+
# class Message < ActiveRecord::Base
|
15
|
+
# has_rich_text :content
|
16
|
+
# end
|
17
|
+
#
|
18
|
+
# message = Message.create!(content: "<h1>Funny times!</h1>")
|
19
|
+
# body = message.content.body # => #<ActionText::Content "<div class=\"trix-conte...">
|
20
|
+
# body.to_s # => "<h1>Funny times!</h1>"
|
21
|
+
# body.to_plain_text # => "Funny times!"
|
4
22
|
class Content
|
5
23
|
include Rendering, Serialization
|
6
24
|
|
@@ -26,10 +44,21 @@ module ActionText
|
|
26
44
|
end
|
27
45
|
end
|
28
46
|
|
47
|
+
# Extracts links from the HTML fragment:
|
48
|
+
#
|
49
|
+
# html = '<a href="http://example.com/">Example</a>'
|
50
|
+
# content = ActionText::Content.new(html)
|
51
|
+
# content.links # => ["http://example.com/"]
|
29
52
|
def links
|
30
53
|
@links ||= fragment.find_all("a[href]").map { |a| a["href"] }.uniq
|
31
54
|
end
|
32
55
|
|
56
|
+
# Extracts +ActionText::Attachment+s from the HTML fragment:
|
57
|
+
#
|
58
|
+
# attachable = ActiveStorage::Blob.first
|
59
|
+
# html = %Q(<action-text-attachment sgid="#{attachable.attachable_sgid}" caption="Captioned"></action-text-attachment>)
|
60
|
+
# content = ActionText::Content.new(html)
|
61
|
+
# content.attachments # => [#<ActionText::Attachment attachable=#<ActiveStorage::Blob...
|
33
62
|
def attachments
|
34
63
|
@attachments ||= attachment_nodes.map do |node|
|
35
64
|
attachment_for_node(node)
|
@@ -46,6 +75,12 @@ module ActionText
|
|
46
75
|
@gallery_attachments ||= attachment_galleries.flat_map(&:attachments)
|
47
76
|
end
|
48
77
|
|
78
|
+
# Extracts +ActionText::Attachable+s from the HTML fragment:
|
79
|
+
#
|
80
|
+
# attachable = ActiveStorage::Blob.first
|
81
|
+
# html = %Q(<action-text-attachment sgid="#{attachable.attachable_sgid}" caption="Captioned"></action-text-attachment>)
|
82
|
+
# content = ActionText::Content.new(html)
|
83
|
+
# content.attachables # => [attachable]
|
49
84
|
def attachables
|
50
85
|
@attachables ||= attachment_nodes.map do |node|
|
51
86
|
ActionText::Attachable.from_node(node)
|
@@ -71,6 +106,10 @@ module ActionText
|
|
71
106
|
self.class.new(content, canonicalize: false)
|
72
107
|
end
|
73
108
|
|
109
|
+
# Returns the content as plain text with all HTML tags removed.
|
110
|
+
#
|
111
|
+
# content = ActionText::Content.new("<h1>Funny times!</h1>")
|
112
|
+
# content.to_plain_text # => "Funny times!"
|
74
113
|
def to_plain_text
|
75
114
|
render_attachments(with_full_attributes: false, &:to_plain_text).fragment.to_plain_text
|
76
115
|
end
|
@@ -100,11 +139,13 @@ module ActionText
|
|
100
139
|
end
|
101
140
|
|
102
141
|
def inspect
|
103
|
-
"#<#{self.class.name} #{
|
142
|
+
"#<#{self.class.name} #{to_html.truncate(25).inspect}>"
|
104
143
|
end
|
105
144
|
|
106
145
|
def ==(other)
|
107
|
-
if
|
146
|
+
if self.class == other.class
|
147
|
+
to_html == other.to_html
|
148
|
+
elsif other.is_a?(self.class)
|
108
149
|
to_s == other.to_s
|
109
150
|
end
|
110
151
|
end
|
data/lib/action_text/engine.rb
CHANGED
@@ -19,6 +19,10 @@ module ActionText
|
|
19
19
|
#{root}/app/models
|
20
20
|
)
|
21
21
|
|
22
|
+
initializer "action_text.deprecator", before: :load_environment_config do |app|
|
23
|
+
app.deprecators[:action_text] = ActionText.deprecator
|
24
|
+
end
|
25
|
+
|
22
26
|
initializer "action_text.attribute" do
|
23
27
|
ActiveSupport.on_load(:active_record) do
|
24
28
|
include ActionText::Attribute
|
@@ -51,20 +55,16 @@ module ActionText
|
|
51
55
|
end
|
52
56
|
|
53
57
|
initializer "action_text.helper" do
|
54
|
-
%i[action_controller_base action_mailer].each do |
|
55
|
-
ActiveSupport.on_load(
|
58
|
+
%i[action_controller_base action_mailer].each do |base|
|
59
|
+
ActiveSupport.on_load(base) do
|
56
60
|
helper ActionText::Engine.helpers
|
57
61
|
end
|
58
62
|
end
|
59
63
|
end
|
60
64
|
|
61
65
|
initializer "action_text.renderer" do
|
62
|
-
|
63
|
-
|
64
|
-
end
|
65
|
-
|
66
|
-
%i[action_controller_base action_mailer].each do |abstract_controller|
|
67
|
-
ActiveSupport.on_load(abstract_controller) do
|
66
|
+
%i[action_controller_base action_mailer].each do |base|
|
67
|
+
ActiveSupport.on_load(base) do
|
68
68
|
around_action do |controller, action|
|
69
69
|
ActionText::Content.with_renderer(controller, &action)
|
70
70
|
end
|
@@ -82,5 +82,11 @@ module ActionText
|
|
82
82
|
initializer "action_text.configure" do |app|
|
83
83
|
ActionText::Attachment.tag_name = app.config.action_text.attachment_tag_name
|
84
84
|
end
|
85
|
+
|
86
|
+
config.after_initialize do |app|
|
87
|
+
if klass = app.config.action_text.sanitizer_vendor
|
88
|
+
ActionText::ContentHelper.sanitizer = klass.safe_list_sanitizer.new
|
89
|
+
end
|
90
|
+
end
|
85
91
|
end
|
86
92
|
end
|
data/lib/action_text/fragment.rb
CHANGED
@@ -7,7 +7,7 @@ module ActionText
|
|
7
7
|
case fragment_or_html
|
8
8
|
when self
|
9
9
|
fragment_or_html
|
10
|
-
when Nokogiri::
|
10
|
+
when Nokogiri::XML::DocumentFragment # base class for all fragments
|
11
11
|
new(fragment_or_html)
|
12
12
|
else
|
13
13
|
from_html(fragment_or_html)
|
@@ -30,14 +30,15 @@ module ActionText
|
|
30
30
|
end
|
31
31
|
|
32
32
|
def update
|
33
|
-
yield source = self.source.
|
33
|
+
yield source = self.source.dup
|
34
34
|
self.class.new(source)
|
35
35
|
end
|
36
36
|
|
37
37
|
def replace(selector)
|
38
38
|
update do |source|
|
39
39
|
source.css(selector).each do |node|
|
40
|
-
|
40
|
+
replacement_node = yield(node)
|
41
|
+
node.replace(replacement_node.to_s) if node != replacement_node
|
41
42
|
end
|
42
43
|
end
|
43
44
|
end
|
@@ -1,16 +1,16 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module ActionText
|
4
|
-
# Returns the currently loaded version of Action Text as a
|
4
|
+
# Returns the currently loaded version of Action Text as a +Gem::Version+.
|
5
5
|
def self.gem_version
|
6
6
|
Gem::Version.new VERSION::STRING
|
7
7
|
end
|
8
8
|
|
9
9
|
module VERSION
|
10
10
|
MAJOR = 7
|
11
|
-
MINOR =
|
12
|
-
TINY =
|
13
|
-
PRE = "
|
11
|
+
MINOR = 1
|
12
|
+
TINY = 0
|
13
|
+
PRE = "beta1"
|
14
14
|
|
15
15
|
STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
|
16
16
|
end
|
@@ -63,12 +63,7 @@ module ActionText
|
|
63
63
|
|
64
64
|
def plain_text_for_blockquote_node(node, index)
|
65
65
|
text = plain_text_for_block(node)
|
66
|
-
|
67
|
-
|
68
|
-
text = text.dup
|
69
|
-
text.insert(text.rindex(/\S/) + 1, "”")
|
70
|
-
text.insert(text.index(/\S/), "“")
|
71
|
-
text
|
66
|
+
text.sub(/\A(\s*)(.+?)(\s*)\Z/m, '\1“\2”\3')
|
72
67
|
end
|
73
68
|
|
74
69
|
def plain_text_for_li_node(node, index)
|
@@ -8,12 +8,15 @@ module ActionText
|
|
8
8
|
extend ActiveSupport::Concern
|
9
9
|
|
10
10
|
included do
|
11
|
-
cattr_accessor :default_renderer, instance_accessor: false
|
12
11
|
thread_cattr_accessor :renderer, instance_accessor: false
|
13
12
|
delegate :render, to: :class
|
14
13
|
end
|
15
14
|
|
16
15
|
class_methods do
|
16
|
+
def action_controller_renderer
|
17
|
+
@action_controller_renderer ||= Class.new(ActionController::Base).renderer
|
18
|
+
end
|
19
|
+
|
17
20
|
def with_renderer(renderer)
|
18
21
|
previous_renderer = self.renderer
|
19
22
|
self.renderer = renderer
|
@@ -23,7 +26,7 @@ module ActionText
|
|
23
26
|
end
|
24
27
|
|
25
28
|
def render(*args, &block)
|
26
|
-
(renderer ||
|
29
|
+
(renderer || action_controller_renderer).render_to_string(*args, &block)
|
27
30
|
end
|
28
31
|
end
|
29
32
|
end
|
@@ -39,10 +39,10 @@ module ActionText
|
|
39
39
|
end
|
40
40
|
|
41
41
|
def typecast_attribute_values(attributes)
|
42
|
-
attributes.
|
42
|
+
attributes.to_h do |key, value|
|
43
43
|
typecast = ATTRIBUTE_TYPES[key] || ATTRIBUTE_TYPES[:default]
|
44
44
|
[key, typecast.call(value)]
|
45
|
-
end
|
45
|
+
end
|
46
46
|
end
|
47
47
|
end
|
48
48
|
|
data/lib/action_text/version.rb
CHANGED
data/lib/action_text.rb
CHANGED
@@ -3,8 +3,13 @@
|
|
3
3
|
require "active_support"
|
4
4
|
require "active_support/rails"
|
5
5
|
|
6
|
+
require "action_text/version"
|
7
|
+
require "action_text/deprecator"
|
8
|
+
|
6
9
|
require "nokogiri"
|
7
10
|
|
11
|
+
# :markup: markdown
|
12
|
+
# :include: actiontext/README.md
|
8
13
|
module ActionText
|
9
14
|
extend ActiveSupport::Autoload
|
10
15
|
|
@@ -37,4 +42,18 @@ module ActionText
|
|
37
42
|
autoload :Minification
|
38
43
|
autoload :TrixConversion
|
39
44
|
end
|
45
|
+
|
46
|
+
class << self
|
47
|
+
def html_document_class
|
48
|
+
return @html_document_class if defined?(@html_document_class)
|
49
|
+
@html_document_class =
|
50
|
+
defined?(Nokogiri::HTML5) ? Nokogiri::HTML5::Document : Nokogiri::HTML4::Document
|
51
|
+
end
|
52
|
+
|
53
|
+
def html_document_fragment_class
|
54
|
+
return @html_document_fragment_class if defined?(@html_document_fragment_class)
|
55
|
+
@html_document_fragment_class =
|
56
|
+
defined?(Nokogiri::HTML5) ? Nokogiri::HTML5::DocumentFragment : Nokogiri::HTML4::DocumentFragment
|
57
|
+
end
|
58
|
+
end
|
40
59
|
end
|
@@ -9,8 +9,10 @@ module ActionText
|
|
9
9
|
source_root File.expand_path("templates", __dir__)
|
10
10
|
|
11
11
|
def install_javascript_dependencies
|
12
|
-
|
13
|
-
|
12
|
+
say "Installing JavaScript dependencies", :green
|
13
|
+
if using_bun?
|
14
|
+
run "bun add @rails/actiontext trix"
|
15
|
+
elsif using_node?
|
14
16
|
run "yarn add @rails/actiontext trix"
|
15
17
|
end
|
16
18
|
end
|
@@ -19,7 +21,7 @@ module ActionText
|
|
19
21
|
destination = Pathname(destination_root)
|
20
22
|
|
21
23
|
if (application_javascript_path = destination.join("app/javascript/application.js")).exist?
|
22
|
-
insert_into_file application_javascript_path.to_s, %(
|
24
|
+
insert_into_file application_javascript_path.to_s, %(\nimport "trix"\nimport "@rails/actiontext"\n)
|
23
25
|
else
|
24
26
|
say <<~INSTRUCTIONS, :green
|
25
27
|
You must import the @rails/actiontext and trix JavaScript modules in your application entrypoint.
|
@@ -66,6 +68,21 @@ module ActionText
|
|
66
68
|
rails_command "railties:install:migrations FROM=active_storage,action_text", inline: true
|
67
69
|
end
|
68
70
|
|
71
|
+
def using_js_runtime?
|
72
|
+
@using_js_runtime ||= Pathname(destination_root).join("package.json").exist?
|
73
|
+
end
|
74
|
+
|
75
|
+
def using_bun?
|
76
|
+
# Cannot assume yarn.lock has been generated yet so we look for
|
77
|
+
# a file known to be generated by the jsbundling-rails gem
|
78
|
+
@using_bun ||= using_js_runtime? && Pathname(destination_root).join("bun.config.js").exist?
|
79
|
+
end
|
80
|
+
|
81
|
+
def using_node?
|
82
|
+
# Bun is the only runtime that _isn't_ node.
|
83
|
+
@using_node ||= using_js_runtime? && !Pathname(destination_root).join("bun.config.js").exist?
|
84
|
+
end
|
85
|
+
|
69
86
|
hook_for :test_framework
|
70
87
|
end
|
71
88
|
end
|
@@ -3,11 +3,7 @@
|
|
3
3
|
* the trix-editor content (whether displayed or under editing). Feel free to incorporate this
|
4
4
|
* inclusion directly in any other asset bundle and remove this file.
|
5
5
|
*
|
6
|
-
<%- if defined?(Webpacker::Engine) -%>
|
7
|
-
*= require trix/dist/trix
|
8
|
-
<%- else -%>
|
9
6
|
*= require trix
|
10
|
-
<% end -%>
|
11
7
|
*/
|
12
8
|
|
13
9
|
/*
|
data/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@rails/actiontext",
|
3
|
-
"version": "7.0
|
3
|
+
"version": "7.1.0-beta1",
|
4
4
|
"description": "Edit and display rich text in Rails applications",
|
5
5
|
"main": "app/assets/javascripts/actiontext.js",
|
6
6
|
"type": "module",
|
@@ -15,23 +15,24 @@
|
|
15
15
|
"bugs": {
|
16
16
|
"url": "https://github.com/rails/rails/issues"
|
17
17
|
},
|
18
|
-
"author": "
|
18
|
+
"author": "37signals LLC",
|
19
19
|
"contributors": [
|
20
20
|
"Javan Makhmali <javan@javan.us>",
|
21
21
|
"Sam Stephenson <sstephenson@gmail.com>"
|
22
22
|
],
|
23
23
|
"license": "MIT",
|
24
24
|
"dependencies": {
|
25
|
-
"@rails/activestorage": ">= 7.
|
25
|
+
"@rails/activestorage": ">= 7.1.0-alpha",
|
26
|
+
"webpack": "^4.17.1"
|
26
27
|
},
|
27
28
|
"peerDependencies": {
|
28
|
-
"trix": "^
|
29
|
+
"trix": "^2.0.0"
|
29
30
|
},
|
30
31
|
"devDependencies": {
|
31
|
-
"@rollup/plugin-node-resolve": "^11.0.1",
|
32
32
|
"@rollup/plugin-commonjs": "^19.0.1",
|
33
|
+
"@rollup/plugin-node-resolve": "^11.0.1",
|
33
34
|
"rollup": "^2.35.1",
|
34
|
-
"trix": "^
|
35
|
+
"trix": "^2.0.0"
|
35
36
|
},
|
36
37
|
"scripts": {
|
37
38
|
"build": "rollup --config rollup.config.js"
|
metadata
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: actiontext
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.0.
|
4
|
+
version: 7.1.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Javan Makhmali
|
8
8
|
- Sam Stephenson
|
9
9
|
- David Heinemeier Hansson
|
10
|
-
autorequire:
|
10
|
+
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2023-09-13 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
@@ -18,56 +18,56 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - '='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 7.0.
|
21
|
+
version: 7.1.0.beta1
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
25
25
|
requirements:
|
26
26
|
- - '='
|
27
27
|
- !ruby/object:Gem::Version
|
28
|
-
version: 7.0.
|
28
|
+
version: 7.1.0.beta1
|
29
29
|
- !ruby/object:Gem::Dependency
|
30
30
|
name: activerecord
|
31
31
|
requirement: !ruby/object:Gem::Requirement
|
32
32
|
requirements:
|
33
33
|
- - '='
|
34
34
|
- !ruby/object:Gem::Version
|
35
|
-
version: 7.0.
|
35
|
+
version: 7.1.0.beta1
|
36
36
|
type: :runtime
|
37
37
|
prerelease: false
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
39
39
|
requirements:
|
40
40
|
- - '='
|
41
41
|
- !ruby/object:Gem::Version
|
42
|
-
version: 7.0.
|
42
|
+
version: 7.1.0.beta1
|
43
43
|
- !ruby/object:Gem::Dependency
|
44
44
|
name: activestorage
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
47
|
- - '='
|
48
48
|
- !ruby/object:Gem::Version
|
49
|
-
version: 7.0.
|
49
|
+
version: 7.1.0.beta1
|
50
50
|
type: :runtime
|
51
51
|
prerelease: false
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
53
53
|
requirements:
|
54
54
|
- - '='
|
55
55
|
- !ruby/object:Gem::Version
|
56
|
-
version: 7.0.
|
56
|
+
version: 7.1.0.beta1
|
57
57
|
- !ruby/object:Gem::Dependency
|
58
58
|
name: actionpack
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
60
60
|
requirements:
|
61
61
|
- - '='
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
version: 7.0.
|
63
|
+
version: 7.1.0.beta1
|
64
64
|
type: :runtime
|
65
65
|
prerelease: false
|
66
66
|
version_requirements: !ruby/object:Gem::Requirement
|
67
67
|
requirements:
|
68
68
|
- - '='
|
69
69
|
- !ruby/object:Gem::Version
|
70
|
-
version: 7.0.
|
70
|
+
version: 7.1.0.beta1
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
72
|
name: nokogiri
|
73
73
|
requirement: !ruby/object:Gem::Requirement
|
@@ -118,6 +118,7 @@ files:
|
|
118
118
|
- app/models/action_text/encrypted_rich_text.rb
|
119
119
|
- app/models/action_text/record.rb
|
120
120
|
- app/models/action_text/rich_text.rb
|
121
|
+
- app/views/action_text/attachables/_content_attachment.html.erb
|
121
122
|
- app/views/action_text/attachables/_missing_attachable.html.erb
|
122
123
|
- app/views/action_text/attachables/_remote_image.html.erb
|
123
124
|
- app/views/action_text/attachment_galleries/_attachment_gallery.html.erb
|
@@ -137,6 +138,7 @@ files:
|
|
137
138
|
- lib/action_text/attachments/trix_conversion.rb
|
138
139
|
- lib/action_text/attribute.rb
|
139
140
|
- lib/action_text/content.rb
|
141
|
+
- lib/action_text/deprecator.rb
|
140
142
|
- lib/action_text/encryption.rb
|
141
143
|
- lib/action_text/engine.rb
|
142
144
|
- lib/action_text/fixture_set.rb
|
@@ -160,12 +162,12 @@ licenses:
|
|
160
162
|
- MIT
|
161
163
|
metadata:
|
162
164
|
bug_tracker_uri: https://github.com/rails/rails/issues
|
163
|
-
changelog_uri: https://github.com/rails/rails/blob/v7.0.
|
164
|
-
documentation_uri: https://api.rubyonrails.org/v7.0.
|
165
|
+
changelog_uri: https://github.com/rails/rails/blob/v7.1.0.beta1/actiontext/CHANGELOG.md
|
166
|
+
documentation_uri: https://api.rubyonrails.org/v7.1.0.beta1/
|
165
167
|
mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
|
166
|
-
source_code_uri: https://github.com/rails/rails/tree/v7.0.
|
168
|
+
source_code_uri: https://github.com/rails/rails/tree/v7.1.0.beta1/actiontext
|
167
169
|
rubygems_mfa_required: 'true'
|
168
|
-
post_install_message:
|
170
|
+
post_install_message:
|
169
171
|
rdoc_options: []
|
170
172
|
require_paths:
|
171
173
|
- lib
|
@@ -176,12 +178,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
176
178
|
version: 2.7.0
|
177
179
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
178
180
|
requirements:
|
179
|
-
- - "
|
181
|
+
- - ">"
|
180
182
|
- !ruby/object:Gem::Version
|
181
|
-
version:
|
183
|
+
version: 1.3.1
|
182
184
|
requirements: []
|
183
|
-
rubygems_version: 3.
|
184
|
-
signing_key:
|
185
|
+
rubygems_version: 3.4.18
|
186
|
+
signing_key:
|
185
187
|
specification_version: 4
|
186
188
|
summary: Rich text framework.
|
187
189
|
test_files: []
|