thesis v0.3.4 Thesis.PageContent

Content areas for a specific page. Includes meta information about the type of content as well as other info for specific content blocks.

Link to this section Summary

Functions

Changeset for PageContent structs

Selects the right page content from a list

Returns a keyword list of meta attributes from the serialized data.

Doctests

Returns a serialized string, given a map, for storage in the meta field

Link to this section Types

Link to this type

t()
t() :: %Thesis.PageContent{
  __meta__: term(),
  content: String.t() | nil,
  content_type: String.t() | nil,
  id: any(),
  inserted_at: any(),
  meta: String.t() | nil,
  name: String.t(),
  page: term(),
  page_id: integer(),
  updated_at: any()
}

Link to this section Functions

Link to this function

changeset(page_content, params \\ %{})

Changeset for PageContent structs.

Link to this function

find(contents, page_id, name)

Selects the right page content from a list.

iex> foo = [%Thesis.PageContent{id: 1, page_id: nil, name: "Test"},%Thesis.PageContent{id: 2, page_id: 1, name: "Test"},%Thesis.PageContent{id: 3, page_id: 2, name: "Test"},%Thesis.PageContent{id: 4, page_id: nil, name: "Test2"},%Thesis.PageContent{id: 5, page_id: 1, name: "Test2"}]
iex> Thesis.PageContent.find(foo, nil, "Test").id == 1
true
iex> Thesis.PageContent.find(foo, 1, "Test").id == 2
true
iex> Thesis.PageContent.find(foo, 2, "Test").id == 3
true
iex> Thesis.PageContent.find(foo, nil, "Test2").id == 4
true
iex> Thesis.PageContent.find(foo, 1, "Test2").id == 5
true
iex> Thesis.PageContent.find(foo, 1, "Test7")
nil
Link to this function

meta_attributes(page_content)

Returns a keyword list of meta attributes from the serialized data.

Doctests:

iex> m = %Thesis.PageContent{meta: ~S({"test":"Thing", "test2":"123"})}
iex> Thesis.PageContent.meta_attributes(m)
%{test: "Thing", test2: "123"}
Link to this function

meta_serialize(keyword_list)

Returns a serialized string, given a map, for storage in the meta field.

Doctests:

iex> m = %{test: "Thing", test2: "123"}
iex> Thesis.PageContent.meta_serialize(m)
~S({"test2":"123","test":"Thing"})