/// <summary>
        ///   <para>Creates new Cackle OAuth login widget.</para>
        /// </summary>
        /// <param name="html">Helper object to call method on.</param>
        /// <param name="builder">Delegate that performs configuration of the widget.</param>
        /// <returns>HTML contents of configured and rendered widget.</returns>
        /// <exception cref="ArgumentNullException">If either <paramref name="html"/> or <paramref name="builder"/> is a <c>null</c> reference.</exception>
        /// <seealso cref="ICackleHtmlHelper.Login()"/>
        public static string Login(this ICackleHtmlHelper html, Action <ICackleLoginWidget> builder)
        {
            Assertion.NotNull(html);
            Assertion.NotNull(builder);

            var widget = html.Login();

            builder(widget);
            return(widget.ToHtmlString());
        }
        /// <summary>
        ///   <para>Creates new Cackle comments count widget.</para>
        /// </summary>
        /// <param name="html">Helper object to call method on.</param>
        /// <param name="builder">Delegate that performs configuration of the widget.</param>
        /// <returns>HTML contents of configured and rendered widget.</returns>
        /// <exception cref="ArgumentNullException">If either <paramref name="html"/> or <paramref name="builder"/> is a <c>null</c> reference.</exception>
        /// <seealso cref="ICackleHtmlHelper.CommentsCount()"/>
        public static string CommentsCount(this ICackleHtmlHelper html, Action <ICackleCommentsCountWidget> builder)
        {
            Assertion.NotNull(html);
            Assertion.NotNull(builder);

            var widget = html.CommentsCount();

            builder(widget);
            return(widget.ToHtmlString());
        }
        /// <summary>
        ///   <para>Initializes HTML helper object for rendering of Cackle widgets.</para>
        /// </summary>
        /// <param name="html">Helper object to call method on.</param>
        /// <returns>Widgets factory helper.</returns>
        /// <exception cref="ArgumentNullException">If <paramref name="html"/> is a <c>null</c> reference.</exception>
        public static ICackleHtmlHelper Cackle(this HtmlHelper html)
        {
            Assertion.NotNull(html);

            return(cackle ?? (cackle = new CackleHtmlHelper()));
        }
    /// <summary>
    ///   <para>Initializes HTML helper object for rendering of Cackle widgets.</para>
    /// </summary>
    /// <param name="html">Helper object to call method on.</param>
    /// <returns>Widgets factory helper.</returns>
    /// <exception cref="ArgumentNullException">If <paramref name="html"/> is a <c>null</c> reference.</exception>
    public static ICackleHtmlHelper Cackle(this HtmlHelper html)
    {
      Assertion.NotNull(html);

      return cackle ?? (cackle = new CackleHtmlHelper());
    }