protected virtual void StartRecording(RenderRenderingArgs args)
        {
            var writer = MinificationHelpers.ShouldMinify() ? new OptimizedRecordingTextWriter(args.Writer) : new RecordingTextWriter(args.Writer);
            var item   = new GenericDisposable(delegate
            {
                writer.Flush();
            });

            args.Disposables.Add(item);
            args.Writer = writer;
        }
        /// <inheritdoc />
        public override void Flush()
        {
            var text = this.ToString();

            if (text.IsEmptyOrNull())
            {
                return;
            }
            var doc = new HtmlDocument();

            doc.LoadHtml(text);
            MinificationHelpers.ProcessScript(doc);
            MinificationHelpers.ProcessHtml(doc);

            text = doc.DocumentNode.OuterHtml;
            base.InnerWriter.Write(text);
            base.GetStringBuilder().Clear();
            base.FlushedText += text;
        }