Packages
ckeditor5_phoenix
1.9.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/helpers.ex
defmodule CKEditor5.Helpers do
@moduledoc """
Common helper functions for CKEditor5 components.
"""
@doc """
Assigns a unique ID if one is not already present in assigns.
Generates a random UUID-based ID only when :id key is missing.
"""
def assign_id_if_missing(assigns, prefix) do
Phoenix.Component.assign_new(assigns, :id, fn ->
uuid = :crypto.strong_rand_bytes(16) |> Base.encode16(case: :lower)
"#{prefix}-#{uuid}"
end)
end
@doc """
Checks if a given version string is in semantic versioning format (e.g., "1.0.0").
"""
def is_semver_version?(version) when is_binary(version) do
String.match?(version, ~r/^\d+\.\d+\.\d+(-[a-zA-Z0-9-.]+)?$/)
end
@doc """
Serializes a map of styles into a CSS string.
Converts a map of styles into a string suitable for inline CSS.
Example: %{color: "red", "font-size": "16px"} becomes "color: red; font-size: 16px".
"""
def serialize_styles_map(styles_map) when is_map(styles_map) do
styles_map
|> Enum.map_join("; ", fn {key, value} -> "#{key}: #{value}" end)
end
end