Excerpt generation from content body.
Generates short summaries for use in list pages, feeds, and SEO.
Supports both manual excerpts (via excerpt: front matter) and
automatic generation from the first paragraph.
Examples
iex> content = %Sayfa.Content{body: "<p>First paragraph.</p><p>Second.</p>", meta: %{}}
iex> Sayfa.Excerpt.extract(content)
"First paragraph."
iex> content = %Sayfa.Content{body: "Long text...", meta: %{"excerpt" => "Custom excerpt"}}
iex> Sayfa.Excerpt.extract(content)
"Custom excerpt"
Summary
Functions
Extracts an excerpt from content.
Functions
@spec extract( Sayfa.Content.t(), keyword() ) :: String.t()
Extracts an excerpt from content.
Priority order:
excerptfield in content.meta- First paragraph from HTML body (stripped of tags)
- Truncated body (if no paragraph breaks)
Options
:length- Maximum length of excerpt (default: 160)
Examples
iex> content = %Sayfa.Content{body: "<p>Hello world</p>", meta: %{}}
iex> Sayfa.Excerpt.extract(content)
"Hello world"