Class
Sealed
public sealed class DiscoveryPhase : IBuildPhase
Namespace: Moka.Docs.Engine.Phases
Scans for Markdown files, C# projects, and static assets.
Inheritance
Inherits from: IBuildPhase
Constructors
| Name | Description |
|---|---|
DiscoveryPhase(…) |
Scans for Markdown files, C# projects, and static assets. |
DiscoveryPhase(FileDiscoveryService discoveryService, BrandAssetResolver brandAssetResolver, DiscoveryPhase> logger)
DiscoveryPhase.DiscoveryPhase(FileDiscoveryService discoveryService, BrandAssetResolver brandAssetResolver, ILogger<DiscoveryPhase> logger)
Scans for Markdown files, C# projects, and static assets.
Properties
Methods
| Name | Description |
|---|---|
ExecuteAsync(BuildContext context, CancellationToken ct) |
Type Relationships
classDiagram
style DiscoveryPhase fill:#f9f,stroke:#333,stroke-width:2px
DiscoveryPhase --|> IBuildPhase : inherits
View Source
/// <summary>
/// Scans for Markdown files, C# projects, and static assets.
/// </summary>
public sealed class DiscoveryPhase(FileDiscoveryService discoveryService, BrandAssetResolver brandAssetResolver, ILogger<DiscoveryPhase> logger) : IBuildPhase
{
/// <inheritdoc/>
public string Name => "Discovery";
/// <inheritdoc/>
public int Order => 200;
/// <inheritdoc/>
public Task ExecuteAsync(BuildContext context, CancellationToken ct = default)
{
DiscoveryResult result = discoveryService.Discover(context.RootDirectory, context.Config, context.FileSystem);
context.DiscoveredMarkdownFiles.AddRange(result.MarkdownFiles);
context.DiscoveredProjectFiles.AddRange(result.ProjectFiles);
context.DiscoveredAssetFiles.AddRange(result.AssetFiles);
// Resolve brand assets (site.logo, site.favicon). May discover files outside
// content.docs via filesystem lookup, so this runs AFTER the normal glob.
brandAssetResolver.Resolve(context);
logger.LogInformation("Discovered {Md} markdown, {Proj} projects, {Assets} assets, {Brand} brand assets", result.MarkdownFiles.Count, result.ProjectFiles.Count, result.AssetFiles.Count, context.BrandAssetFiles.Count);
return Task.CompletedTask;
}
}