Packages
ckeditor5_phoenix
1.17.0
1.28.2
1.28.1
1.28.0
1.27.2
1.27.1
1.27.0
1.26.0
1.25.1
1.25.0
1.24.2
1.24.1
1.24.0
1.23.0
1.22.0
1.21.0
1.20.0
1.19.0
1.18.0
1.17.2
1.17.1
1.17.0
1.16.1
1.16.0
1.15.8
1.15.7
1.15.6
1.15.5
1.15.4
1.15.3
1.15.2
1.15.1
1.15.0
1.14.2
1.14.1
1.14.0
1.13.0
1.12.0
1.11.0
1.10.2
1.10.1
1.10.0
1.9.0
1.8.0
1.7.0
1.6.0
1.5.0
1.4.1
1.4.0
1.3.0
1.2.1
1.2.0
1.1.0
1.0.8
1.0.7
CKEditor 5 integration for Phoenix Framework
Current section
Files
Jump to
Current section
Files
lib/components/cloud/modulepreload.ex
defmodule CKEditor5.Components.Cloud.ModulePreload do
@moduledoc """
A component for rendering module preload link tags of CKEditor 5 in Phoenix.
## ⚠️ Warning
Import maps can only be used if the preset has the Cloud option enabled, which is not available
under the GPL license key. You must specify your own Cloud or use a commercial license to utilize
this feature.
"""
use Phoenix.Component
import CKEditor5.Components.Cloud.Assigns
alias CKEditor5.Cloud.AssetPackageBuilder
@doc """
Renders module preload link tags for all modules in the import map.
"""
attr :nonce, :string, default: nil, doc: "The CSP nonce to use for the script tag."
cloud_build_attrs()
def render(assigns) do
assigns = assign_modules_for_preload(assigns)
~H"""
<link
:for={module_url <- @module_urls}
rel="modulepreload"
href={module_url}
nonce={@nonce}
crossorigin="anonymous"
/>
"""
end
defp assign_modules_for_preload(assigns) do
module_urls =
build_cloud!(assigns)
|> AssetPackageBuilder.build()
|> Map.get(:js)
|> Enum.filter(&(&1.type == :esm))
|> Enum.map(& &1.url)
Map.put(assigns, :module_urls, module_urls)
end
end