Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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);
        }