actiontext 7.0.8.4 → 7.1.3.4
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 +56 -115
- data/MIT-LICENSE +1 -1
- data/README.md +2 -2
- data/app/assets/javascripts/actiontext.esm.js +889 -0
- data/app/assets/javascripts/actiontext.js +55 -73
- data/app/assets/javascripts/trix.js +12163 -19
- data/app/assets/stylesheets/trix.css +67 -30
- data/app/helpers/action_text/content_helper.rb +26 -4
- data/app/helpers/action_text/tag_helper.rb +11 -7
- 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 +69 -5
- 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 +45 -3
- data/lib/action_text/deprecator.rb +7 -0
- data/lib/action_text/engine.rb +15 -9
- data/lib/action_text/fixture_set.rb +2 -0
- data/lib/action_text/fragment.rb +4 -3
- data/lib/action_text/gem_version.rb +3 -3
- data/lib/action_text/html_conversion.rb +1 -1
- 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 +21 -4
- data/lib/generators/action_text/install/templates/actiontext.css +0 -4
- data/package.json +7 -7
- metadata +15 -12
@@ -2,11 +2,25 @@
|
|
2
2
|
|
3
3
|
module ActionText
|
4
4
|
module Attachables
|
5
|
-
|
5
|
+
class MissingAttachable
|
6
6
|
extend ActiveModel::Naming
|
7
7
|
|
8
|
-
|
9
|
-
|
8
|
+
DEFAULT_PARTIAL_PATH = "action_text/attachables/missing_attachable"
|
9
|
+
|
10
|
+
def initialize(sgid)
|
11
|
+
@sgid = SignedGlobalID.parse(sgid, for: ActionText::Attachable::LOCATOR_NAME)
|
12
|
+
end
|
13
|
+
|
14
|
+
def to_partial_path
|
15
|
+
if model
|
16
|
+
model.to_missing_attachable_partial_path
|
17
|
+
else
|
18
|
+
DEFAULT_PARTIAL_PATH
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
def model
|
23
|
+
@sgid&.model_name.to_s.safe_constantize
|
10
24
|
end
|
11
25
|
end
|
12
26
|
end
|
@@ -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,8 +1,26 @@
|
|
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
|
-
include Rendering, Serialization
|
23
|
+
include Rendering, Serialization, ContentHelper
|
6
24
|
|
7
25
|
attr_reader :fragment
|
8
26
|
|
@@ -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)
|
@@ -59,6 +94,7 @@ module ActionText
|
|
59
94
|
|
60
95
|
def render_attachments(**options, &block)
|
61
96
|
content = fragment.replace(ActionText::Attachment.tag_name) do |node|
|
97
|
+
node["content"] = sanitize_content_attachment(node["content"])
|
62
98
|
block.call(attachment_for_node(node, **options))
|
63
99
|
end
|
64
100
|
self.class.new(content, canonicalize: false)
|
@@ -71,6 +107,10 @@ module ActionText
|
|
71
107
|
self.class.new(content, canonicalize: false)
|
72
108
|
end
|
73
109
|
|
110
|
+
# Returns the content as plain text with all HTML tags removed.
|
111
|
+
#
|
112
|
+
# content = ActionText::Content.new("<h1>Funny times!</h1>")
|
113
|
+
# content.to_plain_text # => "Funny times!"
|
74
114
|
def to_plain_text
|
75
115
|
render_attachments(with_full_attributes: false, &:to_plain_text).fragment.to_plain_text
|
76
116
|
end
|
@@ -100,11 +140,13 @@ module ActionText
|
|
100
140
|
end
|
101
141
|
|
102
142
|
def inspect
|
103
|
-
"#<#{self.class.name} #{
|
143
|
+
"#<#{self.class.name} #{to_html.truncate(25).inspect}>"
|
104
144
|
end
|
105
145
|
|
106
146
|
def ==(other)
|
107
|
-
if
|
147
|
+
if self.class == other.class
|
148
|
+
to_html == other.to_html
|
149
|
+
elsif other.is_a?(self.class)
|
108
150
|
to_s == other.to_s
|
109
151
|
end
|
110
152
|
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
|
@@ -28,7 +32,7 @@ module ActionText
|
|
28
32
|
|
29
33
|
initializer "action_text.asset" do
|
30
34
|
if Rails.application.config.respond_to?(:assets)
|
31
|
-
Rails.application.config.assets.precompile += %w( actiontext.js trix.js trix.css )
|
35
|
+
Rails.application.config.assets.precompile += %w( actiontext.js actiontext.esm.js trix.js trix.css )
|
32
36
|
end
|
33
37
|
end
|
34
38
|
|
@@ -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,15 +1,15 @@
|
|
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 =
|
11
|
+
MINOR = 1
|
12
|
+
TINY = 3
|
13
13
|
PRE = "4"
|
14
14
|
|
15
15
|
STRING = [MAJOR, MINOR, TINY, PRE].compact.join(".")
|
@@ -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.
|
@@ -27,7 +29,7 @@ module ActionText
|
|
27
29
|
end
|
28
30
|
|
29
31
|
if (importmap_path = destination.join("config/importmap.rb")).exist?
|
30
|
-
append_to_file importmap_path.to_s, %(pin "trix"\npin "@rails/actiontext", to: "actiontext.js"\n)
|
32
|
+
append_to_file importmap_path.to_s, %(pin "trix"\npin "@rails/actiontext", to: "actiontext.esm.js"\n)
|
31
33
|
end
|
32
34
|
end
|
33
35
|
|
@@ -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,9 +1,9 @@
|
|
1
1
|
{
|
2
2
|
"name": "@rails/actiontext",
|
3
|
-
"version": "7.
|
3
|
+
"version": "7.1.3-4",
|
4
4
|
"description": "Edit and display rich text in Rails applications",
|
5
|
+
"module": "app/assets/javascripts/actiontext.esm.js",
|
5
6
|
"main": "app/assets/javascripts/actiontext.js",
|
6
|
-
"type": "module",
|
7
7
|
"files": [
|
8
8
|
"app/assets/javascripts/*.js"
|
9
9
|
],
|
@@ -15,23 +15,23 @@
|
|
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
26
|
},
|
27
27
|
"peerDependencies": {
|
28
|
-
"trix": "^
|
28
|
+
"trix": "^2.0.0"
|
29
29
|
},
|
30
30
|
"devDependencies": {
|
31
|
-
"@rollup/plugin-node-resolve": "^11.0.1",
|
32
31
|
"@rollup/plugin-commonjs": "^19.0.1",
|
32
|
+
"@rollup/plugin-node-resolve": "^11.0.1",
|
33
33
|
"rollup": "^2.35.1",
|
34
|
-
"trix": "^
|
34
|
+
"trix": "^2.0.0"
|
35
35
|
},
|
36
36
|
"scripts": {
|
37
37
|
"build": "rollup --config rollup.config.js"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: actiontext
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 7.
|
4
|
+
version: 7.1.3.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Javan Makhmali
|
@@ -18,56 +18,56 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - '='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 7.
|
21
|
+
version: 7.1.3.4
|
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.
|
28
|
+
version: 7.1.3.4
|
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.
|
35
|
+
version: 7.1.3.4
|
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.
|
42
|
+
version: 7.1.3.4
|
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.
|
49
|
+
version: 7.1.3.4
|
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.
|
56
|
+
version: 7.1.3.4
|
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.
|
63
|
+
version: 7.1.3.4
|
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.
|
70
|
+
version: 7.1.3.4
|
71
71
|
- !ruby/object:Gem::Dependency
|
72
72
|
name: nokogiri
|
73
73
|
requirement: !ruby/object:Gem::Requirement
|
@@ -108,6 +108,7 @@ files:
|
|
108
108
|
- CHANGELOG.md
|
109
109
|
- MIT-LICENSE
|
110
110
|
- README.md
|
111
|
+
- app/assets/javascripts/actiontext.esm.js
|
111
112
|
- app/assets/javascripts/actiontext.js
|
112
113
|
- app/assets/javascripts/trix.js
|
113
114
|
- app/assets/stylesheets/trix.css
|
@@ -118,6 +119,7 @@ files:
|
|
118
119
|
- app/models/action_text/encrypted_rich_text.rb
|
119
120
|
- app/models/action_text/record.rb
|
120
121
|
- app/models/action_text/rich_text.rb
|
122
|
+
- app/views/action_text/attachables/_content_attachment.html.erb
|
121
123
|
- app/views/action_text/attachables/_missing_attachable.html.erb
|
122
124
|
- app/views/action_text/attachables/_remote_image.html.erb
|
123
125
|
- app/views/action_text/attachment_galleries/_attachment_gallery.html.erb
|
@@ -137,6 +139,7 @@ files:
|
|
137
139
|
- lib/action_text/attachments/trix_conversion.rb
|
138
140
|
- lib/action_text/attribute.rb
|
139
141
|
- lib/action_text/content.rb
|
142
|
+
- lib/action_text/deprecator.rb
|
140
143
|
- lib/action_text/encryption.rb
|
141
144
|
- lib/action_text/engine.rb
|
142
145
|
- lib/action_text/fixture_set.rb
|
@@ -160,10 +163,10 @@ licenses:
|
|
160
163
|
- MIT
|
161
164
|
metadata:
|
162
165
|
bug_tracker_uri: https://github.com/rails/rails/issues
|
163
|
-
changelog_uri: https://github.com/rails/rails/blob/v7.
|
164
|
-
documentation_uri: https://api.rubyonrails.org/v7.
|
166
|
+
changelog_uri: https://github.com/rails/rails/blob/v7.1.3.4/actiontext/CHANGELOG.md
|
167
|
+
documentation_uri: https://api.rubyonrails.org/v7.1.3.4/
|
165
168
|
mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
|
166
|
-
source_code_uri: https://github.com/rails/rails/tree/v7.
|
169
|
+
source_code_uri: https://github.com/rails/rails/tree/v7.1.3.4/actiontext
|
167
170
|
rubygems_mfa_required: 'true'
|
168
171
|
post_install_message:
|
169
172
|
rdoc_options: []
|