ContentSource Pennington.Pipeline
Union of all ways content can be sourced for a route.
Cases
EndpointSourceEndpointSource- Marker source for routes whose content is produced by a live HTTP endpoint (e.g., a custom
IContentServicepage or anAddTaxonomyterm page). These items exist so the build crawler discovers the URL and fetches it through the live pipeline — they do not participate in parse/render and are not redirects. Because the endpoint serves real canonical HTML at a stable URL, the route is listed in the sitemap; transport endpoints that emit a non-HTML file are dropped earlier bySitemapService's output-extension check. FileSourceFileSource- Content sourced from a file on disk, tagged with a format key that selects its parser/renderer.
GeneratedSourceGeneratedSource- A route whose bytes are produced by an
IArtifactContentServiceresolver rather than parsed from a file or rendered by a component — search shards, llms.txt files, book PDFs. Yielded only from the artifact tier's discovery: the static build writes each item via the owning service's resolver, and the artifact router serves the same bytes in dev. Never crawled, never a sitemap or record candidate. LlmsOnlySourceLlmsOnlySource- A markdown file that contributes only to the llms.txt index and its sidecar markdown — no HTML page is emitted, and the route is excluded from navigation, sitemap, RSS, and the search index. Conventionally produced by
MarkdownContentServicewhen it sees a*.llms.mdfile: the discovered route uses the slug with the.llmssuffix stripped, and downstream stages key off the source type to skip HTML. RazorPageSourceRazorPageSource- Content rendered by a Razor page/component.
RedirectSourceRedirectSource- A route that redirects to another URL.
Properties
Valueobject- Wrapped case instance; inspect via pattern matching on the case types.
Constructors
ContentSource
#public ContentSource(FileSource value)
Wraps a FileSource.
Parameters
valueFileSource
ContentSource
#public ContentSource(RazorPageSource value)
Wraps a RazorPageSource.
Parameters
valueRazorPageSource
ContentSource
#public ContentSource(RedirectSource value)
Wraps a RedirectSource.
Parameters
valueRedirectSource
ContentSource
#public ContentSource(EndpointSource value)
Wraps an EndpointSource.
Parameters
valueEndpointSource
ContentSource
#public ContentSource(LlmsOnlySource value)
Wraps an LlmsOnlySource.
Parameters
valueLlmsOnlySource
ContentSource
#public ContentSource(GeneratedSource value)
Wraps a GeneratedSource.
Parameters
valueGeneratedSource
Pennington.Pipeline.ContentSource
namespace Pennington.Pipeline;
/// Union of all ways content can be sourced for a route.
public struct ContentSource
{
/// Wraps a FileSource.
public ContentSource(FileSource value)
;
/// Wraps a RazorPageSource.
public ContentSource(RazorPageSource value)
;
/// Wraps a RedirectSource.
public ContentSource(RedirectSource value)
;
/// Wraps an EndpointSource.
public ContentSource(EndpointSource value)
;
/// Wraps an LlmsOnlySource.
public ContentSource(LlmsOnlySource value)
;
/// Wraps a GeneratedSource.
public ContentSource(GeneratedSource value)
;
/// Marker source for routes whose content is produced by a live HTTP endpoint (e.g., a custom IContentService page or an AddTaxonomy term page). These items exist so the build crawler discovers the URL and fetches it through the live pipeline — they do not participate in parse/render and are not redirects. Because the endpoint serves real canonical HTML at a stable URL, the route is listed in the sitemap; transport endpoints that emit a non-HTML file are dropped earlier by SitemapService's output-extension check.
public record EndpointSource : object, IEquatable<EndpointSource>
/// Content sourced from a file on disk, tagged with a format key that selects its parser/renderer.
public record FileSource(FilePath Path, string Format) : object, IEquatable<FileSource>
/// A route whose bytes are produced by an IArtifactContentService resolver rather than parsed from a file or rendered by a component — search shards, llms.txt files, book PDFs. Yielded only from the artifact tier's discovery: the static build writes each item via the owning service's resolver, and the artifact router serves the same bytes in dev. Never crawled, never a sitemap or record candidate.
public record GeneratedSource(string ContentType) : object, IEquatable<GeneratedSource>
/// A markdown file that contributes only to the llms.txt index and its sidecar markdown — no HTML page is emitted, and the route is excluded from navigation, sitemap, RSS, and the search index. Conventionally produced by MarkdownContentService when it sees a *.llms.md file: the discovered route uses the slug with the .llms suffix stripped, and downstream stages key off the source type to skip HTML.
public record LlmsOnlySource(FilePath Path, string Format) : object, IEquatable<LlmsOnlySource>
/// Content rendered by a Razor page/component.
public record RazorPageSource(string ComponentType) : object, IEquatable<RazorPageSource>
/// A route that redirects to another URL.
public record RedirectSource(UrlPath TargetUrl) : object, IEquatable<RedirectSource>
/// Wrapped case instance; inspect via pattern matching on the case types.
public object Value { get; }
}