Packages
ckeditor5_phoenix
1.15.2
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/contexts.ex
defmodule CKEditor5.Contexts do
@moduledoc """
Provides predefined configurations (contexts) for CKEditor 5.
"""
use Memoize
alias CKEditor5.{Config, Context, Errors, Helpers}
@doc """
Retrieves a context configuration by name.
Returns `{:ok, context}` on success, or `{:error, reason}` on failure.
"""
defmemo get(context_name) do
all_contexts = contexts()
with {:ok, context_config} <- Map.fetch(all_contexts, context_name),
{:ok, context} <- Context.parse(context_config) do
{:ok, context}
else
{:error, reason} ->
{:error, %Errors.InvalidContext{reason: reason}}
:error ->
{:error,
%Errors.ContextNotFound{
context_name: context_name,
available_contexts: Map.keys(all_contexts)
}}
end
end
@doc """
Retrieves a context configuration by name, raising an exception on failure.
"""
def get!(context_name) do
case get(context_name) do
{:ok, context} -> context
{:error, reason} -> raise reason
end
end
@doc """
Returns all available contexts.
"""
def contexts do
Config.raw_contexts()
|> Helpers.map_keys_to_strings()
|> Map.new()
end
end