/// <summary> /// Builds up our service container for DI /// </summary> /// <param name="inputDirectory">Defined Input Directory</param> /// <param name="outputDirectory">Defined Output Directory</param> /// <returns>Service Provider</returns> private static ServiceProvider ConfigureServices(string inputDirectory, string outputDirectory) { var services = new ServiceCollection(); // build configuration var configuration = new ConfigurationBuilder() .SetBasePath(inputDirectory) .AddJsonFile("beard.json", optional: true) .Build(); services.AddOptions(); // bind to our config model var config = new BeardConfig(); configuration.Bind("Config", config); services.AddSingleton(config); services.AddSingleton <GeneratorContext>(new GeneratorContext(inputDirectory, outputDirectory)); services.AddSingleton <MarkdownProcessor>(); services.AddSingleton <RazorProcessor>(); services.AddSingleton <StaticProcessor>(); services.AddSingleton <HtmlFormatProcessor>(); services.AddSingleton <ILogger, ConsoleLogger>(); services.AddSingleton <IFileSystem, DiskFileSystem>(); services.AddTransient <IUrlProvider, UrlProvider>(); services.AddSingleton <RazorViewRenderer>(); services.AddSingleton <StaticGenerator>(); return(services.BuildServiceProvider()); }
public StaticProcessor(ILogger logger, IUrlProvider urlProvider, BeardConfig config, GeneratorContext context) { this._log = logger; this._urlProvider = urlProvider; this._config = config; this._context = context; this._ignoreExtensions = this._config.StaticExtensionIgnoreList.Select(x => x.ToLower()).ToList(); }
public ViewContext(OutputFile current, GeneratorContext context, BeardConfig config) { Current = current; Siblings = context.OutputFiles.Where(x => x.RelativeDirectory.Equals(current.RelativeDirectory) && x != current); Children = context.OutputFiles.Where(x => x.RelativeDirectory.Contains(current.RelativeDirectory) && !x.RelativeDirectory.Equals(current.RelativeDirectory)); All = context.OutputFiles; Config = config; }
public RazorProcessor(IFileSystem fileSystem, RazorViewRenderer renderer, ILogger logger, IUrlProvider urlProvider, BeardConfig config, GeneratorContext context) { _fileSystem = fileSystem; _log = logger; _urlProvider = urlProvider; _config = config; _renderer = renderer; _context = context; }
public MarkdownProcessor(IFileSystem fileSystem, ILogger logger, IUrlProvider urlProvider, BeardConfig config, GeneratorContext context) { _log = logger; _fileSystem = fileSystem; _urlProvider = urlProvider; _context = context; _config = config; // Enable MarkdownExtensions if configured if (_config.EnableMarkdownExtensions) { _pipeline = new MarkdownPipelineBuilder() .UseAdvancedExtensions() .Build(); } }
public UrlProvider(BeardConfig config) { this._config = config; }
public DiskFileSystem(ILogger logger, BeardConfig config) { _log = logger; _config = config; }