/// <summary>
 /// Creates a <see cref="BlockExtension{T}"/>.
 /// </summary>
 /// <param name="blockRenderer">
 /// <para>The renderer for rendering <see cref="IBlock"/>s as HTML.</para>
 /// <para>This value can be <c>null</c>. An extension can parse <see cref="IBlock"/>s that aren't rendered.</para>
 /// <para>If not <c>null</c>, this value is added to the <see cref="MarkdownPipeline"/>'s renderers.</para>
 /// </param>
 /// <param name="blockParsers">
 /// <para>The <see cref="BlockParser"/>s for creating <see cref="IBlock"/>s from markdown.</para>
 /// <para>This value can be empty. An extension can render <see cref="IBlock"/>s parsed by other extensions.</para>
 /// <para>This value's elements are added to the <see cref="MarkdownPipeline"/>'s <see cref="BlockParser"/>s.</para>
 /// </param>
 protected BlockExtension(BlockRenderer <T> blockRenderer, IEnumerable <BlockParser> blockParsers)
 {
     _blockRenderer = blockRenderer;
     _blockParsers  = blockParsers;
 }
 /// <summary>
 /// Creates a <see cref="BlockExtension{T}"/>.
 /// </summary>
 /// <param name="blockRenderer">
 /// <para>The renderer for rendering <see cref="IBlock"/>s as HTML.</para>
 /// <para>This value can be <c>null</c>. An extension can parse <see cref="IBlock"/>s that aren't rendered.</para>
 /// <para>If not <c>null</c>, this value is added to the <see cref="MarkdownPipeline"/>'s renderers.</para>
 /// </param>
 /// <param name="blockParsers">
 /// <para>The <see cref="BlockParser"/>s for creating <see cref="IBlock"/>s from markdown.</para>
 /// <para>This value can be empty. An extension can render <see cref="IBlock"/>s parsed by other extensions.</para>
 /// <para>This value's elements are added to the <see cref="MarkdownPipeline"/>'s <see cref="BlockParser"/>s.</para>
 /// </param>
 protected BlockExtension(BlockRenderer <T> blockRenderer, params BlockParser[] blockParsers)
 {
     _blockRenderer = blockRenderer;
     _blockParsers  = blockParsers;
 }