/// <summary>
        /// Extracts article content from an HTML page at the given URL.
        /// </summary>
        /// <param name="webTranscodingInput">An object containing input parameters, i.a. URL of the page to be processed.</param>
        /// <returns>An object containing transcoding result, i.a. extracted content and title.</returns>
        public WebTranscodingResult Transcode(WebTranscodingInput webTranscodingInput)
        {
            if (webTranscodingInput == null)
            {
                throw new ArgumentNullException("webTranscodingInput");
            }

            bool   contentExtracted;
            string extractedTitle;

            string extractedContent =
                DoTranscode(
                    webTranscodingInput.Url,
                    webTranscodingInput.DomSerializationParams,
                    out contentExtracted,
                    out extractedTitle);

            bool titleExtracted = !string.IsNullOrEmpty(extractedTitle);

            return
                (new WebTranscodingResult(contentExtracted, titleExtracted)
            {
                ExtractedContent = extractedContent,
                ExtractedTitle = extractedTitle,
            });
        }
        /// <summary>
        ///   Extracts article content from an HTML page at the given URL.
        /// </summary>
        /// <param name="webTranscodingInput">An object containing input parameters, i.a. URL of the page to be processed.</param>
        /// <returns>An object containing transcoding result, i.a. extracted content and title.</returns>
        public WebTranscodingResult Transcode(WebTranscodingInput webTranscodingInput)
        {
            if (webTranscodingInput == null)
            {
                throw new ArgumentNullException(nameof(webTranscodingInput));
            }

            var extractedContent =
                DoTranscode(
                    webTranscodingInput.Url,
                    webTranscodingInput.DomSerializationParams,
                    out var contentExtracted,
                    out var extractedTitle);

            var titleExtracted = !string.IsNullOrEmpty(extractedTitle);

            return
                (new WebTranscodingResult(contentExtracted, titleExtracted)
            {
                ExtractedContent = extractedContent,
                ExtractedTitle = extractedTitle
            });
        }
        /// <summary>
        /// Extracts article content from an HTML page at the given URL.
        /// </summary>
        /// <param name="webTranscodingInput">An object containing input parameters, i.a. URL of the page to be processed.</param>
        /// <returns>An object containing transcoding result, i.a. extracted content and title.</returns>
        public WebTranscodingResult Transcode(WebTranscodingInput webTranscodingInput)
        {
            if (webTranscodingInput == null)
              {
            throw new ArgumentNullException("webTranscodingInput");
              }

              bool contentExtracted;
              string extractedTitle;

              string extractedContent =
            DoTranscode(
              webTranscodingInput.Url,
              webTranscodingInput.DomSerializationParams,
              out contentExtracted,
              out extractedTitle);

              bool titleExtracted = !string.IsNullOrEmpty(extractedTitle);

              return
            new WebTranscodingResult(contentExtracted, titleExtracted)
              {
            ExtractedContent = extractedContent,
            ExtractedTitle = extractedTitle,
              };
        }