Packages

CKEditor 5 integration for Phoenix Framework

Retired package: Renamed - Moved to ckeditor5-phoenix

Current section

Files

Jump to
ckeditor5 lib helpers.ex
Raw

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