Cherry.Portfolio.OpenSource (cherry v0.3.0)

Copy Markdown View Source

An open-source involvement: repository plus named role.

Summary

Functions

Materialises the struct from a validated portfolio document.

Stable ordering: authored work first, then by title.

Types

t()

@type t() :: %Cherry.Portfolio.OpenSource{
  cv: Cherry.Portfolio.Curation.t() | nil,
  highlights: [String.t()],
  html: String.t() | nil,
  repo: String.t(),
  role: String.t(),
  slug: String.t(),
  tags: [String.t()],
  title: String.t()
}

Functions

from_document(document)

@spec from_document(Cherry.Content.Document.t()) :: t()

Materialises the struct from a validated portfolio document.

sort_key(oss)

@spec sort_key(t()) :: {integer(), String.t()}

Stable ordering: authored work first, then by title.