Cherry.Collections.Portfolio (cherry v0.4.0)

Copy Markdown View Source

Shared shape of the portfolio collections (DESIGN.md §4): typed entries under content/portfolio/, slug from the filename, no page of their own — the timeline, story, and CV views render them.

Every entry carries tags: from the same taxonomy as blog posts (the cross-linking is the feature) and may opt into the CV with a cv: curation block.

Summary

Functions

Schema fields every portfolio collection shares.

A required/optional ISO date field.

Derives slug from the filename: acme.mdacme.

Functions

common_fields()

@spec common_fields() :: keyword()

Schema fields every portfolio collection shares.

date_field(doc, opts \\ [])

@spec date_field(
  String.t(),
  keyword()
) :: keyword()

A required/optional ISO date field.

parse_source(rel_path, meta)

@spec parse_source(String.t(), map()) :: {:ok, map()}

Derives slug from the filename: acme.mdacme.