diff options
Diffstat (limited to 'actiontext/lib/templates')
-rw-r--r-- | actiontext/lib/templates/actiontext.scss | 36 | ||||
-rw-r--r-- | actiontext/lib/templates/fixtures.yml | 4 | ||||
-rw-r--r-- | actiontext/lib/templates/installer.rb | 32 |
3 files changed, 72 insertions, 0 deletions
diff --git a/actiontext/lib/templates/actiontext.scss b/actiontext/lib/templates/actiontext.scss new file mode 100644 index 0000000000..7cb26e74ac --- /dev/null +++ b/actiontext/lib/templates/actiontext.scss @@ -0,0 +1,36 @@ +// +// Provides a drop-in pointer for the default Trix stylesheet that will format the toolbar and +// the trix-editor content (whether displayed or under editing). Feel free to incorporate this +// inclusion directly in any other asset bundle and remove this file. +// +//= require trix/dist/trix + +// We need to override trix.css’s image gallery styles to accommodate the +// <action-text-attachment> element we wrap around attachments. Otherwise, +// images in galleries will be squished by the max-width: 33%; rule. +.trix-content { + .attachment-gallery { + > action-text-attachment, + > .attachment { + flex: 1 0 33%; + padding: 0 0.5em; + max-width: 33%; + } + + &.attachment-gallery--2, + &.attachment-gallery--4 { + > action-text-attachment, + > .attachment { + flex-basis: 50%; + max-width: 50%; + } + } + } + + action-text-attachment { + .attachment { + padding: 0 !important; + max-width: 100% !important; + } + } +} diff --git a/actiontext/lib/templates/fixtures.yml b/actiontext/lib/templates/fixtures.yml new file mode 100644 index 0000000000..8b371ea604 --- /dev/null +++ b/actiontext/lib/templates/fixtures.yml @@ -0,0 +1,4 @@ +# one: +# record: name_of_fixture (ClassOfFixture) +# name: content +# body: <p>In a <i>million</i> stars!</p> diff --git a/actiontext/lib/templates/installer.rb b/actiontext/lib/templates/installer.rb new file mode 100644 index 0000000000..a8000eb9fc --- /dev/null +++ b/actiontext/lib/templates/installer.rb @@ -0,0 +1,32 @@ +require "pathname" +require "json" + +APPLICATION_PACK_PATH = Pathname.new("app/javascript/packs/application.js") +JS_PACKAGE_PATH = Pathname.new("#{__dir__}/../../package.json") + +JS_PACKAGE = JSON.load(JS_PACKAGE_PATH) +JS_DEPENDENCIES = JS_PACKAGE["peerDependencies"].dup.merge \ + JS_PACKAGE["name"] => "^#{JS_PACKAGE["version"]}" + +say "Copying actiontext.scss to app/assets/stylesheets" +copy_file "#{__dir__}/actiontext.scss", "app/assets/stylesheets/actiontext.scss" + +say "Copying fixtures to test/fixtures/action_text/rich_texts.yml" +copy_file "#{__dir__}/fixtures.yml", "test/fixtures/action_text/rich_texts.yml" + +say "Copying blob rendering partial to app/views/active_storage/blobs/_blob.html.erb" +copy_file "#{__dir__}/../../app/views/active_storage/blobs/_blob.html.erb", + "app/views/active_storage/blobs/_blob.html.erb" + +say "Installing JavaScript dependencies" +run "yarn add #{JS_DEPENDENCIES.map { |name, version| "#{name}@#{version}" }.join(" ")}" + +if APPLICATION_PACK_PATH.exist? + JS_DEPENDENCIES.keys.each do |name| + line = %[require("#{name}")] + unless APPLICATION_PACK_PATH.read.include? line + say "Adding #{name} to #{APPLICATION_PACK_PATH}" + append_to_file APPLICATION_PACK_PATH, "\n#{line}" + end + end +end |