UNPKG

trix-embed

Version:

Take control over what external links and embedded media is permitted in the Trix editor via copy/paste

167 lines (126 loc) 4.74 kB
# Trix Embed #### Take control over what external links and embedded media is permitted in the Trix editor via copy/paste <!-- Tocer[start]: Auto-generated, don't remove. --> ## Table of Contents - [Setup](#setup) - [Features](#features) - [Allow / Block Lists](#allow--block-lists) - [Template Overrides](#template-overrides) - [Basic Usage](#basic-usage) - [Allow Lists](#allow-lists) - [Block Lists](#block-lists) - [Sponsors](#sponsors) - [Developing](#developing) - [Releasing](#releasing) - [License](#license) <!-- Tocer[finish]: Auto-generated, don't remove. --> ## Dependencies - [ActionText](https://github.com/rails/rails/tree/main/actiontext) - [Stimulus](https://github.com/hotwired/stimulus) - [Trix](https://github.com/basecamp/trix) ## Setup ```sh bundle add trix_embed yarn add trix-embed@$(bundle show trix_embed | ruby -ne 'puts $_.split(/-/).last') ``` ```js import Trix from 'trix' import "@rails/actiontext" import { Application, Controller } from '@hotwired/stimulus' import TrixEmbed from 'trix-embed' const application = Application.start() TrixEmbed.initialize({ application, Controller, Trix }) ``` ## Features ### Allow / Block Lists Configure allow and/or block lists for external links and embedded media in your Trix editors. __⚠︎ Block lists have precendence!__ - allowed link hosts - blocked link hosts - allowed media hosts - blocked media hosts _Note that you can also use wildcards `*` in any of lists._ ### Template Overrides TODO: document... ## Basic Usage ### Allow Lists - Allow everything ```html <form> <input id="content" name="content" type="hidden"> <trix-editor id="editor" input="content" data-controller="trix-embed" data-trix-embed-allowed-link-hosts-value='["*"]' data-trix-embed-allowed-media-hosts-value='["*"]'> </trix-editor> </form> ``` - Allow links to all hosts and allow media (images, videos, etc.) from the following hosts: `vimeo.com, voomly.com, youtube.com` ```html <form> <input id="content" name="content" type="hidden"> <trix-editor id="editor" input="content" data-controller="trix-embed" data-trix-embed-allowed-link-hosts-value='["*"]' data-trix-embed-allowed-media-hosts-value='["vimeo.com", "voomly.com", "youtube.com"]'> </trix-editor> </form> ``` ### Block Lists - Block everything ```html <form> <input id="content" name="content" type="hidden"> <trix-editor id="editor" input="content" data-controller="trix-embed" data-trix-embed-block-link-hosts-value='["*"]' data-trix-embed-block-media-hosts-value='["*"]'> </trix-editor> </form> ``` ...or simply. ```html <form> <input id="content" name="content" type="hidden"> <trix-editor id="editor" input="content" data-controller="trix-embed"> </trix-editor> </form> ``` - Block links to the following hosts: `4chan.org, 8chan.net, thepiratebay.org` and block media (images, videos, etc.) from the following hosts: `deviantart.com, imgur.com, tumblr.com` ```html <form> <input id="content" name="content" type="hidden"> <trix-editor id="editor" input="content" data-controller="trix-embed" data-trix-embed-blocked-link-hosts-value='["4chan.org", "8chan.net", "thepiratebay.org"]' data-trix-embed-blocked-media-hosts-value='["deviantart.com", "imgur.com", "tumblr.com"]'> </trix-editor> </form> ``` ## Sponsors <p align="center"> <em>Proudly sponsored by</em> </p> <p align="center"> <a href="https://www.clickfunnels.com?utm_source=hopsoft&utm_medium=open-source&utm_campaign=trix_embed"> <img src="https://images.clickfunnel.com/uploads/digital_asset/file/176632/clickfunnels-dark-logo.svg" width="575" /> </a> </p> ## Developing ```sh git clone https://github.com/hopsoft/trix_embed.git cd trix_embed bin/dev ``` ## Releasing 1. Run `yarn` and `bundle` to pick up the latest 1. Bump version number at `lib/trix_embed/version.rb`. Pre-release versions use `.preN` 1. Bump version number at `package.json` _(make sure it matches)_. Pre-release versions use `-preN` 1. Run `yarn build` - *builds both the Ruby gem and the NPM package* 1. Commit and push changes to GitHub 1. Run `rake release` 1. Run `yarn publish --no-git-tag-version --access public --new-version X.X.X` _(use same version number)_ 1. Create a new release on GitHub ([here](https://github.com/hopsoft/trix_embed/releases)) and generate the changelog for the stable release for it ## License The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).