public async Task InvokeAsync(TextInputContext ctx) { if (ctx.Content == null) { return; } // generate output path if not already set if (string.IsNullOrEmpty(ctx.OutputPath)) { var outputName = ctx.Input.RelativeName; if (!string.IsNullOrEmpty(Extension)) { var ext = Path.GetExtension(outputName); outputName = outputName.Substring(0, outputName.Length - ext.Length) + Extension; } ctx.OutputPath = ctx.Site.GetFullOutputPath(outputName); } // ensure output directory var outputDir = Path.GetDirectoryName(ctx.OutputPath); if (!Directory.Exists(outputDir)) { Directory.CreateDirectory(outputDir); } // write output content using (var writer = new StreamWriter(ctx.OutputPath)) { await writer.WriteAsync(ctx.Content).ConfigureAwait(false); } }
public async Task InvokeAsync(TextInputContext ctx, TextMiddlewareAsyncDelegate next) { using (var inputStream = ctx.Input.Open(ctx.Site)) using (var reader = new StreamReader(inputStream)) { ctx.Content = reader.ReadToEnd(); } await next().ConfigureAwait(false); }