This documentation is also published as Markdown for efficient machine reading: the whole site is indexed at /llms.txt, and every page has a clean Markdown copy under /_llms/. These are generated from the same source and cost far fewer tokens to read than this rendered HTML.

Skip to main content Skip to navigation

IContentPipeline Pennington.Pipeline

The content processing pipeline.

Methods

DiscoverAsync

#
public IAsyncEnumerable<ContentItem> DiscoverAsync()

Entry: content services produce discovered items.

Returns

IAsyncEnumerable<ContentItem>

GenerateAsync

#
public Task<BuildReport> GenerateAsync(IAsyncEnumerable<ContentItem> items)

Exit: generate output files.

Parameters

items IAsyncEnumerable<ContentItem>

Returns

Task<BuildReport>

ParseAsync

#
public IAsyncEnumerable<ContentItem> ParseAsync(IAsyncEnumerable<ContentItem> items)

Transform: parse items (read files, extract YAML + body).

Parameters

items IAsyncEnumerable<ContentItem>

Returns

IAsyncEnumerable<ContentItem>

RenderAsync

#
public IAsyncEnumerable<ContentItem> RenderAsync(IAsyncEnumerable<ContentItem> items)

Transform: render items (Markdig pipeline to HTML).

Parameters

items IAsyncEnumerable<ContentItem>

Returns

IAsyncEnumerable<ContentItem>

Pennington.Pipeline.IContentPipeline

namespace Pennington.Pipeline;

/// The content processing pipeline.
public interface IContentPipeline
{
    /// Entry: content services produce discovered items.
    
public IAsyncEnumerable<ContentItem> DiscoverAsync()
; /// Exit: generate output files.
public Task<BuildReport> GenerateAsync(IAsyncEnumerable<ContentItem> items)
; /// Transform: parse items (read files, extract YAML + body).
public IAsyncEnumerable<ContentItem> ParseAsync(IAsyncEnumerable<ContentItem> items)
; /// Transform: render items (Markdig pipeline to HTML).
public IAsyncEnumerable<ContentItem> RenderAsync(IAsyncEnumerable<ContentItem> items)
; }