Class
Static
public static class EngineServiceExtensions
Namespace: Moka.Docs.Engine
Extension methods for registering build engine services.
Methods
| Name | Description |
|---|---|
AddMokaDocsEngine(IServiceCollection services) static |
Adds MokaDocs build engine services and all pipeline phases. |
AddMokaDocsEngine(IServiceCollection services)
IServiceCollection EngineServiceExtensions.AddMokaDocsEngine(IServiceCollection services)
Adds MokaDocs build engine services and all pipeline phases.
View Source
/// <summary>
/// Extension methods for registering build engine services.
/// </summary>
public static class EngineServiceExtensions
{
/// <summary>
/// Adds MokaDocs build engine services and all pipeline phases.
/// </summary>
public static IServiceCollection AddMokaDocsEngine(this IServiceCollection services)
{
// Register feature management with MokaDefaults + env var overrides
IConfigurationRoot featureConfig = new ConfigurationBuilder().AddInMemoryCollection(MokaFeatureConfiguration.GetDefaults().Select(kvp => new KeyValuePair<string, string?>($"FeatureManagement:{kvp.Key}", kvp.Value.ToString()))).AddEnvironmentVariables("MOKADOCS_").Build();
services.AddSingleton<IConfiguration>(featureConfig);
services.AddFeatureManagement(featureConfig.GetSection("FeatureManagement"));
services.AddSingleton<BuildPipeline>();
services.AddSingleton<FileDiscoveryService>();
services.AddSingleton<BrandAssetResolver>();
// Template engine and default theme
services.AddSingleton<ScribanTemplateEngine>();
services.AddSingleton(_ => EmbeddedThemeProvider.CreateDefault());
services.AddSingleton<ThemeLoader>();
// Register build phases
services.AddSingleton<IBuildPhase, DiscoveryPhase>();
services.AddSingleton<IBuildPhase, CSharpAnalysisPhase>();
services.AddSingleton<IBuildPhase, MarkdownParsePhase>();
services.AddSingleton<IBuildPhase, FeatureGatePhase>();
services.AddSingleton<IBuildPhase, NavigationBuildPhase>();
services.AddSingleton<IBuildPhase, SearchIndexPhase>();
services.AddSingleton<IBuildPhase, RenderPhase>();
services.AddSingleton<IBuildPhase, ThemeAssetPhase>();
services.AddSingleton<IBuildPhase, OutputPhase>();
services.AddSingleton<IBuildPhase, PostProcessPhase>();
return services;
}
}