]> granicus.if.org Git - multimarkdown/commitdiff
ADDED: Add support for YAML metadata markers (---)
authorFletcher T. Penney <fletcher@fletcherpenney.net>
Wed, 19 Jul 2017 04:28:12 +0000 (00:28 -0400)
committerFletcher T. Penney <fletcher@fletcherpenney.net>
Wed, 19 Jul 2017 04:28:12 +0000 (00:28 -0400)
14 files changed:
Sources/libMultiMarkdown/fodt.c
Sources/libMultiMarkdown/html.c
Sources/libMultiMarkdown/latex.c
Sources/libMultiMarkdown/mmd.c
Sources/libMultiMarkdown/opendocument-content.c
Sources/libMultiMarkdown/parser.c
Sources/libMultiMarkdown/parser.h
Sources/libMultiMarkdown/parser.out
Sources/libMultiMarkdown/parser.y
tests/MMD6Tests/Metadata YAML.fodt [new file with mode: 0644]
tests/MMD6Tests/Metadata YAML.html [new file with mode: 0644]
tests/MMD6Tests/Metadata YAML.htmlc [new file with mode: 0644]
tests/MMD6Tests/Metadata YAML.tex [new file with mode: 0644]
tests/MMD6Tests/Metadata YAML.text [new file with mode: 0644]

index c6ad14e33008d921d285eabb1e531542dacb63c1..b6ed66a71eb2dbb8fd1fe8bcdca3543ca7d97b66 100644 (file)
@@ -877,6 +877,7 @@ void mmd_export_token_odf(DString * out, const char * source, token * t, scratch
                case LINE_LIST_ENUMERATED:
                        mmd_export_token_tree_odf(out, source, t->child, scratch);
                        break;
+               case LINE_SETEXT_2:
                case MANUAL_LABEL:
                case MARKER_BLOCKQUOTE:
                case MARKER_H1:
index 2e06bb054a55b41524256dfc18a2a8300d1be9a3..c856e48f03de0cf491f2a673aa66c2f7e6dffb27 100644 (file)
@@ -1015,6 +1015,7 @@ void mmd_export_token_html(DString * out, const char * source, token * t, scratc
                case LINE_LIST_ENUMERATED:
                        mmd_export_token_tree_html(out, source, t->child, scratch);
                        break;
+               case LINE_SETEXT_2:
                case MARKER_BLOCKQUOTE:
                case MARKER_H1:
                case MARKER_H2:
index 8912c4904bf4fa32dac94683915db0fc5a9886ba..d32d6d446bcab43c22b589649032f9fb744a7956 100644 (file)
@@ -952,8 +952,8 @@ void mmd_export_token_latex(DString * out, const char * source, token * t, scrat
                case LINE_LIST_ENUMERATED:
                        mmd_export_token_tree_latex(out, source, t->child, scratch);
                        break;
+               case LINE_SETEXT_2:
                case MANUAL_LABEL:
-                       break;
                case MARKER_BLOCKQUOTE:
                case MARKER_H1:
                case MARKER_H2:
index 227b2e62480080849ccb7adbee7cdbfb5145604c..76cf96fc006e25822ea6247fd8c3e198bc010364 100644 (file)
@@ -915,6 +915,15 @@ token * mmd_tokenize_string(mmd_engine * e, size_t start, size_t len, bool stop_
 
                                token_append_child(root, line);
 
+                               // If this is first line, do we have proper metadata?
+                               if (e->allow_meta && root->child == line) {
+                                       if (line->type == LINE_SETEXT_2) {
+                                               line->type = LINE_YAML;
+                                       } else if (line->type != LINE_META) {
+                                               e->allow_meta = false;
+                                       }
+                               }
+
                                if (stop_on_empty_line) {
                                        if (line->type == LINE_EMPTY)
                                                return root;
@@ -1652,6 +1661,8 @@ void strip_line_tokens_from_metadata(mmd_engine * e, token * metadata) {
                                d_string_append_c(d, '\n');
                                d_string_append_c_array(d, &source[l->start], l->len);
                                break;
+                       case LINE_YAML:
+                               break;
                        case LINE_TABLE:
                                if (scan_meta_line(&source[l->start])) {
                                        goto meta;
index 49ae54b3d9f2f4c0019d1acac0cfc902235b150e..f1a95c861c70f6eee6aec4252d6621e0390275a0 100644 (file)
@@ -995,6 +995,7 @@ void mmd_export_token_opendocument(DString * out, const char * source, token * t
                case LINE_LIST_ENUMERATED:
                        mmd_export_token_tree_opendocument(out, source, t->child, scratch);
                        break;
+               case LINE_SETEXT_2:
                case MANUAL_LABEL:
                case MARKER_BLOCKQUOTE:
                case MARKER_H1:
index ebcf23cd79dae4deb6c2c29cef380eb82cc9c7c9..6108ad5e91f2a22dd987936b52598185962b0281 100644 (file)
@@ -92,7 +92,7 @@
 #endif
 /************* Begin control #defines *****************************************/
 #define YYCODETYPE unsigned char
-#define YYNOCODE 90
+#define YYNOCODE 91
 #define YYACTIONTYPE unsigned short int
 #define ParseTOKENTYPE  token * 
 typedef union {
@@ -107,16 +107,16 @@ typedef union {
 #define ParseARG_FETCH  mmd_engine * engine  = yypParser->engine 
 #define ParseARG_STORE yypParser->engine  = engine 
 #define YYFALLBACK 1
-#define YYNSTATE             45
-#define YYNRULE              152
-#define YY_MAX_SHIFT         44
-#define YY_MIN_SHIFTREDUCE   154
-#define YY_MAX_SHIFTREDUCE   305
-#define YY_MIN_REDUCE        306
-#define YY_MAX_REDUCE        457
-#define YY_ERROR_ACTION      458
-#define YY_ACCEPT_ACTION     459
-#define YY_NO_ACTION         460
+#define YYNSTATE             46
+#define YYNRULE              155
+#define YY_MAX_SHIFT         45
+#define YY_MIN_SHIFTREDUCE   157
+#define YY_MAX_SHIFTREDUCE   311
+#define YY_MIN_REDUCE        312
+#define YY_MAX_REDUCE        466
+#define YY_ERROR_ACTION      467
+#define YY_ACCEPT_ACTION     468
+#define YY_NO_ACTION         469
 /************* End control #defines *******************************************/
 
 /* Define the yytestcase() macro to be a no-op if is not already defined
@@ -188,105 +188,105 @@ typedef union {
 **  yy_default[]       Default action for each state.
 **
 *********** Begin parsing tables **********************************************/
-#define YY_ACTTAB_COUNT (327)
+#define YY_ACTTAB_COUNT (321)
 static const YYACTIONTYPE yy_action[] = {
- /*     0 */   459,    1,  156,   37,  166,  167,  168,  169,  170,  171,
- /*    10 */    44,  173,   29,  175,   31,   41,   40,   35,   14,  181,
- /*    20 */   182,  183,   43,  238,   13,   13,   31,  233,  234,  300,
- /*    30 */   304,   38,   38,   27,   43,   26,   25,  241,   28,  255,
- /*    40 */    41,   40,  262,    8,   30,   42,  244,   15,   15,  306,
- /*    50 */   163,  211,    5,  254,   16,  248,  249,  300,  304,  185,
- /*    60 */   279,  157,  158,  159,  160,  161,  162,  253,    7,    6,
- /*    70 */    17,    4,    3,    2,   18,  164,    5,  294,  245,  264,
- /*    80 */   267,  270,  265,  268,  271,  298,  262,  285,  163,   39,
- /*    90 */    39,  207,   16,  248,  249,  300,  304,  204,  279,  157,
- /*   100 */   158,  159,  160,  161,  162,  253,    7,    6,   17,    4,
- /*   110 */     3,    2,   18,  164,    5,  294,  244,  264,  267,  270,
- /*   120 */   265,  268,  271,  298,  262,  285,  155,   37,  166,  167,
- /*   130 */   168,  169,  170,  171,   44,  173,   29,  175,   31,   41,
- /*   140 */    40,   35,   14,  181,  182,  183,  300,  304,  245,  262,
- /*   150 */    31,   32,   32,   33,   33,   38,   38,   27,  218,   26,
- /*   160 */    25,   19,   28,  216,   41,   40,   30,    8,  219,   42,
- /*   170 */   184,   15,   15,  275,  231,  239,  272,   30,  190,  184,
- /*   180 */    21,   21,  274,  276,  275,   34,   34,  272,    5,    9,
- /*   190 */     9,   20,   20,  274,  276,  193,  193,   12,   43,   12,
- /*   200 */    13,   13,  212,  214,  210,  213,  215,  197,  278,  273,
- /*   210 */   277,   36,   36,  208,  205,  206,  209,  248,  249,  278,
- /*   220 */   273,  277,  275,   30,  282,  272,  296,  280,  237,  236,
- /*   230 */    30,  274,  276,  281,  283,    9,    9,   20,   20,  248,
- /*   240 */   249,  192,  192,  184,   24,   24,    6,  226,  200,    7,
- /*   250 */   295,  201,  202,  203,   30,  221,  237,  278,  273,  277,
- /*   260 */   308,  308,  200,  308,   30,  308,    9,    9,   20,   20,
- /*   270 */   220,  308,  191,  191,   30,  308,    9,    9,   20,   20,
- /*   280 */   308,  308,  198,  198,  308,  308,   10,   10,   22,   22,
- /*   290 */   289,  227,   30,  286,  308,  308,  308,  308,  308,  288,
- /*   300 */   290,  308,  308,  308,   11,   11,   23,   23,  308,  222,
- /*   310 */   308,  308,  308,  308,  308,  308,  308,  308,  308,  308,
- /*   320 */   308,  308,  308,  308,  308,  217,  287,
+ /*     0 */   468,    1,  159,   37,  170,  171,  172,  173,  174,  175,
+ /*    10 */    44,  177,   29,  179,   32,   41,   40,   30,   14,  186,
+ /*    20 */   187,  188,   43,  244,   13,   13,   32,   43,  239,  240,
+ /*    30 */   247,   38,   38,   27,  268,   26,   25,  216,   28,  212,
+ /*    40 */    41,   40,  209,    8,  221,   42,  261,   15,   15,  312,
+ /*    50 */   166,  306,  310,   45,    5,   16,  254,  255,  306,  310,
+ /*    60 */   260,  285,  160,  161,  162,  163,  164,  165,  259,    7,
+ /*    70 */     6,   17,    4,    3,    2,   18,  168,    5,  300,  223,
+ /*    80 */   270,  273,  276,  271,  274,  277,  304,  268,  291,  166,
+ /*    90 */    39,   39,   45,  236,   16,  254,  255,  306,  310,   19,
+ /*   100 */   285,  160,  161,  162,  163,  164,  165,  259,    7,    6,
+ /*   110 */    17,    4,    3,    2,   18,  168,    5,  300,  250,  270,
+ /*   120 */   273,  276,  271,  274,  277,  304,  268,  291,  158,   37,
+ /*   130 */   170,  171,  172,  173,  174,  175,   44,  177,   29,  179,
+ /*   140 */    32,   41,   40,   30,   14,  186,  187,  188,  306,  310,
+ /*   150 */   251,  268,   32,  224,  254,  255,  250,   38,   38,   27,
+ /*   160 */   189,   26,   25,  184,   28,  302,   41,   40,  281,    8,
+ /*   170 */   195,   42,  278,   15,   15,   33,   33,  245,  280,  282,
+ /*   180 */   281,   34,   34,    5,  278,  205,   35,   35,  251,  301,
+ /*   190 */   280,  282,   12,   43,   12,   13,   13,  202,  217,  219,
+ /*   200 */   215,  218,  220,    6,  284,  279,  283,   36,   36,   31,
+ /*   210 */   213,  210,  211,  214,   31,  281,  284,  279,  283,  278,
+ /*   220 */    31,    9,    9,   20,   20,  280,  282,  198,  198,  190,
+ /*   230 */   243,  242,    9,    9,   20,   20,  231,    7,  197,  197,
+ /*   240 */   226,  243,   31,  254,  255,  206,  207,  208,  205,  237,
+ /*   250 */    31,  284,  279,  283,    9,    9,   20,   20,   31,  314,
+ /*   260 */   196,  196,    9,    9,   20,   20,  314,   31,  203,  203,
+ /*   270 */    10,   10,   22,   22,  225,  232,   31,  314,  314,   11,
+ /*   280 */    11,   23,   23,  295,  227,   31,  314,  292,  314,  189,
+ /*   290 */    21,   21,  288,  294,  296,  314,  286,  314,  189,   24,
+ /*   300 */    24,  314,  287,  289,  314,  314,  314,  314,  314,  314,
+ /*   310 */   314,  314,  314,  314,  314,  314,  314,  314,  314,  222,
+ /*   320 */   293,
 };
 static const YYCODETYPE yy_lookahead[] = {
- /*     0 */    40,   41,   42,   43,   44,   45,   46,   47,   48,   49,
- /*    10 */    50,   51,   52,   53,   54,   55,   56,   57,   58,   59,
- /*    20 */    60,   61,   85,   86,   87,   88,   66,    2,    3,    8,
- /*    30 */     9,   71,   72,   73,   85,   75,   76,   88,   78,    4,
- /*    40 */    80,   81,   37,   83,   50,   85,    4,   87,   88,    0,
- /*    50 */     1,   74,   27,   18,    5,    6,    7,    8,    9,   65,
- /*    60 */    11,   12,   13,   14,   15,   16,   17,   18,   19,   20,
- /*    70 */    21,   22,   23,   24,   25,   26,   27,   28,   36,   30,
- /*    80 */    31,   32,   33,   34,   35,   36,   37,   38,    1,   71,
- /*    90 */    72,   74,    5,    6,    7,    8,    9,   74,   11,   12,
- /*   100 */    13,   14,   15,   16,   17,   18,   19,   20,   21,   22,
- /*   110 */    23,   24,   25,   26,   27,   28,    4,   30,   31,   32,
- /*   120 */    33,   34,   35,   36,   37,   38,   42,   43,   44,   45,
- /*   130 */    46,   47,   48,   49,   50,   51,   52,   53,   54,   55,
- /*   140 */    56,   57,   58,   59,   60,   61,    8,    9,   36,   37,
- /*   150 */    66,   62,   63,   62,   63,   71,   72,   73,   79,   75,
- /*   160 */    76,   66,   78,   77,   80,   81,   50,   83,   66,   85,
- /*   170 */    63,   87,   88,    1,   82,   37,    4,   50,   70,   63,
- /*   180 */    64,   65,   10,   11,    1,   62,   63,    4,   27,   62,
- /*   190 */    63,   64,   65,   10,   11,   68,   69,   84,   85,   86,
- /*   200 */    87,   88,   30,   31,   32,   33,   34,   72,   36,   37,
- /*   210 */    38,   62,   63,   30,   31,   32,   33,    6,    7,   36,
- /*   220 */    37,   38,    1,   50,    1,    4,    4,    4,    8,    9,
- /*   230 */    50,   10,   11,   10,   11,   62,   63,   64,   65,    6,
- /*   240 */     7,   68,   69,   63,   64,   65,   20,   81,   37,   19,
- /*   250 */    28,   30,   31,   32,   50,   80,    8,   36,   37,   38,
- /*   260 */    89,   89,   37,   89,   50,   89,   62,   63,   64,   65,
- /*   270 */    37,   89,   68,   69,   50,   89,   62,   63,   64,   65,
- /*   280 */    89,   89,   68,   69,   89,   89,   62,   63,   64,   65,
- /*   290 */     1,   67,   50,    4,   89,   89,   89,   89,   89,   10,
- /*   300 */    11,   89,   89,   89,   62,   63,   64,   65,   89,   67,
- /*   310 */    89,   89,   89,   89,   89,   89,   89,   89,   89,   89,
- /*   320 */    89,   89,   89,   89,   89,   36,   37,
+ /*     0 */    41,   42,   43,   44,   45,   46,   47,   48,   49,   50,
+ /*    10 */    51,   52,   53,   54,   55,   56,   57,   58,   59,   60,
+ /*    20 */    61,   62,   86,   87,   88,   89,   67,   86,    2,    3,
+ /*    30 */    89,   72,   73,   74,   38,   76,   77,   75,   79,   75,
+ /*    40 */    81,   82,   75,   84,   78,   86,    5,   88,   89,    0,
+ /*    50 */     1,    9,   10,    4,   28,    6,    7,    8,    9,   10,
+ /*    60 */    19,   12,   13,   14,   15,   16,   17,   18,   19,   20,
+ /*    70 */    21,   22,   23,   24,   25,   26,   27,   28,   29,   80,
+ /*    80 */    31,   32,   33,   34,   35,   36,   37,   38,   39,    1,
+ /*    90 */    72,   73,    4,   83,    6,    7,    8,    9,   10,   67,
+ /*   100 */    12,   13,   14,   15,   16,   17,   18,   19,   20,   21,
+ /*   110 */    22,   23,   24,   25,   26,   27,   28,   29,    5,   31,
+ /*   120 */    32,   33,   34,   35,   36,   37,   38,   39,   43,   44,
+ /*   130 */    45,   46,   47,   48,   49,   50,   51,   52,   53,   54,
+ /*   140 */    55,   56,   57,   58,   59,   60,   61,   62,    9,   10,
+ /*   150 */    37,   38,   67,   67,    7,    8,    5,   72,   73,   74,
+ /*   160 */    64,   76,   77,    3,   79,    5,   81,   82,    1,   84,
+ /*   170 */    71,   86,    5,   88,   89,   63,   64,   38,   11,   12,
+ /*   180 */     1,   63,   64,   28,    5,   38,   63,   64,   37,   29,
+ /*   190 */    11,   12,   85,   86,   87,   88,   89,   73,   31,   32,
+ /*   200 */    33,   34,   35,   21,   37,   38,   39,   63,   64,   51,
+ /*   210 */    31,   32,   33,   34,   51,    1,   37,   38,   39,    5,
+ /*   220 */    51,   63,   64,   65,   66,   11,   12,   69,   70,   66,
+ /*   230 */     9,   10,   63,   64,   65,   66,   82,   20,   69,   70,
+ /*   240 */    81,    9,   51,    7,    8,   31,   32,   33,   38,   29,
+ /*   250 */    51,   37,   38,   39,   63,   64,   65,   66,   51,   90,
+ /*   260 */    69,   70,   63,   64,   65,   66,   90,   51,   69,   70,
+ /*   270 */    63,   64,   65,   66,   38,   68,   51,   90,   90,   63,
+ /*   280 */    64,   65,   66,    1,   68,   51,   90,    5,   90,   64,
+ /*   290 */    65,   66,    1,   11,   12,   90,    5,   90,   64,   65,
+ /*   300 */    66,   90,   11,   12,   90,   90,   90,   90,   90,   90,
+ /*   310 */    90,   90,   90,   90,   90,   90,   90,   90,   90,   37,
+ /*   320 */    38,
 };
-#define YY_SHIFT_USE_DFLT (327)
-#define YY_SHIFT_COUNT    (44)
-#define YY_SHIFT_MIN      (0)
-#define YY_SHIFT_MAX      (289)
-static const unsigned short int yy_shift_ofst[] = {
- /*     0 */    87,   49,  112,  112,  112,  112,  112,  112,   21,  112,
- /*    10 */   112,  112,   21,  138,   25,   21,   42,   42,   42,   42,
- /*    20 */     5,    5,    5,    5,    5,  172,  183,  221,  289,  223,
- /*    30 */   211,  233,   42,   42,   42,  222,   42,   35,  161,  161,
- /*    40 */   226,  230,  220,  248,  225,
+#define YY_SHIFT_USE_DFLT (321)
+#define YY_SHIFT_COUNT    (45)
+#define YY_SHIFT_MIN      (-4)
+#define YY_SHIFT_MAX      (291)
+static const short yy_shift_ofst[] = {
+ /*     0 */    88,   49,  113,  113,  113,  113,  113,  113,   42,  113,
+ /*    10 */   113,  113,   42,  139,   26,   42,  151,  151,  151,  151,
+ /*    20 */    -4,   -4,   -4,   -4,   -4,  167,  179,  214,  282,  291,
+ /*    30 */   160,  147,  236,  151,  151,  151,  151,   41,  155,  155,
+ /*    40 */   182,  217,  221,  232,  210,  220,
 };
-#define YY_REDUCE_USE_DFLT (-64)
+#define YY_REDUCE_USE_DFLT (-65)
 #define YY_REDUCE_COUNT (41)
-#define YY_REDUCE_MIN   (-63)
-#define YY_REDUCE_MAX   (242)
+#define YY_REDUCE_MIN   (-64)
+#define YY_REDUCE_MAX   (234)
 static const short yy_reduce_ofst[] = {
- /*     0 */   -40,   84,  127,  173,  204,  214,  224,  242,  113,  116,
- /*    10 */   180,  180,  -63,  -51,   18,  -51,   89,   91,  123,  149,
- /*    20 */    -6,   -6,   -6,   -6,   -6,  -23,   17,   23,   79,   86,
- /*    30 */    95,  102,  107,  107,  107,   92,  107,  108,  135,  135,
- /*    40 */   166,  175,
+ /*     0 */   -41,   85,  158,  169,  191,  199,  207,  216,  107,  225,
+ /*    10 */   234,  234,  -64,  -59,   18,  -59,  112,  118,  123,  144,
+ /*    20 */   163,  163,  163,  163,  163,  -38,  -36,  -33,   -1,  -34,
+ /*    30 */    10,   32,   86,   96,   96,   96,   96,   99,  124,  124,
+ /*    40 */   154,  159,
 };
 static const YYACTIONTYPE yy_default[] = {
- /*     0 */   458,  458,  410,  409,  408,  351,  382,  377,  451,  402,
- /*    10 */   380,  375,  387,  392,  332,  394,  449,  412,  411,  339,
- /*    20 */   404,  341,  381,  376,  340,  421,  418,  415,  436,  326,
- /*    30 */   399,  328,  384,  347,  346,  331,  338,  317,  457,  348,
- /*    40 */   330,  329,  455,  455,  324,
+ /*     0 */   467,  467,  419,  418,  417,  359,  390,  385,  460,  411,
+ /*    10 */   388,  383,  396,  401,  340,  403,  458,  421,  420,  347,
+ /*    20 */   413,  349,  389,  384,  348,  430,  427,  424,  445,  333,
+ /*    30 */   338,  408,  335,  393,  355,  354,  346,  324,  466,  356,
+ /*    40 */   337,  336,  464,  464,  331,  322,
 };
 /********** End of lemon-generated parsing tables *****************************/
 
@@ -310,38 +310,39 @@ static const YYCODETYPE yyFallback[] = {
     0,  /*    LINE_HR => nothing */
     1,  /* LINE_SETEXT_1 => LINE_HR */
     1,  /* LINE_SETEXT_2 => LINE_HR */
+    1,  /*  LINE_YAML => LINE_HR */
     0,  /* LINE_CONTINUATION => nothing */
-    4,  /* LINE_PLAIN => LINE_CONTINUATION */
-    4,  /* LINE_INDENTED_TAB => LINE_CONTINUATION */
-    4,  /* LINE_INDENTED_SPACE => LINE_CONTINUATION */
-    4,  /* LINE_TABLE => LINE_CONTINUATION */
-    4,  /* LINE_TABLE_SEPARATOR => LINE_CONTINUATION */
+    5,  /* LINE_PLAIN => LINE_CONTINUATION */
+    5,  /* LINE_INDENTED_TAB => LINE_CONTINUATION */
+    5,  /* LINE_INDENTED_SPACE => LINE_CONTINUATION */
+    5,  /* LINE_TABLE => LINE_CONTINUATION */
+    5,  /* LINE_TABLE_SEPARATOR => LINE_CONTINUATION */
     0,  /* LINE_FALLBACK => nothing */
-   10,  /*  LINE_HTML => LINE_FALLBACK */
-   10,  /* LINE_ATX_1 => LINE_FALLBACK */
-   10,  /* LINE_ATX_2 => LINE_FALLBACK */
-   10,  /* LINE_ATX_3 => LINE_FALLBACK */
-   10,  /* LINE_ATX_4 => LINE_FALLBACK */
-   10,  /* LINE_ATX_5 => LINE_FALLBACK */
-   10,  /* LINE_ATX_6 => LINE_FALLBACK */
-   10,  /* LINE_BLOCKQUOTE => LINE_FALLBACK */
-   10,  /* LINE_LIST_BULLETED => LINE_FALLBACK */
-   10,  /* LINE_LIST_ENUMERATED => LINE_FALLBACK */
-   10,  /* LINE_DEF_ABBREVIATION => LINE_FALLBACK */
-   10,  /* LINE_DEF_CITATION => LINE_FALLBACK */
-   10,  /* LINE_DEF_FOOTNOTE => LINE_FALLBACK */
-   10,  /* LINE_DEF_GLOSSARY => LINE_FALLBACK */
-   10,  /* LINE_DEF_LINK => LINE_FALLBACK */
-   10,  /*   LINE_TOC => LINE_FALLBACK */
-   10,  /* LINE_DEFINITION => LINE_FALLBACK */
-   10,  /*  LINE_META => LINE_FALLBACK */
+   11,  /*  LINE_HTML => LINE_FALLBACK */
+   11,  /* LINE_ATX_1 => LINE_FALLBACK */
+   11,  /* LINE_ATX_2 => LINE_FALLBACK */
+   11,  /* LINE_ATX_3 => LINE_FALLBACK */
+   11,  /* LINE_ATX_4 => LINE_FALLBACK */
+   11,  /* LINE_ATX_5 => LINE_FALLBACK */
+   11,  /* LINE_ATX_6 => LINE_FALLBACK */
+   11,  /* LINE_BLOCKQUOTE => LINE_FALLBACK */
+   11,  /* LINE_LIST_BULLETED => LINE_FALLBACK */
+   11,  /* LINE_LIST_ENUMERATED => LINE_FALLBACK */
+   11,  /* LINE_DEF_ABBREVIATION => LINE_FALLBACK */
+   11,  /* LINE_DEF_CITATION => LINE_FALLBACK */
+   11,  /* LINE_DEF_FOOTNOTE => LINE_FALLBACK */
+   11,  /* LINE_DEF_GLOSSARY => LINE_FALLBACK */
+   11,  /* LINE_DEF_LINK => LINE_FALLBACK */
+   11,  /*   LINE_TOC => LINE_FALLBACK */
+   11,  /* LINE_DEFINITION => LINE_FALLBACK */
+   11,  /*  LINE_META => LINE_FALLBACK */
     0,  /* LINE_BACKTICK => nothing */
-   29,  /* LINE_FENCE_BACKTICK_3 => LINE_BACKTICK */
-   29,  /* LINE_FENCE_BACKTICK_4 => LINE_BACKTICK */
-   29,  /* LINE_FENCE_BACKTICK_5 => LINE_BACKTICK */
-   29,  /* LINE_FENCE_BACKTICK_START_3 => LINE_BACKTICK */
-   29,  /* LINE_FENCE_BACKTICK_START_4 => LINE_BACKTICK */
-   29,  /* LINE_FENCE_BACKTICK_START_5 => LINE_BACKTICK */
+   30,  /* LINE_FENCE_BACKTICK_3 => LINE_BACKTICK */
+   30,  /* LINE_FENCE_BACKTICK_4 => LINE_BACKTICK */
+   30,  /* LINE_FENCE_BACKTICK_5 => LINE_BACKTICK */
+   30,  /* LINE_FENCE_BACKTICK_START_3 => LINE_BACKTICK */
+   30,  /* LINE_FENCE_BACKTICK_START_4 => LINE_BACKTICK */
+   30,  /* LINE_FENCE_BACKTICK_START_5 => LINE_BACKTICK */
 };
 #endif /* YYFALLBACK */
 
@@ -428,28 +429,28 @@ void ParseTrace(FILE *TraceFILE, char *zTracePrompt){
 ** are required.  The following table supplies these names */
 static const char *const yyTokenName[] = { 
   "$",             "LINE_HR",       "LINE_SETEXT_1",  "LINE_SETEXT_2",
-  "LINE_CONTINUATION",  "LINE_PLAIN",    "LINE_INDENTED_TAB",  "LINE_INDENTED_SPACE",
-  "LINE_TABLE",    "LINE_TABLE_SEPARATOR",  "LINE_FALLBACK",  "LINE_HTML",   
-  "LINE_ATX_1",    "LINE_ATX_2",    "LINE_ATX_3",    "LINE_ATX_4",  
-  "LINE_ATX_5",    "LINE_ATX_6",    "LINE_BLOCKQUOTE",  "LINE_LIST_BULLETED",
-  "LINE_LIST_ENUMERATED",  "LINE_DEF_ABBREVIATION",  "LINE_DEF_CITATION",  "LINE_DEF_FOOTNOTE",
-  "LINE_DEF_GLOSSARY",  "LINE_DEF_LINK",  "LINE_TOC",      "LINE_DEFINITION",
-  "LINE_META",     "LINE_BACKTICK",  "LINE_FENCE_BACKTICK_3",  "LINE_FENCE_BACKTICK_4",
-  "LINE_FENCE_BACKTICK_5",  "LINE_FENCE_BACKTICK_START_3",  "LINE_FENCE_BACKTICK_START_4",  "LINE_FENCE_BACKTICK_START_5",
-  "LINE_STOP_COMMENT",  "LINE_EMPTY",    "LINE_START_COMMENT",  "error",       
-  "doc",           "blocks",        "block",         "blockquote",  
-  "def_abbreviation",  "def_citation",  "def_footnote",  "def_glossary",
-  "def_link",      "definition_block",  "empty",         "fenced_block",
-  "html_block",    "html_com_block",  "indented_code",  "list_bullet", 
-  "list_enum",     "meta_block",    "para",          "setext_1",    
-  "setext_2",      "table",         "chunk",         "chunk_line",  
-  "nested_chunks",  "nested_chunk",  "indented_line",  "ext_chunk",   
-  "opt_ext_chunk",  "tail",          "quote_line",    "defs",        
-  "def",           "fenced_3",      "fenced_line",   "fenced_4",    
-  "fenced_5",      "html_line",     "html_comment",  "comment_line",
-  "item_bullet",   "item_enum",     "meta_line",     "table_header",
-  "table_body",    "header_rows",   "table_section",  "all_rows",    
-  "row",         
+  "LINE_YAML",     "LINE_CONTINUATION",  "LINE_PLAIN",    "LINE_INDENTED_TAB",
+  "LINE_INDENTED_SPACE",  "LINE_TABLE",    "LINE_TABLE_SEPARATOR",  "LINE_FALLBACK",
+  "LINE_HTML",     "LINE_ATX_1",    "LINE_ATX_2",    "LINE_ATX_3",  
+  "LINE_ATX_4",    "LINE_ATX_5",    "LINE_ATX_6",    "LINE_BLOCKQUOTE",
+  "LINE_LIST_BULLETED",  "LINE_LIST_ENUMERATED",  "LINE_DEF_ABBREVIATION",  "LINE_DEF_CITATION",
+  "LINE_DEF_FOOTNOTE",  "LINE_DEF_GLOSSARY",  "LINE_DEF_LINK",  "LINE_TOC",    
+  "LINE_DEFINITION",  "LINE_META",     "LINE_BACKTICK",  "LINE_FENCE_BACKTICK_3",
+  "LINE_FENCE_BACKTICK_4",  "LINE_FENCE_BACKTICK_5",  "LINE_FENCE_BACKTICK_START_3",  "LINE_FENCE_BACKTICK_START_4",
+  "LINE_FENCE_BACKTICK_START_5",  "LINE_STOP_COMMENT",  "LINE_EMPTY",    "LINE_START_COMMENT",
+  "error",         "doc",           "blocks",        "block",       
+  "blockquote",    "def_abbreviation",  "def_citation",  "def_footnote",
+  "def_glossary",  "def_link",      "definition_block",  "empty",       
+  "fenced_block",  "html_block",    "html_com_block",  "indented_code",
+  "list_bullet",   "list_enum",     "meta_block",    "para",        
+  "setext_1",      "setext_2",      "table",         "chunk",       
+  "chunk_line",    "nested_chunks",  "nested_chunk",  "indented_line",
+  "ext_chunk",     "opt_ext_chunk",  "tail",          "quote_line",  
+  "defs",          "def",           "fenced_3",      "fenced_line", 
+  "fenced_4",      "fenced_5",      "html_line",     "html_comment",
+  "comment_line",  "item_bullet",   "item_enum",     "meta_line",   
+  "table_header",  "table_body",    "header_rows",   "table_section",
+  "all_rows",      "row",         
 };
 #endif /* NDEBUG */
 
@@ -467,148 +468,151 @@ static const char *const yyRuleName[] = {
  /*   7 */ "block ::= LINE_ATX_5",
  /*   8 */ "block ::= LINE_ATX_6",
  /*   9 */ "block ::= LINE_HR",
- /*  10 */ "block ::= LINE_TOC",
- /*  11 */ "block ::= blockquote",
- /*  12 */ "block ::= def_abbreviation",
- /*  13 */ "block ::= def_citation",
- /*  14 */ "block ::= def_footnote",
- /*  15 */ "block ::= def_glossary",
- /*  16 */ "block ::= def_link",
- /*  17 */ "block ::= definition_block",
- /*  18 */ "block ::= empty",
- /*  19 */ "block ::= fenced_block",
- /*  20 */ "block ::= html_block",
- /*  21 */ "block ::= html_com_block",
- /*  22 */ "block ::= indented_code",
- /*  23 */ "block ::= list_bullet",
- /*  24 */ "block ::= list_enum",
- /*  25 */ "block ::= meta_block",
- /*  26 */ "block ::= para",
- /*  27 */ "block ::= setext_1",
- /*  28 */ "block ::= setext_2",
- /*  29 */ "block ::= table",
- /*  30 */ "chunk ::= chunk chunk_line",
- /*  31 */ "nested_chunks ::= nested_chunks nested_chunk",
- /*  32 */ "nested_chunk ::= empty indented_line chunk",
- /*  33 */ "nested_chunk ::= empty indented_line",
- /*  34 */ "ext_chunk ::= chunk nested_chunks",
- /*  35 */ "opt_ext_chunk ::= chunk nested_chunks",
- /*  36 */ "blockquote ::= blockquote quote_line",
- /*  37 */ "def_citation ::= LINE_DEF_CITATION tail",
- /*  38 */ "def_footnote ::= LINE_DEF_FOOTNOTE tail",
- /*  39 */ "def_glossary ::= LINE_DEF_GLOSSARY tail",
- /*  40 */ "def_link ::= LINE_DEF_LINK chunk",
- /*  41 */ "def_abbreviation ::= LINE_DEF_ABBREVIATION chunk",
- /*  42 */ "definition_block ::= para defs",
- /*  43 */ "defs ::= defs def",
- /*  44 */ "def ::= LINE_DEFINITION tail",
- /*  45 */ "def ::= LINE_DEFINITION",
- /*  46 */ "empty ::= empty LINE_EMPTY",
- /*  47 */ "fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_3",
- /*  48 */ "fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_4",
- /*  49 */ "fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_5",
- /*  50 */ "fenced_3 ::= fenced_3 fenced_line",
- /*  51 */ "fenced_block ::= fenced_4 LINE_FENCE_BACKTICK_4",
- /*  52 */ "fenced_block ::= fenced_4 LINE_FENCE_BACKTICK_5",
- /*  53 */ "fenced_4 ::= fenced_4 fenced_line",
- /*  54 */ "fenced_4 ::= fenced_4 LINE_FENCE_BACKTICK_3",
- /*  55 */ "fenced_4 ::= fenced_4 LINE_FENCE_BACKTICK_START_3",
- /*  56 */ "fenced_block ::= fenced_5 LINE_FENCE_BACKTICK_5",
- /*  57 */ "fenced_5 ::= fenced_5 fenced_line",
- /*  58 */ "fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_3",
- /*  59 */ "fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_START_3",
- /*  60 */ "fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_4",
- /*  61 */ "fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_START_4",
- /*  62 */ "html_block ::= html_block html_line",
- /*  63 */ "html_com_block ::= html_comment LINE_STOP_COMMENT",
- /*  64 */ "html_comment ::= html_comment comment_line",
- /*  65 */ "indented_code ::= indented_code indented_line",
- /*  66 */ "indented_code ::= indented_code LINE_EMPTY",
- /*  67 */ "list_bullet ::= list_bullet item_bullet",
- /*  68 */ "item_bullet ::= LINE_LIST_BULLETED ext_chunk",
- /*  69 */ "item_bullet ::= LINE_LIST_BULLETED chunk",
- /*  70 */ "item_bullet ::= LINE_LIST_BULLETED nested_chunks",
- /*  71 */ "item_bullet ::= LINE_LIST_BULLETED",
- /*  72 */ "list_enum ::= list_enum item_enum",
- /*  73 */ "item_enum ::= LINE_LIST_ENUMERATED ext_chunk",
- /*  74 */ "item_enum ::= LINE_LIST_ENUMERATED chunk",
- /*  75 */ "item_enum ::= LINE_LIST_ENUMERATED nested_chunks",
- /*  76 */ "item_enum ::= LINE_LIST_ENUMERATED",
- /*  77 */ "meta_block ::= meta_block meta_line",
- /*  78 */ "para ::= LINE_PLAIN chunk",
- /*  79 */ "setext_1 ::= para LINE_SETEXT_1",
- /*  80 */ "setext_2 ::= para LINE_SETEXT_2",
- /*  81 */ "table ::= table_header table_body",
- /*  82 */ "table_header ::= header_rows LINE_TABLE_SEPARATOR",
- /*  83 */ "header_rows ::= header_rows LINE_TABLE",
- /*  84 */ "table_body ::= table_body table_section",
- /*  85 */ "table_section ::= all_rows LINE_EMPTY",
- /*  86 */ "table_section ::= all_rows",
- /*  87 */ "all_rows ::= all_rows row",
- /*  88 */ "para ::= all_rows",
- /*  89 */ "chunk ::= chunk_line",
- /*  90 */ "chunk_line ::= LINE_CONTINUATION",
- /*  91 */ "chunk_line ::= LINE_STOP_COMMENT",
- /*  92 */ "nested_chunks ::= nested_chunk",
- /*  93 */ "nested_chunk ::= empty",
- /*  94 */ "indented_line ::= LINE_INDENTED_TAB",
- /*  95 */ "indented_line ::= LINE_INDENTED_SPACE",
- /*  96 */ "opt_ext_chunk ::= chunk",
- /*  97 */ "tail ::= opt_ext_chunk",
- /*  98 */ "tail ::= nested_chunks",
- /*  99 */ "blockquote ::= LINE_BLOCKQUOTE",
- /* 100 */ "quote_line ::= LINE_BLOCKQUOTE",
- /* 101 */ "quote_line ::= LINE_CONTINUATION",
- /* 102 */ "def_citation ::= LINE_DEF_CITATION",
- /* 103 */ "def_footnote ::= LINE_DEF_FOOTNOTE",
- /* 104 */ "def_glossary ::= LINE_DEF_GLOSSARY",
- /* 105 */ "def_link ::= LINE_DEF_LINK",
- /* 106 */ "def_abbreviation ::= LINE_DEF_ABBREVIATION",
- /* 107 */ "defs ::= def",
- /* 108 */ "empty ::= LINE_EMPTY",
- /* 109 */ "fenced_block ::= fenced_3",
- /* 110 */ "fenced_3 ::= LINE_FENCE_BACKTICK_3",
- /* 111 */ "fenced_3 ::= LINE_FENCE_BACKTICK_START_3",
- /* 112 */ "fenced_block ::= fenced_4",
- /* 113 */ "fenced_4 ::= LINE_FENCE_BACKTICK_4",
- /* 114 */ "fenced_4 ::= LINE_FENCE_BACKTICK_START_4",
- /* 115 */ "fenced_block ::= fenced_5",
- /* 116 */ "fenced_5 ::= LINE_FENCE_BACKTICK_5",
- /* 117 */ "fenced_5 ::= LINE_FENCE_BACKTICK_START_5",
- /* 118 */ "fenced_line ::= LINE_CONTINUATION",
- /* 119 */ "fenced_line ::= LINE_EMPTY",
- /* 120 */ "fenced_line ::= LINE_FALLBACK",
- /* 121 */ "fenced_line ::= LINE_HR",
- /* 122 */ "fenced_line ::= LINE_HTML",
- /* 123 */ "fenced_line ::= LINE_START_COMMENT",
- /* 124 */ "fenced_line ::= LINE_STOP_COMMENT",
- /* 125 */ "html_block ::= LINE_HTML",
- /* 126 */ "html_line ::= LINE_CONTINUATION",
- /* 127 */ "html_line ::= LINE_FALLBACK",
- /* 128 */ "html_line ::= LINE_HR",
- /* 129 */ "html_line ::= LINE_HTML",
- /* 130 */ "html_com_block ::= html_comment",
- /* 131 */ "html_comment ::= LINE_START_COMMENT",
- /* 132 */ "comment_line ::= LINE_CONTINUATION",
- /* 133 */ "comment_line ::= LINE_EMPTY",
- /* 134 */ "comment_line ::= LINE_FALLBACK",
- /* 135 */ "comment_line ::= LINE_HR",
- /* 136 */ "comment_line ::= LINE_HTML",
- /* 137 */ "indented_code ::= indented_line",
- /* 138 */ "list_bullet ::= item_bullet",
- /* 139 */ "list_enum ::= item_enum",
- /* 140 */ "meta_block ::= LINE_META",
- /* 141 */ "meta_line ::= LINE_META",
- /* 142 */ "meta_line ::= LINE_CONTINUATION",
- /* 143 */ "para ::= LINE_PLAIN",
- /* 144 */ "para ::= LINE_STOP_COMMENT",
- /* 145 */ "table ::= table_header",
- /* 146 */ "header_rows ::= LINE_TABLE",
- /* 147 */ "table_body ::= table_section",
- /* 148 */ "all_rows ::= row",
- /* 149 */ "row ::= header_rows",
- /* 150 */ "row ::= LINE_TABLE_SEPARATOR",
- /* 151 */ "para ::= defs",
+ /*  10 */ "block ::= LINE_YAML",
+ /*  11 */ "block ::= LINE_TOC",
+ /*  12 */ "block ::= blockquote",
+ /*  13 */ "block ::= def_abbreviation",
+ /*  14 */ "block ::= def_citation",
+ /*  15 */ "block ::= def_footnote",
+ /*  16 */ "block ::= def_glossary",
+ /*  17 */ "block ::= def_link",
+ /*  18 */ "block ::= definition_block",
+ /*  19 */ "block ::= empty",
+ /*  20 */ "block ::= fenced_block",
+ /*  21 */ "block ::= html_block",
+ /*  22 */ "block ::= html_com_block",
+ /*  23 */ "block ::= indented_code",
+ /*  24 */ "block ::= list_bullet",
+ /*  25 */ "block ::= list_enum",
+ /*  26 */ "block ::= meta_block",
+ /*  27 */ "block ::= meta_block LINE_SETEXT_2",
+ /*  28 */ "block ::= para",
+ /*  29 */ "block ::= setext_1",
+ /*  30 */ "block ::= setext_2",
+ /*  31 */ "block ::= table",
+ /*  32 */ "chunk ::= chunk chunk_line",
+ /*  33 */ "nested_chunks ::= nested_chunks nested_chunk",
+ /*  34 */ "nested_chunk ::= empty indented_line chunk",
+ /*  35 */ "nested_chunk ::= empty indented_line",
+ /*  36 */ "ext_chunk ::= chunk nested_chunks",
+ /*  37 */ "opt_ext_chunk ::= chunk nested_chunks",
+ /*  38 */ "blockquote ::= blockquote quote_line",
+ /*  39 */ "def_citation ::= LINE_DEF_CITATION tail",
+ /*  40 */ "def_footnote ::= LINE_DEF_FOOTNOTE tail",
+ /*  41 */ "def_glossary ::= LINE_DEF_GLOSSARY tail",
+ /*  42 */ "def_link ::= LINE_DEF_LINK chunk",
+ /*  43 */ "def_abbreviation ::= LINE_DEF_ABBREVIATION chunk",
+ /*  44 */ "definition_block ::= para defs",
+ /*  45 */ "defs ::= defs def",
+ /*  46 */ "def ::= LINE_DEFINITION tail",
+ /*  47 */ "def ::= LINE_DEFINITION",
+ /*  48 */ "empty ::= empty LINE_EMPTY",
+ /*  49 */ "fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_3",
+ /*  50 */ "fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_4",
+ /*  51 */ "fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_5",
+ /*  52 */ "fenced_3 ::= fenced_3 fenced_line",
+ /*  53 */ "fenced_block ::= fenced_4 LINE_FENCE_BACKTICK_4",
+ /*  54 */ "fenced_block ::= fenced_4 LINE_FENCE_BACKTICK_5",
+ /*  55 */ "fenced_4 ::= fenced_4 fenced_line",
+ /*  56 */ "fenced_4 ::= fenced_4 LINE_FENCE_BACKTICK_3",
+ /*  57 */ "fenced_4 ::= fenced_4 LINE_FENCE_BACKTICK_START_3",
+ /*  58 */ "fenced_block ::= fenced_5 LINE_FENCE_BACKTICK_5",
+ /*  59 */ "fenced_5 ::= fenced_5 fenced_line",
+ /*  60 */ "fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_3",
+ /*  61 */ "fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_START_3",
+ /*  62 */ "fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_4",
+ /*  63 */ "fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_START_4",
+ /*  64 */ "html_block ::= html_block html_line",
+ /*  65 */ "html_com_block ::= html_comment LINE_STOP_COMMENT",
+ /*  66 */ "html_comment ::= html_comment comment_line",
+ /*  67 */ "indented_code ::= indented_code indented_line",
+ /*  68 */ "indented_code ::= indented_code LINE_EMPTY",
+ /*  69 */ "list_bullet ::= list_bullet item_bullet",
+ /*  70 */ "item_bullet ::= LINE_LIST_BULLETED ext_chunk",
+ /*  71 */ "item_bullet ::= LINE_LIST_BULLETED chunk",
+ /*  72 */ "item_bullet ::= LINE_LIST_BULLETED nested_chunks",
+ /*  73 */ "item_bullet ::= LINE_LIST_BULLETED",
+ /*  74 */ "list_enum ::= list_enum item_enum",
+ /*  75 */ "item_enum ::= LINE_LIST_ENUMERATED ext_chunk",
+ /*  76 */ "item_enum ::= LINE_LIST_ENUMERATED chunk",
+ /*  77 */ "item_enum ::= LINE_LIST_ENUMERATED nested_chunks",
+ /*  78 */ "item_enum ::= LINE_LIST_ENUMERATED",
+ /*  79 */ "meta_block ::= meta_block meta_line",
+ /*  80 */ "meta_block ::= LINE_YAML LINE_META",
+ /*  81 */ "para ::= LINE_PLAIN chunk",
+ /*  82 */ "setext_1 ::= para LINE_SETEXT_1",
+ /*  83 */ "setext_2 ::= para LINE_SETEXT_2",
+ /*  84 */ "table ::= table_header table_body",
+ /*  85 */ "table_header ::= header_rows LINE_TABLE_SEPARATOR",
+ /*  86 */ "header_rows ::= header_rows LINE_TABLE",
+ /*  87 */ "table_body ::= table_body table_section",
+ /*  88 */ "table_section ::= all_rows LINE_EMPTY",
+ /*  89 */ "table_section ::= all_rows",
+ /*  90 */ "all_rows ::= all_rows row",
+ /*  91 */ "para ::= all_rows",
+ /*  92 */ "chunk ::= chunk_line",
+ /*  93 */ "chunk_line ::= LINE_CONTINUATION",
+ /*  94 */ "chunk_line ::= LINE_STOP_COMMENT",
+ /*  95 */ "nested_chunks ::= nested_chunk",
+ /*  96 */ "nested_chunk ::= empty",
+ /*  97 */ "indented_line ::= LINE_INDENTED_TAB",
+ /*  98 */ "indented_line ::= LINE_INDENTED_SPACE",
+ /*  99 */ "opt_ext_chunk ::= chunk",
+ /* 100 */ "tail ::= opt_ext_chunk",
+ /* 101 */ "tail ::= nested_chunks",
+ /* 102 */ "blockquote ::= LINE_BLOCKQUOTE",
+ /* 103 */ "quote_line ::= LINE_BLOCKQUOTE",
+ /* 104 */ "quote_line ::= LINE_CONTINUATION",
+ /* 105 */ "def_citation ::= LINE_DEF_CITATION",
+ /* 106 */ "def_footnote ::= LINE_DEF_FOOTNOTE",
+ /* 107 */ "def_glossary ::= LINE_DEF_GLOSSARY",
+ /* 108 */ "def_link ::= LINE_DEF_LINK",
+ /* 109 */ "def_abbreviation ::= LINE_DEF_ABBREVIATION",
+ /* 110 */ "defs ::= def",
+ /* 111 */ "empty ::= LINE_EMPTY",
+ /* 112 */ "fenced_block ::= fenced_3",
+ /* 113 */ "fenced_3 ::= LINE_FENCE_BACKTICK_3",
+ /* 114 */ "fenced_3 ::= LINE_FENCE_BACKTICK_START_3",
+ /* 115 */ "fenced_block ::= fenced_4",
+ /* 116 */ "fenced_4 ::= LINE_FENCE_BACKTICK_4",
+ /* 117 */ "fenced_4 ::= LINE_FENCE_BACKTICK_START_4",
+ /* 118 */ "fenced_block ::= fenced_5",
+ /* 119 */ "fenced_5 ::= LINE_FENCE_BACKTICK_5",
+ /* 120 */ "fenced_5 ::= LINE_FENCE_BACKTICK_START_5",
+ /* 121 */ "fenced_line ::= LINE_CONTINUATION",
+ /* 122 */ "fenced_line ::= LINE_EMPTY",
+ /* 123 */ "fenced_line ::= LINE_FALLBACK",
+ /* 124 */ "fenced_line ::= LINE_HR",
+ /* 125 */ "fenced_line ::= LINE_HTML",
+ /* 126 */ "fenced_line ::= LINE_START_COMMENT",
+ /* 127 */ "fenced_line ::= LINE_STOP_COMMENT",
+ /* 128 */ "html_block ::= LINE_HTML",
+ /* 129 */ "html_line ::= LINE_CONTINUATION",
+ /* 130 */ "html_line ::= LINE_FALLBACK",
+ /* 131 */ "html_line ::= LINE_HR",
+ /* 132 */ "html_line ::= LINE_HTML",
+ /* 133 */ "html_com_block ::= html_comment",
+ /* 134 */ "html_comment ::= LINE_START_COMMENT",
+ /* 135 */ "comment_line ::= LINE_CONTINUATION",
+ /* 136 */ "comment_line ::= LINE_EMPTY",
+ /* 137 */ "comment_line ::= LINE_FALLBACK",
+ /* 138 */ "comment_line ::= LINE_HR",
+ /* 139 */ "comment_line ::= LINE_HTML",
+ /* 140 */ "indented_code ::= indented_line",
+ /* 141 */ "list_bullet ::= item_bullet",
+ /* 142 */ "list_enum ::= item_enum",
+ /* 143 */ "meta_block ::= LINE_META",
+ /* 144 */ "meta_line ::= LINE_META",
+ /* 145 */ "meta_line ::= LINE_CONTINUATION",
+ /* 146 */ "para ::= LINE_PLAIN",
+ /* 147 */ "para ::= LINE_STOP_COMMENT",
+ /* 148 */ "table ::= table_header",
+ /* 149 */ "header_rows ::= LINE_TABLE",
+ /* 150 */ "table_body ::= table_section",
+ /* 151 */ "all_rows ::= row",
+ /* 152 */ "row ::= header_rows",
+ /* 153 */ "row ::= LINE_TABLE_SEPARATOR",
+ /* 154 */ "para ::= defs",
 };
 #endif /* NDEBUG */
 
@@ -957,158 +961,161 @@ static const struct {
   YYCODETYPE lhs;         /* Symbol on the left-hand side of the rule */
   unsigned char nrhs;     /* Number of right-hand side symbols in the rule */
 } yyRuleInfo[] = {
-  { 40, 1 },
-  { 41, 2 },
   { 41, 1 },
+  { 42, 2 },
   { 42, 1 },
-  { 42, 1 },
-  { 42, 1 },
-  { 42, 1 },
-  { 42, 1 },
-  { 42, 1 },
-  { 42, 1 },
-  { 42, 1 },
-  { 42, 1 },
-  { 42, 1 },
-  { 42, 1 },
-  { 42, 1 },
-  { 42, 1 },
-  { 42, 1 },
-  { 42, 1 },
-  { 42, 1 },
-  { 42, 1 },
-  { 42, 1 },
-  { 42, 1 },
-  { 42, 1 },
-  { 42, 1 },
-  { 42, 1 },
-  { 42, 1 },
-  { 42, 1 },
-  { 42, 1 },
-  { 42, 1 },
-  { 42, 1 },
-  { 62, 2 },
-  { 64, 2 },
-  { 65, 3 },
+  { 43, 1 },
+  { 43, 1 },
+  { 43, 1 },
+  { 43, 1 },
+  { 43, 1 },
+  { 43, 1 },
+  { 43, 1 },
+  { 43, 1 },
+  { 43, 1 },
+  { 43, 1 },
+  { 43, 1 },
+  { 43, 1 },
+  { 43, 1 },
+  { 43, 1 },
+  { 43, 1 },
+  { 43, 1 },
+  { 43, 1 },
+  { 43, 1 },
+  { 43, 1 },
+  { 43, 1 },
+  { 43, 1 },
+  { 43, 1 },
+  { 43, 1 },
+  { 43, 1 },
+  { 43, 2 },
+  { 43, 1 },
+  { 43, 1 },
+  { 43, 1 },
+  { 43, 1 },
+  { 63, 2 },
   { 65, 2 },
-  { 67, 2 },
+  { 66, 3 },
+  { 66, 2 },
   { 68, 2 },
-  { 43, 2 },
-  { 45, 2 },
+  { 69, 2 },
+  { 44, 2 },
   { 46, 2 },
   { 47, 2 },
   { 48, 2 },
-  { 44, 2 },
   { 49, 2 },
-  { 71, 2 },
-  { 72, 2 },
-  { 72, 1 },
+  { 45, 2 },
   { 50, 2 },
-  { 51, 2 },
-  { 51, 2 },
-  { 51, 2 },
+  { 72, 2 },
   { 73, 2 },
+  { 73, 1 },
   { 51, 2 },
-  { 51, 2 },
-  { 75, 2 },
-  { 75, 2 },
-  { 75, 2 },
-  { 51, 2 },
-  { 76, 2 },
-  { 76, 2 },
+  { 52, 2 },
+  { 52, 2 },
+  { 52, 2 },
+  { 74, 2 },
+  { 52, 2 },
+  { 52, 2 },
   { 76, 2 },
   { 76, 2 },
   { 76, 2 },
   { 52, 2 },
+  { 77, 2 },
+  { 77, 2 },
+  { 77, 2 },
+  { 77, 2 },
+  { 77, 2 },
   { 53, 2 },
-  { 78, 2 },
-  { 54, 2 },
   { 54, 2 },
+  { 79, 2 },
+  { 55, 2 },
   { 55, 2 },
-  { 80, 2 },
-  { 80, 2 },
-  { 80, 2 },
-  { 80, 1 },
   { 56, 2 },
   { 81, 2 },
   { 81, 2 },
   { 81, 2 },
   { 81, 1 },
   { 57, 2 },
+  { 82, 2 },
+  { 82, 2 },
+  { 82, 2 },
+  { 82, 1 },
+  { 58, 2 },
   { 58, 2 },
   { 59, 2 },
   { 60, 2 },
   { 61, 2 },
-  { 83, 2 },
-  { 85, 2 },
+  { 62, 2 },
   { 84, 2 },
   { 86, 2 },
-  { 86, 1 },
+  { 85, 2 },
   { 87, 2 },
-  { 58, 1 },
-  { 62, 1 },
-  { 63, 1 },
+  { 87, 1 },
+  { 88, 2 },
+  { 59, 1 },
   { 63, 1 },
   { 64, 1 },
+  { 64, 1 },
   { 65, 1 },
   { 66, 1 },
-  { 66, 1 },
-  { 68, 1 },
-  { 69, 1 },
+  { 67, 1 },
+  { 67, 1 },
   { 69, 1 },
-  { 43, 1 },
   { 70, 1 },
   { 70, 1 },
-  { 45, 1 },
+  { 44, 1 },
+  { 71, 1 },
+  { 71, 1 },
   { 46, 1 },
   { 47, 1 },
   { 48, 1 },
-  { 44, 1 },
-  { 71, 1 },
-  { 50, 1 },
-  { 51, 1 },
-  { 73, 1 },
-  { 73, 1 },
-  { 51, 1 },
-  { 75, 1 },
-  { 75, 1 },
+  { 49, 1 },
+  { 45, 1 },
+  { 72, 1 },
   { 51, 1 },
-  { 76, 1 },
-  { 76, 1 },
-  { 74, 1 },
-  { 74, 1 },
-  { 74, 1 },
-  { 74, 1 },
-  { 74, 1 },
+  { 52, 1 },
   { 74, 1 },
   { 74, 1 },
   { 52, 1 },
+  { 76, 1 },
+  { 76, 1 },
+  { 52, 1 },
   { 77, 1 },
   { 77, 1 },
-  { 77, 1 },
-  { 77, 1 },
+  { 75, 1 },
+  { 75, 1 },
+  { 75, 1 },
+  { 75, 1 },
+  { 75, 1 },
+  { 75, 1 },
+  { 75, 1 },
   { 53, 1 },
   { 78, 1 },
-  { 79, 1 },
-  { 79, 1 },
-  { 79, 1 },
-  { 79, 1 },
-  { 79, 1 },
+  { 78, 1 },
+  { 78, 1 },
+  { 78, 1 },
   { 54, 1 },
+  { 79, 1 },
+  { 80, 1 },
+  { 80, 1 },
+  { 80, 1 },
+  { 80, 1 },
+  { 80, 1 },
   { 55, 1 },
   { 56, 1 },
   { 57, 1 },
-  { 82, 1 },
-  { 82, 1 },
-  { 58, 1 },
   { 58, 1 },
-  { 61, 1 },
+  { 83, 1 },
+  { 83, 1 },
+  { 59, 1 },
+  { 59, 1 },
+  { 62, 1 },
+  { 86, 1 },
   { 85, 1 },
-  { 84, 1 },
-  { 87, 1 },
   { 88, 1 },
-  { 88, 1 },
-  { 58, 1 },
+  { 89, 1 },
+  { 89, 1 },
+  { 59, 1 },
 };
 
 static void yy_accept(yyParser*);  /* Forward Declaration */
@@ -1223,251 +1230,257 @@ static void yy_reduce(
   yymsp[0].minor.yy0 = yylhsminor.yy0;
         break;
       case 9: /* block ::= LINE_HR */
+      case 10: /* block ::= LINE_YAML */ yytestcase(yyruleno==10);
 { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_HR); }
   yymsp[0].minor.yy0 = yylhsminor.yy0;
         break;
-      case 10: /* block ::= LINE_TOC */
+      case 11: /* block ::= LINE_TOC */
 { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_TOC); }
   yymsp[0].minor.yy0 = yylhsminor.yy0;
         break;
-      case 11: /* block ::= blockquote */
+      case 12: /* block ::= blockquote */
 { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_BLOCKQUOTE); recursive_parse_blockquote(engine, yylhsminor.yy0); }
   yymsp[0].minor.yy0 = yylhsminor.yy0;
         break;
-      case 12: /* block ::= def_abbreviation */
+      case 13: /* block ::= def_abbreviation */
 { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_DEF_ABBREVIATION); stack_push(engine->definition_stack, yylhsminor.yy0); }
   yymsp[0].minor.yy0 = yylhsminor.yy0;
         break;
-      case 13: /* block ::= def_citation */
+      case 14: /* block ::= def_citation */
 { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_DEF_CITATION); stack_push(engine->definition_stack, yylhsminor.yy0); }
   yymsp[0].minor.yy0 = yylhsminor.yy0;
         break;
-      case 14: /* block ::= def_footnote */
+      case 15: /* block ::= def_footnote */
 { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_DEF_FOOTNOTE); stack_push(engine->definition_stack, yylhsminor.yy0); recursive_parse_indent(engine, yylhsminor.yy0); }
   yymsp[0].minor.yy0 = yylhsminor.yy0;
         break;
-      case 15: /* block ::= def_glossary */
+      case 16: /* block ::= def_glossary */
 { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_DEF_GLOSSARY); stack_push(engine->definition_stack, yylhsminor.yy0); recursive_parse_indent(engine, yylhsminor.yy0); }
   yymsp[0].minor.yy0 = yylhsminor.yy0;
         break;
-      case 16: /* block ::= def_link */
+      case 17: /* block ::= def_link */
 { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_DEF_LINK); stack_push(engine->definition_stack, yylhsminor.yy0); }
   yymsp[0].minor.yy0 = yylhsminor.yy0;
         break;
-      case 17: /* block ::= definition_block */
+      case 18: /* block ::= definition_block */
 { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_DEFLIST); }
   yymsp[0].minor.yy0 = yylhsminor.yy0;
         break;
-      case 18: /* block ::= empty */
+      case 19: /* block ::= empty */
 { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_EMPTY); }
   yymsp[0].minor.yy0 = yylhsminor.yy0;
         break;
-      case 19: /* block ::= fenced_block */
+      case 20: /* block ::= fenced_block */
 { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_CODE_FENCED); yymsp[0].minor.yy0->child->type = CODE_FENCE; }
   yymsp[0].minor.yy0 = yylhsminor.yy0;
         break;
-      case 20: /* block ::= html_block */
-      case 21: /* block ::= html_com_block */ yytestcase(yyruleno==21);
+      case 21: /* block ::= html_block */
+      case 22: /* block ::= html_com_block */ yytestcase(yyruleno==22);
 { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_HTML); }
   yymsp[0].minor.yy0 = yylhsminor.yy0;
         break;
-      case 22: /* block ::= indented_code */
+      case 23: /* block ::= indented_code */
 { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_CODE_INDENTED); }
   yymsp[0].minor.yy0 = yylhsminor.yy0;
         break;
-      case 23: /* block ::= list_bullet */
+      case 24: /* block ::= list_bullet */
 { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_LIST_BULLETED); is_list_loose(yylhsminor.yy0); }
   yymsp[0].minor.yy0 = yylhsminor.yy0;
         break;
-      case 24: /* block ::= list_enum */
+      case 25: /* block ::= list_enum */
 { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_LIST_ENUMERATED); is_list_loose(yylhsminor.yy0); }
   yymsp[0].minor.yy0 = yylhsminor.yy0;
         break;
-      case 25: /* block ::= meta_block */
+      case 26: /* block ::= meta_block */
 { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_META); }
   yymsp[0].minor.yy0 = yylhsminor.yy0;
         break;
-      case 26: /* block ::= para */
+      case 27: /* block ::= meta_block LINE_SETEXT_2 */
+{ yylhsminor.yy0 = token_new_parent(yymsp[-1].minor.yy0, BLOCK_META); token_chain_append(yylhsminor.yy0, yymsp[0].minor.yy0); }
+  yymsp[-1].minor.yy0 = yylhsminor.yy0;
+        break;
+      case 28: /* block ::= para */
 { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_PARA); is_para_html(engine, yylhsminor.yy0); }
   yymsp[0].minor.yy0 = yylhsminor.yy0;
         break;
-      case 27: /* block ::= setext_1 */
+      case 29: /* block ::= setext_1 */
 { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_SETEXT_1); stack_push(engine->header_stack, yylhsminor.yy0); }
   yymsp[0].minor.yy0 = yylhsminor.yy0;
         break;
-      case 28: /* block ::= setext_2 */
+      case 30: /* block ::= setext_2 */
 { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_SETEXT_2); stack_push(engine->header_stack, yylhsminor.yy0); }
   yymsp[0].minor.yy0 = yylhsminor.yy0;
         break;
-      case 29: /* block ::= table */
+      case 31: /* block ::= table */
 { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_TABLE); stack_push(engine->table_stack, yylhsminor.yy0); }
   yymsp[0].minor.yy0 = yylhsminor.yy0;
         break;
-      case 30: /* chunk ::= chunk chunk_line */
-      case 31: /* nested_chunks ::= nested_chunks nested_chunk */ yytestcase(yyruleno==31);
-      case 34: /* ext_chunk ::= chunk nested_chunks */ yytestcase(yyruleno==34);
-      case 35: /* opt_ext_chunk ::= chunk nested_chunks */ yytestcase(yyruleno==35);
-      case 36: /* blockquote ::= blockquote quote_line */ yytestcase(yyruleno==36);
-      case 37: /* def_citation ::= LINE_DEF_CITATION tail */ yytestcase(yyruleno==37);
-      case 38: /* def_footnote ::= LINE_DEF_FOOTNOTE tail */ yytestcase(yyruleno==38);
-      case 39: /* def_glossary ::= LINE_DEF_GLOSSARY tail */ yytestcase(yyruleno==39);
-      case 40: /* def_link ::= LINE_DEF_LINK chunk */ yytestcase(yyruleno==40);
-      case 41: /* def_abbreviation ::= LINE_DEF_ABBREVIATION chunk */ yytestcase(yyruleno==41);
-      case 43: /* defs ::= defs def */ yytestcase(yyruleno==43);
-      case 46: /* empty ::= empty LINE_EMPTY */ yytestcase(yyruleno==46);
-      case 50: /* fenced_3 ::= fenced_3 fenced_line */ yytestcase(yyruleno==50);
-      case 53: /* fenced_4 ::= fenced_4 fenced_line */ yytestcase(yyruleno==53);
-      case 54: /* fenced_4 ::= fenced_4 LINE_FENCE_BACKTICK_3 */ yytestcase(yyruleno==54);
-      case 55: /* fenced_4 ::= fenced_4 LINE_FENCE_BACKTICK_START_3 */ yytestcase(yyruleno==55);
-      case 57: /* fenced_5 ::= fenced_5 fenced_line */ yytestcase(yyruleno==57);
-      case 58: /* fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_3 */ yytestcase(yyruleno==58);
-      case 59: /* fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_START_3 */ yytestcase(yyruleno==59);
-      case 60: /* fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_4 */ yytestcase(yyruleno==60);
-      case 61: /* fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_START_4 */ yytestcase(yyruleno==61);
-      case 62: /* html_block ::= html_block html_line */ yytestcase(yyruleno==62);
-      case 63: /* html_com_block ::= html_comment LINE_STOP_COMMENT */ yytestcase(yyruleno==63);
-      case 64: /* html_comment ::= html_comment comment_line */ yytestcase(yyruleno==64);
-      case 65: /* indented_code ::= indented_code indented_line */ yytestcase(yyruleno==65);
-      case 66: /* indented_code ::= indented_code LINE_EMPTY */ yytestcase(yyruleno==66);
-      case 67: /* list_bullet ::= list_bullet item_bullet */ yytestcase(yyruleno==67);
-      case 72: /* list_enum ::= list_enum item_enum */ yytestcase(yyruleno==72);
-      case 77: /* meta_block ::= meta_block meta_line */ yytestcase(yyruleno==77);
-      case 78: /* para ::= LINE_PLAIN chunk */ yytestcase(yyruleno==78);
-      case 79: /* setext_1 ::= para LINE_SETEXT_1 */ yytestcase(yyruleno==79);
-      case 80: /* setext_2 ::= para LINE_SETEXT_2 */ yytestcase(yyruleno==80);
-      case 81: /* table ::= table_header table_body */ yytestcase(yyruleno==81);
-      case 83: /* header_rows ::= header_rows LINE_TABLE */ yytestcase(yyruleno==83);
-      case 84: /* table_body ::= table_body table_section */ yytestcase(yyruleno==84);
-      case 87: /* all_rows ::= all_rows row */ yytestcase(yyruleno==87);
+      case 32: /* chunk ::= chunk chunk_line */
+      case 33: /* nested_chunks ::= nested_chunks nested_chunk */ yytestcase(yyruleno==33);
+      case 36: /* ext_chunk ::= chunk nested_chunks */ yytestcase(yyruleno==36);
+      case 37: /* opt_ext_chunk ::= chunk nested_chunks */ yytestcase(yyruleno==37);
+      case 38: /* blockquote ::= blockquote quote_line */ yytestcase(yyruleno==38);
+      case 39: /* def_citation ::= LINE_DEF_CITATION tail */ yytestcase(yyruleno==39);
+      case 40: /* def_footnote ::= LINE_DEF_FOOTNOTE tail */ yytestcase(yyruleno==40);
+      case 41: /* def_glossary ::= LINE_DEF_GLOSSARY tail */ yytestcase(yyruleno==41);
+      case 42: /* def_link ::= LINE_DEF_LINK chunk */ yytestcase(yyruleno==42);
+      case 43: /* def_abbreviation ::= LINE_DEF_ABBREVIATION chunk */ yytestcase(yyruleno==43);
+      case 45: /* defs ::= defs def */ yytestcase(yyruleno==45);
+      case 48: /* empty ::= empty LINE_EMPTY */ yytestcase(yyruleno==48);
+      case 52: /* fenced_3 ::= fenced_3 fenced_line */ yytestcase(yyruleno==52);
+      case 55: /* fenced_4 ::= fenced_4 fenced_line */ yytestcase(yyruleno==55);
+      case 56: /* fenced_4 ::= fenced_4 LINE_FENCE_BACKTICK_3 */ yytestcase(yyruleno==56);
+      case 57: /* fenced_4 ::= fenced_4 LINE_FENCE_BACKTICK_START_3 */ yytestcase(yyruleno==57);
+      case 59: /* fenced_5 ::= fenced_5 fenced_line */ yytestcase(yyruleno==59);
+      case 60: /* fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_3 */ yytestcase(yyruleno==60);
+      case 61: /* fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_START_3 */ yytestcase(yyruleno==61);
+      case 62: /* fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_4 */ yytestcase(yyruleno==62);
+      case 63: /* fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_START_4 */ yytestcase(yyruleno==63);
+      case 64: /* html_block ::= html_block html_line */ yytestcase(yyruleno==64);
+      case 65: /* html_com_block ::= html_comment LINE_STOP_COMMENT */ yytestcase(yyruleno==65);
+      case 66: /* html_comment ::= html_comment comment_line */ yytestcase(yyruleno==66);
+      case 67: /* indented_code ::= indented_code indented_line */ yytestcase(yyruleno==67);
+      case 68: /* indented_code ::= indented_code LINE_EMPTY */ yytestcase(yyruleno==68);
+      case 69: /* list_bullet ::= list_bullet item_bullet */ yytestcase(yyruleno==69);
+      case 74: /* list_enum ::= list_enum item_enum */ yytestcase(yyruleno==74);
+      case 79: /* meta_block ::= meta_block meta_line */ yytestcase(yyruleno==79);
+      case 80: /* meta_block ::= LINE_YAML LINE_META */ yytestcase(yyruleno==80);
+      case 81: /* para ::= LINE_PLAIN chunk */ yytestcase(yyruleno==81);
+      case 82: /* setext_1 ::= para LINE_SETEXT_1 */ yytestcase(yyruleno==82);
+      case 83: /* setext_2 ::= para LINE_SETEXT_2 */ yytestcase(yyruleno==83);
+      case 84: /* table ::= table_header table_body */ yytestcase(yyruleno==84);
+      case 86: /* header_rows ::= header_rows LINE_TABLE */ yytestcase(yyruleno==86);
+      case 87: /* table_body ::= table_body table_section */ yytestcase(yyruleno==87);
+      case 90: /* all_rows ::= all_rows row */ yytestcase(yyruleno==90);
 { yylhsminor.yy0 = yymsp[-1].minor.yy0; token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0); }
   yymsp[-1].minor.yy0 = yylhsminor.yy0;
         break;
-      case 32: /* nested_chunk ::= empty indented_line chunk */
+      case 34: /* nested_chunk ::= empty indented_line chunk */
 { yylhsminor.yy0 = yymsp[-2].minor.yy0; token_chain_append(yymsp[-2].minor.yy0, yymsp[-1].minor.yy0); token_chain_append(yymsp[-2].minor.yy0, yymsp[0].minor.yy0); yymsp[-1].minor.yy0->type = LINE_CONTINUATION; }
   yymsp[-2].minor.yy0 = yylhsminor.yy0;
         break;
-      case 33: /* nested_chunk ::= empty indented_line */
+      case 35: /* nested_chunk ::= empty indented_line */
 { yylhsminor.yy0 = yymsp[-1].minor.yy0; token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0); yymsp[0].minor.yy0->type = LINE_CONTINUATION; }
   yymsp[-1].minor.yy0 = yylhsminor.yy0;
         break;
-      case 42: /* definition_block ::= para defs */
+      case 44: /* definition_block ::= para defs */
 { yylhsminor.yy0 = yymsp[-1].minor.yy0; token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0); yymsp[-1].minor.yy0->type = BLOCK_TERM; }
   yymsp[-1].minor.yy0 = yylhsminor.yy0;
         break;
-      case 44: /* def ::= LINE_DEFINITION tail */
+      case 46: /* def ::= LINE_DEFINITION tail */
 { yylhsminor.yy0 = token_new_parent(yymsp[-1].minor.yy0, BLOCK_DEFINITION); token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0); recursive_parse_indent(engine, yylhsminor.yy0); }
   yymsp[-1].minor.yy0 = yylhsminor.yy0;
         break;
-      case 45: /* def ::= LINE_DEFINITION */
+      case 47: /* def ::= LINE_DEFINITION */
 { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_DEFINITION);  }
   yymsp[0].minor.yy0 = yylhsminor.yy0;
         break;
-      case 47: /* fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_3 */
-      case 48: /* fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_4 */ yytestcase(yyruleno==48);
-      case 49: /* fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_5 */ yytestcase(yyruleno==49);
-      case 51: /* fenced_block ::= fenced_4 LINE_FENCE_BACKTICK_4 */ yytestcase(yyruleno==51);
-      case 52: /* fenced_block ::= fenced_4 LINE_FENCE_BACKTICK_5 */ yytestcase(yyruleno==52);
-      case 56: /* fenced_block ::= fenced_5 LINE_FENCE_BACKTICK_5 */ yytestcase(yyruleno==56);
+      case 49: /* fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_3 */
+      case 50: /* fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_4 */ yytestcase(yyruleno==50);
+      case 51: /* fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_5 */ yytestcase(yyruleno==51);
+      case 53: /* fenced_block ::= fenced_4 LINE_FENCE_BACKTICK_4 */ yytestcase(yyruleno==53);
+      case 54: /* fenced_block ::= fenced_4 LINE_FENCE_BACKTICK_5 */ yytestcase(yyruleno==54);
+      case 58: /* fenced_block ::= fenced_5 LINE_FENCE_BACKTICK_5 */ yytestcase(yyruleno==58);
 { yylhsminor.yy0 = yymsp[-1].minor.yy0; token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0); yymsp[0].minor.yy0->child->type = CODE_FENCE; }
   yymsp[-1].minor.yy0 = yylhsminor.yy0;
         break;
-      case 68: /* item_bullet ::= LINE_LIST_BULLETED ext_chunk */
-      case 70: /* item_bullet ::= LINE_LIST_BULLETED nested_chunks */ yytestcase(yyruleno==70);
-      case 73: /* item_enum ::= LINE_LIST_ENUMERATED ext_chunk */ yytestcase(yyruleno==73);
-      case 75: /* item_enum ::= LINE_LIST_ENUMERATED nested_chunks */ yytestcase(yyruleno==75);
+      case 70: /* item_bullet ::= LINE_LIST_BULLETED ext_chunk */
+      case 72: /* item_bullet ::= LINE_LIST_BULLETED nested_chunks */ yytestcase(yyruleno==72);
+      case 75: /* item_enum ::= LINE_LIST_ENUMERATED ext_chunk */ yytestcase(yyruleno==75);
+      case 77: /* item_enum ::= LINE_LIST_ENUMERATED nested_chunks */ yytestcase(yyruleno==77);
 { yylhsminor.yy0 = token_new_parent(yymsp[-1].minor.yy0, BLOCK_LIST_ITEM); token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0); recursive_parse_list_item(engine, yylhsminor.yy0); }
   yymsp[-1].minor.yy0 = yylhsminor.yy0;
         break;
-      case 69: /* item_bullet ::= LINE_LIST_BULLETED chunk */
-      case 74: /* item_enum ::= LINE_LIST_ENUMERATED chunk */ yytestcase(yyruleno==74);
+      case 71: /* item_bullet ::= LINE_LIST_BULLETED chunk */
+      case 76: /* item_enum ::= LINE_LIST_ENUMERATED chunk */ yytestcase(yyruleno==76);
 { yylhsminor.yy0 = token_new_parent(yymsp[-1].minor.yy0, BLOCK_LIST_ITEM_TIGHT); token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0); recursive_parse_list_item(engine, yylhsminor.yy0); }
   yymsp[-1].minor.yy0 = yylhsminor.yy0;
         break;
-      case 71: /* item_bullet ::= LINE_LIST_BULLETED */
-      case 76: /* item_enum ::= LINE_LIST_ENUMERATED */ yytestcase(yyruleno==76);
+      case 73: /* item_bullet ::= LINE_LIST_BULLETED */
+      case 78: /* item_enum ::= LINE_LIST_ENUMERATED */ yytestcase(yyruleno==78);
 { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_LIST_ITEM_TIGHT); }
   yymsp[0].minor.yy0 = yylhsminor.yy0;
         break;
-      case 82: /* table_header ::= header_rows LINE_TABLE_SEPARATOR */
+      case 85: /* table_header ::= header_rows LINE_TABLE_SEPARATOR */
 { yylhsminor.yy0 = token_new_parent(yymsp[-1].minor.yy0, BLOCK_TABLE_HEADER); token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0); }
   yymsp[-1].minor.yy0 = yylhsminor.yy0;
         break;
-      case 85: /* table_section ::= all_rows LINE_EMPTY */
+      case 88: /* table_section ::= all_rows LINE_EMPTY */
 { yylhsminor.yy0 = token_new_parent(yymsp[-1].minor.yy0, BLOCK_TABLE_SECTION); token_chain_append(yymsp[-1].minor.yy0, yymsp[0].minor.yy0); }
   yymsp[-1].minor.yy0 = yylhsminor.yy0;
         break;
-      case 86: /* table_section ::= all_rows */
+      case 89: /* table_section ::= all_rows */
 { yylhsminor.yy0 = token_new_parent(yymsp[0].minor.yy0, BLOCK_TABLE_SECTION); }
   yymsp[0].minor.yy0 = yylhsminor.yy0;
         break;
-      case 88: /* para ::= all_rows */
+      case 91: /* para ::= all_rows */
 { yylhsminor.yy0 = yymsp[0].minor.yy0; }
   yymsp[0].minor.yy0 = yylhsminor.yy0;
         break;
       default:
-      /* (89) chunk ::= chunk_line (OPTIMIZED OUT) */ assert(yyruleno!=89);
-      /* (90) chunk_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==90);
-      /* (91) chunk_line ::= LINE_STOP_COMMENT */ yytestcase(yyruleno==91);
-      /* (92) nested_chunks ::= nested_chunk (OPTIMIZED OUT) */ assert(yyruleno!=92);
-      /* (93) nested_chunk ::= empty */ yytestcase(yyruleno==93);
-      /* (94) indented_line ::= LINE_INDENTED_TAB */ yytestcase(yyruleno==94);
-      /* (95) indented_line ::= LINE_INDENTED_SPACE */ yytestcase(yyruleno==95);
-      /* (96) opt_ext_chunk ::= chunk */ yytestcase(yyruleno==96);
-      /* (97) tail ::= opt_ext_chunk (OPTIMIZED OUT) */ assert(yyruleno!=97);
-      /* (98) tail ::= nested_chunks */ yytestcase(yyruleno==98);
-      /* (99) blockquote ::= LINE_BLOCKQUOTE */ yytestcase(yyruleno==99);
-      /* (100) quote_line ::= LINE_BLOCKQUOTE */ yytestcase(yyruleno==100);
-      /* (101) quote_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==101);
-      /* (102) def_citation ::= LINE_DEF_CITATION */ yytestcase(yyruleno==102);
-      /* (103) def_footnote ::= LINE_DEF_FOOTNOTE */ yytestcase(yyruleno==103);
-      /* (104) def_glossary ::= LINE_DEF_GLOSSARY */ yytestcase(yyruleno==104);
-      /* (105) def_link ::= LINE_DEF_LINK */ yytestcase(yyruleno==105);
-      /* (106) def_abbreviation ::= LINE_DEF_ABBREVIATION */ yytestcase(yyruleno==106);
-      /* (107) defs ::= def (OPTIMIZED OUT) */ assert(yyruleno!=107);
-      /* (108) empty ::= LINE_EMPTY */ yytestcase(yyruleno==108);
-      /* (109) fenced_block ::= fenced_3 */ yytestcase(yyruleno==109);
-      /* (110) fenced_3 ::= LINE_FENCE_BACKTICK_3 */ yytestcase(yyruleno==110);
-      /* (111) fenced_3 ::= LINE_FENCE_BACKTICK_START_3 */ yytestcase(yyruleno==111);
-      /* (112) fenced_block ::= fenced_4 */ yytestcase(yyruleno==112);
-      /* (113) fenced_4 ::= LINE_FENCE_BACKTICK_4 */ yytestcase(yyruleno==113);
-      /* (114) fenced_4 ::= LINE_FENCE_BACKTICK_START_4 */ yytestcase(yyruleno==114);
-      /* (115) fenced_block ::= fenced_5 */ yytestcase(yyruleno==115);
-      /* (116) fenced_5 ::= LINE_FENCE_BACKTICK_5 */ yytestcase(yyruleno==116);
-      /* (117) fenced_5 ::= LINE_FENCE_BACKTICK_START_5 */ yytestcase(yyruleno==117);
-      /* (118) fenced_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==118);
-      /* (119) fenced_line ::= LINE_EMPTY */ yytestcase(yyruleno==119);
-      /* (120) fenced_line ::= LINE_FALLBACK */ yytestcase(yyruleno==120);
-      /* (121) fenced_line ::= LINE_HR */ yytestcase(yyruleno==121);
-      /* (122) fenced_line ::= LINE_HTML */ yytestcase(yyruleno==122);
-      /* (123) fenced_line ::= LINE_START_COMMENT */ yytestcase(yyruleno==123);
-      /* (124) fenced_line ::= LINE_STOP_COMMENT */ yytestcase(yyruleno==124);
-      /* (125) html_block ::= LINE_HTML */ yytestcase(yyruleno==125);
-      /* (126) html_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==126);
-      /* (127) html_line ::= LINE_FALLBACK */ yytestcase(yyruleno==127);
-      /* (128) html_line ::= LINE_HR */ yytestcase(yyruleno==128);
-      /* (129) html_line ::= LINE_HTML */ yytestcase(yyruleno==129);
-      /* (130) html_com_block ::= html_comment */ yytestcase(yyruleno==130);
-      /* (131) html_comment ::= LINE_START_COMMENT */ yytestcase(yyruleno==131);
-      /* (132) comment_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==132);
-      /* (133) comment_line ::= LINE_EMPTY */ yytestcase(yyruleno==133);
-      /* (134) comment_line ::= LINE_FALLBACK */ yytestcase(yyruleno==134);
-      /* (135) comment_line ::= LINE_HR */ yytestcase(yyruleno==135);
-      /* (136) comment_line ::= LINE_HTML */ yytestcase(yyruleno==136);
-      /* (137) indented_code ::= indented_line (OPTIMIZED OUT) */ assert(yyruleno!=137);
-      /* (138) list_bullet ::= item_bullet (OPTIMIZED OUT) */ assert(yyruleno!=138);
-      /* (139) list_enum ::= item_enum (OPTIMIZED OUT) */ assert(yyruleno!=139);
-      /* (140) meta_block ::= LINE_META */ yytestcase(yyruleno==140);
-      /* (141) meta_line ::= LINE_META */ yytestcase(yyruleno==141);
-      /* (142) meta_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==142);
-      /* (143) para ::= LINE_PLAIN */ yytestcase(yyruleno==143);
-      /* (144) para ::= LINE_STOP_COMMENT */ yytestcase(yyruleno==144);
-      /* (145) table ::= table_header */ yytestcase(yyruleno==145);
-      /* (146) header_rows ::= LINE_TABLE */ yytestcase(yyruleno==146);
-      /* (147) table_body ::= table_section (OPTIMIZED OUT) */ assert(yyruleno!=147);
-      /* (148) all_rows ::= row (OPTIMIZED OUT) */ assert(yyruleno!=148);
-      /* (149) row ::= header_rows */ yytestcase(yyruleno==149);
-      /* (150) row ::= LINE_TABLE_SEPARATOR */ yytestcase(yyruleno==150);
-      /* (151) para ::= defs */ yytestcase(yyruleno==151);
+      /* (92) chunk ::= chunk_line (OPTIMIZED OUT) */ assert(yyruleno!=92);
+      /* (93) chunk_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==93);
+      /* (94) chunk_line ::= LINE_STOP_COMMENT */ yytestcase(yyruleno==94);
+      /* (95) nested_chunks ::= nested_chunk (OPTIMIZED OUT) */ assert(yyruleno!=95);
+      /* (96) nested_chunk ::= empty */ yytestcase(yyruleno==96);
+      /* (97) indented_line ::= LINE_INDENTED_TAB */ yytestcase(yyruleno==97);
+      /* (98) indented_line ::= LINE_INDENTED_SPACE */ yytestcase(yyruleno==98);
+      /* (99) opt_ext_chunk ::= chunk */ yytestcase(yyruleno==99);
+      /* (100) tail ::= opt_ext_chunk (OPTIMIZED OUT) */ assert(yyruleno!=100);
+      /* (101) tail ::= nested_chunks */ yytestcase(yyruleno==101);
+      /* (102) blockquote ::= LINE_BLOCKQUOTE */ yytestcase(yyruleno==102);
+      /* (103) quote_line ::= LINE_BLOCKQUOTE */ yytestcase(yyruleno==103);
+      /* (104) quote_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==104);
+      /* (105) def_citation ::= LINE_DEF_CITATION */ yytestcase(yyruleno==105);
+      /* (106) def_footnote ::= LINE_DEF_FOOTNOTE */ yytestcase(yyruleno==106);
+      /* (107) def_glossary ::= LINE_DEF_GLOSSARY */ yytestcase(yyruleno==107);
+      /* (108) def_link ::= LINE_DEF_LINK */ yytestcase(yyruleno==108);
+      /* (109) def_abbreviation ::= LINE_DEF_ABBREVIATION */ yytestcase(yyruleno==109);
+      /* (110) defs ::= def (OPTIMIZED OUT) */ assert(yyruleno!=110);
+      /* (111) empty ::= LINE_EMPTY */ yytestcase(yyruleno==111);
+      /* (112) fenced_block ::= fenced_3 */ yytestcase(yyruleno==112);
+      /* (113) fenced_3 ::= LINE_FENCE_BACKTICK_3 */ yytestcase(yyruleno==113);
+      /* (114) fenced_3 ::= LINE_FENCE_BACKTICK_START_3 */ yytestcase(yyruleno==114);
+      /* (115) fenced_block ::= fenced_4 */ yytestcase(yyruleno==115);
+      /* (116) fenced_4 ::= LINE_FENCE_BACKTICK_4 */ yytestcase(yyruleno==116);
+      /* (117) fenced_4 ::= LINE_FENCE_BACKTICK_START_4 */ yytestcase(yyruleno==117);
+      /* (118) fenced_block ::= fenced_5 */ yytestcase(yyruleno==118);
+      /* (119) fenced_5 ::= LINE_FENCE_BACKTICK_5 */ yytestcase(yyruleno==119);
+      /* (120) fenced_5 ::= LINE_FENCE_BACKTICK_START_5 */ yytestcase(yyruleno==120);
+      /* (121) fenced_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==121);
+      /* (122) fenced_line ::= LINE_EMPTY */ yytestcase(yyruleno==122);
+      /* (123) fenced_line ::= LINE_FALLBACK */ yytestcase(yyruleno==123);
+      /* (124) fenced_line ::= LINE_HR */ yytestcase(yyruleno==124);
+      /* (125) fenced_line ::= LINE_HTML */ yytestcase(yyruleno==125);
+      /* (126) fenced_line ::= LINE_START_COMMENT */ yytestcase(yyruleno==126);
+      /* (127) fenced_line ::= LINE_STOP_COMMENT */ yytestcase(yyruleno==127);
+      /* (128) html_block ::= LINE_HTML */ yytestcase(yyruleno==128);
+      /* (129) html_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==129);
+      /* (130) html_line ::= LINE_FALLBACK */ yytestcase(yyruleno==130);
+      /* (131) html_line ::= LINE_HR */ yytestcase(yyruleno==131);
+      /* (132) html_line ::= LINE_HTML */ yytestcase(yyruleno==132);
+      /* (133) html_com_block ::= html_comment */ yytestcase(yyruleno==133);
+      /* (134) html_comment ::= LINE_START_COMMENT */ yytestcase(yyruleno==134);
+      /* (135) comment_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==135);
+      /* (136) comment_line ::= LINE_EMPTY */ yytestcase(yyruleno==136);
+      /* (137) comment_line ::= LINE_FALLBACK */ yytestcase(yyruleno==137);
+      /* (138) comment_line ::= LINE_HR */ yytestcase(yyruleno==138);
+      /* (139) comment_line ::= LINE_HTML */ yytestcase(yyruleno==139);
+      /* (140) indented_code ::= indented_line (OPTIMIZED OUT) */ assert(yyruleno!=140);
+      /* (141) list_bullet ::= item_bullet (OPTIMIZED OUT) */ assert(yyruleno!=141);
+      /* (142) list_enum ::= item_enum (OPTIMIZED OUT) */ assert(yyruleno!=142);
+      /* (143) meta_block ::= LINE_META */ yytestcase(yyruleno==143);
+      /* (144) meta_line ::= LINE_META */ yytestcase(yyruleno==144);
+      /* (145) meta_line ::= LINE_CONTINUATION */ yytestcase(yyruleno==145);
+      /* (146) para ::= LINE_PLAIN */ yytestcase(yyruleno==146);
+      /* (147) para ::= LINE_STOP_COMMENT */ yytestcase(yyruleno==147);
+      /* (148) table ::= table_header */ yytestcase(yyruleno==148);
+      /* (149) header_rows ::= LINE_TABLE */ yytestcase(yyruleno==149);
+      /* (150) table_body ::= table_section (OPTIMIZED OUT) */ assert(yyruleno!=150);
+      /* (151) all_rows ::= row (OPTIMIZED OUT) */ assert(yyruleno!=151);
+      /* (152) row ::= header_rows */ yytestcase(yyruleno==152);
+      /* (153) row ::= LINE_TABLE_SEPARATOR */ yytestcase(yyruleno==153);
+      /* (154) para ::= defs */ yytestcase(yyruleno==154);
         break;
 /********** End reduce actions ************************************************/
   };
index 936d9833938fcf96cbe59f17093be654a87b11d8..71100b1dee23abccf81c582a059c50424b75a847 100644 (file)
@@ -1,38 +1,39 @@
 #define LINE_HR                          1
 #define LINE_SETEXT_1                    2
 #define LINE_SETEXT_2                    3
-#define LINE_CONTINUATION                4
-#define LINE_PLAIN                       5
-#define LINE_INDENTED_TAB                6
-#define LINE_INDENTED_SPACE              7
-#define LINE_TABLE                       8
-#define LINE_TABLE_SEPARATOR             9
-#define LINE_FALLBACK                   10
-#define LINE_HTML                       11
-#define LINE_ATX_1                      12
-#define LINE_ATX_2                      13
-#define LINE_ATX_3                      14
-#define LINE_ATX_4                      15
-#define LINE_ATX_5                      16
-#define LINE_ATX_6                      17
-#define LINE_BLOCKQUOTE                 18
-#define LINE_LIST_BULLETED              19
-#define LINE_LIST_ENUMERATED            20
-#define LINE_DEF_ABBREVIATION           21
-#define LINE_DEF_CITATION               22
-#define LINE_DEF_FOOTNOTE               23
-#define LINE_DEF_GLOSSARY               24
-#define LINE_DEF_LINK                   25
-#define LINE_TOC                        26
-#define LINE_DEFINITION                 27
-#define LINE_META                       28
-#define LINE_BACKTICK                   29
-#define LINE_FENCE_BACKTICK_3           30
-#define LINE_FENCE_BACKTICK_4           31
-#define LINE_FENCE_BACKTICK_5           32
-#define LINE_FENCE_BACKTICK_START_3     33
-#define LINE_FENCE_BACKTICK_START_4     34
-#define LINE_FENCE_BACKTICK_START_5     35
-#define LINE_STOP_COMMENT               36
-#define LINE_EMPTY                      37
-#define LINE_START_COMMENT              38
+#define LINE_YAML                        4
+#define LINE_CONTINUATION                5
+#define LINE_PLAIN                       6
+#define LINE_INDENTED_TAB                7
+#define LINE_INDENTED_SPACE              8
+#define LINE_TABLE                       9
+#define LINE_TABLE_SEPARATOR            10
+#define LINE_FALLBACK                   11
+#define LINE_HTML                       12
+#define LINE_ATX_1                      13
+#define LINE_ATX_2                      14
+#define LINE_ATX_3                      15
+#define LINE_ATX_4                      16
+#define LINE_ATX_5                      17
+#define LINE_ATX_6                      18
+#define LINE_BLOCKQUOTE                 19
+#define LINE_LIST_BULLETED              20
+#define LINE_LIST_ENUMERATED            21
+#define LINE_DEF_ABBREVIATION           22
+#define LINE_DEF_CITATION               23
+#define LINE_DEF_FOOTNOTE               24
+#define LINE_DEF_GLOSSARY               25
+#define LINE_DEF_LINK                   26
+#define LINE_TOC                        27
+#define LINE_DEFINITION                 28
+#define LINE_META                       29
+#define LINE_BACKTICK                   30
+#define LINE_FENCE_BACKTICK_3           31
+#define LINE_FENCE_BACKTICK_4           32
+#define LINE_FENCE_BACKTICK_5           33
+#define LINE_FENCE_BACKTICK_START_3     34
+#define LINE_FENCE_BACKTICK_START_4     35
+#define LINE_FENCE_BACKTICK_START_5     36
+#define LINE_STOP_COMMENT               37
+#define LINE_EMPTY                      38
+#define LINE_START_COMMENT              39
index 543a3d41b25f89bdd9df2ecdc5d17696bd66a401..5105cff13a4e625d6863be144266687c6d40e171 100644 (file)
@@ -9,6 +9,7 @@ State 0:
           block ::= * LINE_ATX_5
           block ::= * LINE_ATX_6
           block ::= * LINE_HR
+          block ::= * LINE_YAML
           block ::= * LINE_TOC
           block ::= * blockquote
           block ::= * def_abbreviation
@@ -25,6 +26,7 @@ State 0:
           block ::= * list_bullet
           block ::= * list_enum
           block ::= * meta_block
+          block ::= * meta_block LINE_SETEXT_2
           block ::= * para
           block ::= * setext_1
           block ::= * setext_2
@@ -97,6 +99,7 @@ State 0:
           item_enum ::= * LINE_LIST_ENUMERATED
           meta_block ::= * meta_block meta_line
           meta_block ::= * LINE_META
+          meta_block ::= * LINE_YAML LINE_META
           para ::= * LINE_PLAIN chunk
           para ::= * LINE_PLAIN
           para ::= * LINE_STOP_COMMENT
@@ -115,19 +118,20 @@ State 0:
           para ::= * defs
 
                        LINE_HR shift-reduce 9      block ::= LINE_HR
+                     LINE_YAML shift        45     
                     LINE_PLAIN shift        16     
-             LINE_INDENTED_TAB shift-reduce 94     indented_line ::= LINE_INDENTED_TAB
-           LINE_INDENTED_SPACE shift-reduce 95     indented_line ::= LINE_INDENTED_SPACE
-                    LINE_TABLE shift-reduce 146    header_rows ::= LINE_TABLE
-          LINE_TABLE_SEPARATOR shift-reduce 150    row ::= LINE_TABLE_SEPARATOR
-                     LINE_HTML shift-reduce 125    html_block ::= LINE_HTML
+             LINE_INDENTED_TAB shift-reduce 97     indented_line ::= LINE_INDENTED_TAB
+           LINE_INDENTED_SPACE shift-reduce 98     indented_line ::= LINE_INDENTED_SPACE
+                    LINE_TABLE shift-reduce 149    header_rows ::= LINE_TABLE
+          LINE_TABLE_SEPARATOR shift-reduce 153    row ::= LINE_TABLE_SEPARATOR
+                     LINE_HTML shift-reduce 128    html_block ::= LINE_HTML
                     LINE_ATX_1 shift-reduce 3      block ::= LINE_ATX_1
                     LINE_ATX_2 shift-reduce 4      block ::= LINE_ATX_2
                     LINE_ATX_3 shift-reduce 5      block ::= LINE_ATX_3
                     LINE_ATX_4 shift-reduce 6      block ::= LINE_ATX_4
                     LINE_ATX_5 shift-reduce 7      block ::= LINE_ATX_5
                     LINE_ATX_6 shift-reduce 8      block ::= LINE_ATX_6
-               LINE_BLOCKQUOTE shift-reduce 99     blockquote ::= LINE_BLOCKQUOTE
+               LINE_BLOCKQUOTE shift-reduce 102    blockquote ::= LINE_BLOCKQUOTE
             LINE_LIST_BULLETED shift        7      
           LINE_LIST_ENUMERATED shift        6      
          LINE_DEF_ABBREVIATION shift        17     
@@ -135,41 +139,41 @@ State 0:
              LINE_DEF_FOOTNOTE shift        3      
              LINE_DEF_GLOSSARY shift        2      
                  LINE_DEF_LINK shift        18     
-                      LINE_TOC shift-reduce 10     block ::= LINE_TOC
+                      LINE_TOC shift-reduce 11     block ::= LINE_TOC
                LINE_DEFINITION shift        5      
-                     LINE_META shift-reduce 140    meta_block ::= LINE_META
-         LINE_FENCE_BACKTICK_3 shift-reduce 110    fenced_3 ::= LINE_FENCE_BACKTICK_3
-         LINE_FENCE_BACKTICK_4 shift-reduce 113    fenced_4 ::= LINE_FENCE_BACKTICK_4
-         LINE_FENCE_BACKTICK_5 shift-reduce 116    fenced_5 ::= LINE_FENCE_BACKTICK_5
-   LINE_FENCE_BACKTICK_START_3 shift-reduce 111    fenced_3 ::= LINE_FENCE_BACKTICK_START_3
-   LINE_FENCE_BACKTICK_START_4 shift-reduce 114    fenced_4 ::= LINE_FENCE_BACKTICK_START_4
-   LINE_FENCE_BACKTICK_START_5 shift-reduce 117    fenced_5 ::= LINE_FENCE_BACKTICK_START_5
-             LINE_STOP_COMMENT shift-reduce 144    para ::= LINE_STOP_COMMENT
-                    LINE_EMPTY shift-reduce 108    empty ::= LINE_EMPTY
-            LINE_START_COMMENT shift-reduce 131    html_comment ::= LINE_START_COMMENT
+                     LINE_META shift-reduce 143    meta_block ::= LINE_META
+         LINE_FENCE_BACKTICK_3 shift-reduce 113    fenced_3 ::= LINE_FENCE_BACKTICK_3
+         LINE_FENCE_BACKTICK_4 shift-reduce 116    fenced_4 ::= LINE_FENCE_BACKTICK_4
+         LINE_FENCE_BACKTICK_5 shift-reduce 119    fenced_5 ::= LINE_FENCE_BACKTICK_5
+   LINE_FENCE_BACKTICK_START_3 shift-reduce 114    fenced_3 ::= LINE_FENCE_BACKTICK_START_3
+   LINE_FENCE_BACKTICK_START_4 shift-reduce 117    fenced_4 ::= LINE_FENCE_BACKTICK_START_4
+   LINE_FENCE_BACKTICK_START_5 shift-reduce 120    fenced_5 ::= LINE_FENCE_BACKTICK_START_5
+             LINE_STOP_COMMENT shift-reduce 147    para ::= LINE_STOP_COMMENT
+                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
+            LINE_START_COMMENT shift-reduce 134    html_comment ::= LINE_START_COMMENT
                            doc accept
                         blocks shift        1      
                          block shift-reduce 2      blocks ::= block
                     blockquote shift        37     
-              def_abbreviation shift-reduce 12     block ::= def_abbreviation
-                  def_citation shift-reduce 13     block ::= def_citation
-                  def_footnote shift-reduce 14     block ::= def_footnote
-                  def_glossary shift-reduce 15     block ::= def_glossary
-                      def_link shift-reduce 16     block ::= def_link
-              definition_block shift-reduce 17     block ::= definition_block
+              def_abbreviation shift-reduce 13     block ::= def_abbreviation
+                  def_citation shift-reduce 14     block ::= def_citation
+                  def_footnote shift-reduce 15     block ::= def_footnote
+                  def_glossary shift-reduce 16     block ::= def_glossary
+                      def_link shift-reduce 17     block ::= def_link
+              definition_block shift-reduce 18     block ::= definition_block
                          empty shift        44     
-                  fenced_block shift-reduce 19     block ::= fenced_block
+                  fenced_block shift-reduce 20     block ::= fenced_block
                     html_block shift        29     
-                html_com_block shift-reduce 21     block ::= html_com_block
-                 indented_code shift        31     
+                html_com_block shift-reduce 22     block ::= html_com_block
+                 indented_code shift        32     
                    list_bullet shift        41     
                      list_enum shift        40     
-                    meta_block shift        35     
+                    meta_block shift        30     
                           para shift        14     
-                      setext_1 shift-reduce 27     block ::= setext_1
-                      setext_2 shift-reduce 28     block ::= setext_2
-                         table shift-reduce 29     block ::= table
-                 indented_line shift        31       /* because indented_line==indented_code */
+                      setext_1 shift-reduce 29     block ::= setext_1
+                      setext_2 shift-reduce 30     block ::= setext_2
+                         table shift-reduce 31     block ::= table
+                 indented_line shift        32       /* because indented_line==indented_code */
                           defs shift        38     
                            def shift        38       /* because def==defs */
                       fenced_3 shift        27     
@@ -193,6 +197,7 @@ State 1:
           block ::= * LINE_ATX_5
           block ::= * LINE_ATX_6
           block ::= * LINE_HR
+          block ::= * LINE_YAML
           block ::= * LINE_TOC
           block ::= * blockquote
           block ::= * def_abbreviation
@@ -209,6 +214,7 @@ State 1:
           block ::= * list_bullet
           block ::= * list_enum
           block ::= * meta_block
+          block ::= * meta_block LINE_SETEXT_2
           block ::= * para
           block ::= * setext_1
           block ::= * setext_2
@@ -281,6 +287,7 @@ State 1:
           item_enum ::= * LINE_LIST_ENUMERATED
           meta_block ::= * meta_block meta_line
           meta_block ::= * LINE_META
+          meta_block ::= * LINE_YAML LINE_META
           para ::= * LINE_PLAIN chunk
           para ::= * LINE_PLAIN
           para ::= * LINE_STOP_COMMENT
@@ -300,19 +307,20 @@ State 1:
 
                              $ reduce       0      doc ::= blocks
                        LINE_HR shift-reduce 9      block ::= LINE_HR
+                     LINE_YAML shift        45     
                     LINE_PLAIN shift        16     
-             LINE_INDENTED_TAB shift-reduce 94     indented_line ::= LINE_INDENTED_TAB
-           LINE_INDENTED_SPACE shift-reduce 95     indented_line ::= LINE_INDENTED_SPACE
-                    LINE_TABLE shift-reduce 146    header_rows ::= LINE_TABLE
-          LINE_TABLE_SEPARATOR shift-reduce 150    row ::= LINE_TABLE_SEPARATOR
-                     LINE_HTML shift-reduce 125    html_block ::= LINE_HTML
+             LINE_INDENTED_TAB shift-reduce 97     indented_line ::= LINE_INDENTED_TAB
+           LINE_INDENTED_SPACE shift-reduce 98     indented_line ::= LINE_INDENTED_SPACE
+                    LINE_TABLE shift-reduce 149    header_rows ::= LINE_TABLE
+          LINE_TABLE_SEPARATOR shift-reduce 153    row ::= LINE_TABLE_SEPARATOR
+                     LINE_HTML shift-reduce 128    html_block ::= LINE_HTML
                     LINE_ATX_1 shift-reduce 3      block ::= LINE_ATX_1
                     LINE_ATX_2 shift-reduce 4      block ::= LINE_ATX_2
                     LINE_ATX_3 shift-reduce 5      block ::= LINE_ATX_3
                     LINE_ATX_4 shift-reduce 6      block ::= LINE_ATX_4
                     LINE_ATX_5 shift-reduce 7      block ::= LINE_ATX_5
                     LINE_ATX_6 shift-reduce 8      block ::= LINE_ATX_6
-               LINE_BLOCKQUOTE shift-reduce 99     blockquote ::= LINE_BLOCKQUOTE
+               LINE_BLOCKQUOTE shift-reduce 102    blockquote ::= LINE_BLOCKQUOTE
             LINE_LIST_BULLETED shift        7      
           LINE_LIST_ENUMERATED shift        6      
          LINE_DEF_ABBREVIATION shift        17     
@@ -320,39 +328,39 @@ State 1:
              LINE_DEF_FOOTNOTE shift        3      
              LINE_DEF_GLOSSARY shift        2      
                  LINE_DEF_LINK shift        18     
-                      LINE_TOC shift-reduce 10     block ::= LINE_TOC
+                      LINE_TOC shift-reduce 11     block ::= LINE_TOC
                LINE_DEFINITION shift        5      
-                     LINE_META shift-reduce 140    meta_block ::= LINE_META
-         LINE_FENCE_BACKTICK_3 shift-reduce 110    fenced_3 ::= LINE_FENCE_BACKTICK_3
-         LINE_FENCE_BACKTICK_4 shift-reduce 113    fenced_4 ::= LINE_FENCE_BACKTICK_4
-         LINE_FENCE_BACKTICK_5 shift-reduce 116    fenced_5 ::= LINE_FENCE_BACKTICK_5
-   LINE_FENCE_BACKTICK_START_3 shift-reduce 111    fenced_3 ::= LINE_FENCE_BACKTICK_START_3
-   LINE_FENCE_BACKTICK_START_4 shift-reduce 114    fenced_4 ::= LINE_FENCE_BACKTICK_START_4
-   LINE_FENCE_BACKTICK_START_5 shift-reduce 117    fenced_5 ::= LINE_FENCE_BACKTICK_START_5
-             LINE_STOP_COMMENT shift-reduce 144    para ::= LINE_STOP_COMMENT
-                    LINE_EMPTY shift-reduce 108    empty ::= LINE_EMPTY
-            LINE_START_COMMENT shift-reduce 131    html_comment ::= LINE_START_COMMENT
+                     LINE_META shift-reduce 143    meta_block ::= LINE_META
+         LINE_FENCE_BACKTICK_3 shift-reduce 113    fenced_3 ::= LINE_FENCE_BACKTICK_3
+         LINE_FENCE_BACKTICK_4 shift-reduce 116    fenced_4 ::= LINE_FENCE_BACKTICK_4
+         LINE_FENCE_BACKTICK_5 shift-reduce 119    fenced_5 ::= LINE_FENCE_BACKTICK_5
+   LINE_FENCE_BACKTICK_START_3 shift-reduce 114    fenced_3 ::= LINE_FENCE_BACKTICK_START_3
+   LINE_FENCE_BACKTICK_START_4 shift-reduce 117    fenced_4 ::= LINE_FENCE_BACKTICK_START_4
+   LINE_FENCE_BACKTICK_START_5 shift-reduce 120    fenced_5 ::= LINE_FENCE_BACKTICK_START_5
+             LINE_STOP_COMMENT shift-reduce 147    para ::= LINE_STOP_COMMENT
+                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
+            LINE_START_COMMENT shift-reduce 134    html_comment ::= LINE_START_COMMENT
                          block shift-reduce 1      blocks ::= blocks block
                     blockquote shift        37     
-              def_abbreviation shift-reduce 12     block ::= def_abbreviation
-                  def_citation shift-reduce 13     block ::= def_citation
-                  def_footnote shift-reduce 14     block ::= def_footnote
-                  def_glossary shift-reduce 15     block ::= def_glossary
-                      def_link shift-reduce 16     block ::= def_link
-              definition_block shift-reduce 17     block ::= definition_block
+              def_abbreviation shift-reduce 13     block ::= def_abbreviation
+                  def_citation shift-reduce 14     block ::= def_citation
+                  def_footnote shift-reduce 15     block ::= def_footnote
+                  def_glossary shift-reduce 16     block ::= def_glossary
+                      def_link shift-reduce 17     block ::= def_link
+              definition_block shift-reduce 18     block ::= definition_block
                          empty shift        44     
-                  fenced_block shift-reduce 19     block ::= fenced_block
+                  fenced_block shift-reduce 20     block ::= fenced_block
                     html_block shift        29     
-                html_com_block shift-reduce 21     block ::= html_com_block
-                 indented_code shift        31     
+                html_com_block shift-reduce 22     block ::= html_com_block
+                 indented_code shift        32     
                    list_bullet shift        41     
                      list_enum shift        40     
-                    meta_block shift        35     
+                    meta_block shift        30     
                           para shift        14     
-                      setext_1 shift-reduce 27     block ::= setext_1
-                      setext_2 shift-reduce 28     block ::= setext_2
-                         table shift-reduce 29     block ::= table
-                 indented_line shift        31       /* because indented_line==indented_code */
+                      setext_1 shift-reduce 29     block ::= setext_1
+                      setext_2 shift-reduce 30     block ::= setext_2
+                         table shift-reduce 31     block ::= table
+                 indented_line shift        32       /* because indented_line==indented_code */
                           defs shift        38     
                            def shift        38       /* because def==defs */
                       fenced_3 shift        27     
@@ -381,23 +389,23 @@ State 2:
           tail ::= * opt_ext_chunk
           tail ::= * nested_chunks
           def_glossary ::= LINE_DEF_GLOSSARY * tail
-    (104) def_glossary ::= LINE_DEF_GLOSSARY *
+    (107) def_glossary ::= LINE_DEF_GLOSSARY *
           empty ::= * empty LINE_EMPTY
           empty ::= * LINE_EMPTY
 
-             LINE_CONTINUATION shift-reduce 90     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 91     chunk_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       104     ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 108    empty ::= LINE_EMPTY
-                    LINE_EMPTY reduce       104     ** Parsing conflict **
-                         empty shift        30     
+             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       107     ** Parsing conflict **
+                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
+                    LINE_EMPTY reduce       107     ** Parsing conflict **
+                         empty shift        31     
                          chunk shift        9      
                     chunk_line shift        9        /* because chunk_line==chunk */
                  nested_chunks shift        20     
                   nested_chunk shift        20       /* because nested_chunk==nested_chunks */
-                 opt_ext_chunk shift-reduce 39     def_glossary ::= LINE_DEF_GLOSSARY tail  /* because opt_ext_chunk==tail */
-                          tail shift-reduce 39     def_glossary ::= LINE_DEF_GLOSSARY tail
-                     {default} reduce       104    def_glossary ::= LINE_DEF_GLOSSARY
+                 opt_ext_chunk shift-reduce 41     def_glossary ::= LINE_DEF_GLOSSARY tail  /* because opt_ext_chunk==tail */
+                          tail shift-reduce 41     def_glossary ::= LINE_DEF_GLOSSARY tail
+                     {default} reduce       107    def_glossary ::= LINE_DEF_GLOSSARY
 
 State 3:
           chunk ::= * chunk chunk_line
@@ -414,23 +422,23 @@ State 3:
           tail ::= * opt_ext_chunk
           tail ::= * nested_chunks
           def_footnote ::= LINE_DEF_FOOTNOTE * tail
-    (103) def_footnote ::= LINE_DEF_FOOTNOTE *
+    (106) def_footnote ::= LINE_DEF_FOOTNOTE *
           empty ::= * empty LINE_EMPTY
           empty ::= * LINE_EMPTY
 
-             LINE_CONTINUATION shift-reduce 90     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 91     chunk_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       103     ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 108    empty ::= LINE_EMPTY
-                    LINE_EMPTY reduce       103     ** Parsing conflict **
-                         empty shift        30     
+             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       106     ** Parsing conflict **
+                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
+                    LINE_EMPTY reduce       106     ** Parsing conflict **
+                         empty shift        31     
                          chunk shift        9      
                     chunk_line shift        9        /* because chunk_line==chunk */
                  nested_chunks shift        20     
                   nested_chunk shift        20       /* because nested_chunk==nested_chunks */
-                 opt_ext_chunk shift-reduce 38     def_footnote ::= LINE_DEF_FOOTNOTE tail  /* because opt_ext_chunk==tail */
-                          tail shift-reduce 38     def_footnote ::= LINE_DEF_FOOTNOTE tail
-                     {default} reduce       103    def_footnote ::= LINE_DEF_FOOTNOTE
+                 opt_ext_chunk shift-reduce 40     def_footnote ::= LINE_DEF_FOOTNOTE tail  /* because opt_ext_chunk==tail */
+                          tail shift-reduce 40     def_footnote ::= LINE_DEF_FOOTNOTE tail
+                     {default} reduce       106    def_footnote ::= LINE_DEF_FOOTNOTE
 
 State 4:
           chunk ::= * chunk chunk_line
@@ -447,23 +455,23 @@ State 4:
           tail ::= * opt_ext_chunk
           tail ::= * nested_chunks
           def_citation ::= LINE_DEF_CITATION * tail
-    (102) def_citation ::= LINE_DEF_CITATION *
+    (105) def_citation ::= LINE_DEF_CITATION *
           empty ::= * empty LINE_EMPTY
           empty ::= * LINE_EMPTY
 
-             LINE_CONTINUATION shift-reduce 90     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 91     chunk_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       102     ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 108    empty ::= LINE_EMPTY
-                    LINE_EMPTY reduce       102     ** Parsing conflict **
-                         empty shift        30     
+             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       105     ** Parsing conflict **
+                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
+                    LINE_EMPTY reduce       105     ** Parsing conflict **
+                         empty shift        31     
                          chunk shift        9      
                     chunk_line shift        9        /* because chunk_line==chunk */
                  nested_chunks shift        20     
                   nested_chunk shift        20       /* because nested_chunk==nested_chunks */
-                 opt_ext_chunk shift-reduce 37     def_citation ::= LINE_DEF_CITATION tail  /* because opt_ext_chunk==tail */
-                          tail shift-reduce 37     def_citation ::= LINE_DEF_CITATION tail
-                     {default} reduce       102    def_citation ::= LINE_DEF_CITATION
+                 opt_ext_chunk shift-reduce 39     def_citation ::= LINE_DEF_CITATION tail  /* because opt_ext_chunk==tail */
+                          tail shift-reduce 39     def_citation ::= LINE_DEF_CITATION tail
+                     {default} reduce       105    def_citation ::= LINE_DEF_CITATION
 
 State 5:
           chunk ::= * chunk chunk_line
@@ -480,23 +488,23 @@ State 5:
           tail ::= * opt_ext_chunk
           tail ::= * nested_chunks
           def ::= LINE_DEFINITION * tail
-     (45) def ::= LINE_DEFINITION *
+     (47) def ::= LINE_DEFINITION *
           empty ::= * empty LINE_EMPTY
           empty ::= * LINE_EMPTY
 
-             LINE_CONTINUATION shift-reduce 90     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 91     chunk_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       45      ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 108    empty ::= LINE_EMPTY
-                    LINE_EMPTY reduce       45      ** Parsing conflict **
-                         empty shift        30     
+             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       47      ** Parsing conflict **
+                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
+                    LINE_EMPTY reduce       47      ** Parsing conflict **
+                         empty shift        31     
                          chunk shift        9      
                     chunk_line shift        9        /* because chunk_line==chunk */
                  nested_chunks shift        20     
                   nested_chunk shift        20       /* because nested_chunk==nested_chunks */
-                 opt_ext_chunk shift-reduce 44     def ::= LINE_DEFINITION tail  /* because opt_ext_chunk==tail */
-                          tail shift-reduce 44     def ::= LINE_DEFINITION tail
-                     {default} reduce       45     def ::= LINE_DEFINITION
+                 opt_ext_chunk shift-reduce 46     def ::= LINE_DEFINITION tail  /* because opt_ext_chunk==tail */
+                          tail shift-reduce 46     def ::= LINE_DEFINITION tail
+                     {default} reduce       47     def ::= LINE_DEFINITION
 
 State 6:
           chunk ::= * chunk chunk_line
@@ -514,20 +522,20 @@ State 6:
           item_enum ::= LINE_LIST_ENUMERATED * ext_chunk
           item_enum ::= LINE_LIST_ENUMERATED * chunk
           item_enum ::= LINE_LIST_ENUMERATED * nested_chunks
-     (76) item_enum ::= LINE_LIST_ENUMERATED *
+     (78) item_enum ::= LINE_LIST_ENUMERATED *
 
-             LINE_CONTINUATION shift-reduce 90     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 91     chunk_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       76      ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 108    empty ::= LINE_EMPTY
-                    LINE_EMPTY reduce       76      ** Parsing conflict **
-                         empty shift        30     
+             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       78      ** Parsing conflict **
+                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
+                    LINE_EMPTY reduce       78      ** Parsing conflict **
+                         empty shift        31     
                          chunk shift        10     
                     chunk_line shift        10       /* because chunk_line==chunk */
                  nested_chunks shift        22     
                   nested_chunk shift        22       /* because nested_chunk==nested_chunks */
-                     ext_chunk shift-reduce 73     item_enum ::= LINE_LIST_ENUMERATED ext_chunk
-                     {default} reduce       76     item_enum ::= LINE_LIST_ENUMERATED
+                     ext_chunk shift-reduce 75     item_enum ::= LINE_LIST_ENUMERATED ext_chunk
+                     {default} reduce       78     item_enum ::= LINE_LIST_ENUMERATED
 
 State 7:
           chunk ::= * chunk chunk_line
@@ -545,24 +553,24 @@ State 7:
           item_bullet ::= LINE_LIST_BULLETED * ext_chunk
           item_bullet ::= LINE_LIST_BULLETED * chunk
           item_bullet ::= LINE_LIST_BULLETED * nested_chunks
-     (71) item_bullet ::= LINE_LIST_BULLETED *
-
-             LINE_CONTINUATION shift-reduce 90     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 91     chunk_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       71      ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 108    empty ::= LINE_EMPTY
-                    LINE_EMPTY reduce       71      ** Parsing conflict **
-                         empty shift        30     
+     (73) item_bullet ::= LINE_LIST_BULLETED *
+
+             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       73      ** Parsing conflict **
+                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
+                    LINE_EMPTY reduce       73      ** Parsing conflict **
+                         empty shift        31     
                          chunk shift        11     
                     chunk_line shift        11       /* because chunk_line==chunk */
                  nested_chunks shift        23     
                   nested_chunk shift        23       /* because nested_chunk==nested_chunks */
-                     ext_chunk shift-reduce 68     item_bullet ::= LINE_LIST_BULLETED ext_chunk
-                     {default} reduce       71     item_bullet ::= LINE_LIST_BULLETED
+                     ext_chunk shift-reduce 70     item_bullet ::= LINE_LIST_BULLETED ext_chunk
+                     {default} reduce       73     item_bullet ::= LINE_LIST_BULLETED
 
 State 8:
           table ::= table_header * table_body
-    (145) table ::= table_header *
+    (148) table ::= table_header *
           header_rows ::= * header_rows LINE_TABLE
           header_rows ::= * LINE_TABLE
           table_body ::= * table_body table_section
@@ -574,16 +582,16 @@ State 8:
           row ::= * header_rows
           row ::= * LINE_TABLE_SEPARATOR
 
-                    LINE_TABLE shift-reduce 146    header_rows ::= LINE_TABLE
-                    LINE_TABLE reduce       145     ** Parsing conflict **
-          LINE_TABLE_SEPARATOR shift-reduce 150    row ::= LINE_TABLE_SEPARATOR
-          LINE_TABLE_SEPARATOR reduce       145     ** Parsing conflict **
+                    LINE_TABLE shift-reduce 149    header_rows ::= LINE_TABLE
+                    LINE_TABLE reduce       148     ** Parsing conflict **
+          LINE_TABLE_SEPARATOR shift-reduce 153    row ::= LINE_TABLE_SEPARATOR
+          LINE_TABLE_SEPARATOR reduce       148     ** Parsing conflict **
                     table_body shift        12     
                    header_rows shift        43     
                  table_section shift        12       /* because table_section==table_body */
                       all_rows shift        13     
                            row shift        13       /* because row==all_rows */
-                     {default} reduce       145    table ::= table_header
+                     {default} reduce       148    table ::= table_header
 
 State 9:
           chunk ::= chunk * chunk_line
@@ -595,20 +603,20 @@ State 9:
           nested_chunk ::= * empty indented_line
           nested_chunk ::= * empty
           opt_ext_chunk ::= chunk * nested_chunks
-     (96) opt_ext_chunk ::= chunk *
+     (99) opt_ext_chunk ::= chunk *
           empty ::= * empty LINE_EMPTY
           empty ::= * LINE_EMPTY
 
-             LINE_CONTINUATION shift-reduce 90     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 91     chunk_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       96      ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 108    empty ::= LINE_EMPTY
-                    LINE_EMPTY reduce       96      ** Parsing conflict **
-                         empty shift        30     
-                    chunk_line shift-reduce 30     chunk ::= chunk chunk_line
+             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       99      ** Parsing conflict **
+                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
+                    LINE_EMPTY reduce       99      ** Parsing conflict **
+                         empty shift        31     
+                    chunk_line shift-reduce 32     chunk ::= chunk chunk_line
                  nested_chunks shift        21     
                   nested_chunk shift        21       /* because nested_chunk==nested_chunks */
-                     {default} reduce       96     opt_ext_chunk ::= chunk
+                     {default} reduce       99     opt_ext_chunk ::= chunk
 
 State 10:
           chunk ::= chunk * chunk_line
@@ -622,18 +630,18 @@ State 10:
           ext_chunk ::= chunk * nested_chunks
           empty ::= * empty LINE_EMPTY
           empty ::= * LINE_EMPTY
-     (74) item_enum ::= LINE_LIST_ENUMERATED chunk *
-
-             LINE_CONTINUATION shift-reduce 90     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 91     chunk_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       74      ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 108    empty ::= LINE_EMPTY
-                    LINE_EMPTY reduce       74      ** Parsing conflict **
-                         empty shift        30     
-                    chunk_line shift-reduce 30     chunk ::= chunk chunk_line
+     (76) item_enum ::= LINE_LIST_ENUMERATED chunk *
+
+             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       76      ** Parsing conflict **
+                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
+                    LINE_EMPTY reduce       76      ** Parsing conflict **
+                         empty shift        31     
+                    chunk_line shift-reduce 32     chunk ::= chunk chunk_line
                  nested_chunks shift        24     
                   nested_chunk shift        24       /* because nested_chunk==nested_chunks */
-                     {default} reduce       74     item_enum ::= LINE_LIST_ENUMERATED chunk
+                     {default} reduce       76     item_enum ::= LINE_LIST_ENUMERATED chunk
 
 State 11:
           chunk ::= chunk * chunk_line
@@ -647,21 +655,21 @@ State 11:
           ext_chunk ::= chunk * nested_chunks
           empty ::= * empty LINE_EMPTY
           empty ::= * LINE_EMPTY
-     (69) item_bullet ::= LINE_LIST_BULLETED chunk *
-
-             LINE_CONTINUATION shift-reduce 90     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 91     chunk_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       69      ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 108    empty ::= LINE_EMPTY
-                    LINE_EMPTY reduce       69      ** Parsing conflict **
-                         empty shift        30     
-                    chunk_line shift-reduce 30     chunk ::= chunk chunk_line
+     (71) item_bullet ::= LINE_LIST_BULLETED chunk *
+
+             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       71      ** Parsing conflict **
+                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
+                    LINE_EMPTY reduce       71      ** Parsing conflict **
+                         empty shift        31     
+                    chunk_line shift-reduce 32     chunk ::= chunk chunk_line
                  nested_chunks shift        24     
                   nested_chunk shift        24       /* because nested_chunk==nested_chunks */
-                     {default} reduce       69     item_bullet ::= LINE_LIST_BULLETED chunk
+                     {default} reduce       71     item_bullet ::= LINE_LIST_BULLETED chunk
 
 State 12:
-     (81) table ::= table_header table_body *
+     (84) table ::= table_header table_body *
           header_rows ::= * header_rows LINE_TABLE
           header_rows ::= * LINE_TABLE
           table_body ::= table_body * table_section
@@ -672,37 +680,37 @@ State 12:
           row ::= * header_rows
           row ::= * LINE_TABLE_SEPARATOR
 
-                    LINE_TABLE shift-reduce 146    header_rows ::= LINE_TABLE
-                    LINE_TABLE reduce       81      ** Parsing conflict **
-          LINE_TABLE_SEPARATOR shift-reduce 150    row ::= LINE_TABLE_SEPARATOR
-          LINE_TABLE_SEPARATOR reduce       81      ** Parsing conflict **
+                    LINE_TABLE shift-reduce 149    header_rows ::= LINE_TABLE
+                    LINE_TABLE reduce       84      ** Parsing conflict **
+          LINE_TABLE_SEPARATOR shift-reduce 153    row ::= LINE_TABLE_SEPARATOR
+          LINE_TABLE_SEPARATOR reduce       84      ** Parsing conflict **
                    header_rows shift        43     
-                 table_section shift-reduce 84     table_body ::= table_body table_section
+                 table_section shift-reduce 87     table_body ::= table_body table_section
                       all_rows shift        13     
                            row shift        13       /* because row==all_rows */
-                     {default} reduce       81     table ::= table_header table_body
+                     {default} reduce       84     table ::= table_header table_body
 
 State 13:
           header_rows ::= * header_rows LINE_TABLE
           header_rows ::= * LINE_TABLE
           table_section ::= all_rows * LINE_EMPTY
-     (86) table_section ::= all_rows *
+     (89) table_section ::= all_rows *
           all_rows ::= all_rows * row
           row ::= * header_rows
           row ::= * LINE_TABLE_SEPARATOR
 
-                    LINE_TABLE shift-reduce 146    header_rows ::= LINE_TABLE
-                    LINE_TABLE reduce       86      ** Parsing conflict **
-          LINE_TABLE_SEPARATOR shift-reduce 150    row ::= LINE_TABLE_SEPARATOR
-          LINE_TABLE_SEPARATOR reduce       86      ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 85     table_section ::= all_rows LINE_EMPTY
-                    LINE_EMPTY reduce       86      ** Parsing conflict **
+                    LINE_TABLE shift-reduce 149    header_rows ::= LINE_TABLE
+                    LINE_TABLE reduce       89      ** Parsing conflict **
+          LINE_TABLE_SEPARATOR shift-reduce 153    row ::= LINE_TABLE_SEPARATOR
+          LINE_TABLE_SEPARATOR reduce       89      ** Parsing conflict **
+                    LINE_EMPTY shift-reduce 88     table_section ::= all_rows LINE_EMPTY
+                    LINE_EMPTY reduce       89      ** Parsing conflict **
                    header_rows shift        43     
-                           row shift-reduce 87     all_rows ::= all_rows row
-                     {default} reduce       86     table_section ::= all_rows
+                           row shift-reduce 90     all_rows ::= all_rows row
+                     {default} reduce       89     table_section ::= all_rows
 
 State 14:
-     (26) block ::= para *
+     (28) block ::= para *
           definition_block ::= para * defs
           defs ::= * defs def
           defs ::= * def
@@ -711,13 +719,13 @@ State 14:
           setext_1 ::= para * LINE_SETEXT_1
           setext_2 ::= para * LINE_SETEXT_2
 
-                 LINE_SETEXT_1 shift-reduce 79     setext_1 ::= para LINE_SETEXT_1
-                 LINE_SETEXT_2 shift-reduce 80     setext_2 ::= para LINE_SETEXT_2
+                 LINE_SETEXT_1 shift-reduce 82     setext_1 ::= para LINE_SETEXT_1
+                 LINE_SETEXT_2 shift-reduce 83     setext_2 ::= para LINE_SETEXT_2
                LINE_DEFINITION shift        5      
-               LINE_DEFINITION reduce       26      ** Parsing conflict **
+               LINE_DEFINITION reduce       28      ** Parsing conflict **
                           defs shift        39     
                            def shift        39       /* because def==defs */
-                     {default} reduce       26     block ::= para
+                     {default} reduce       28     block ::= para
 
 State 15:
           header_rows ::= * header_rows LINE_TABLE
@@ -725,15 +733,15 @@ State 15:
           all_rows ::= all_rows * row
           row ::= * header_rows
           row ::= * LINE_TABLE_SEPARATOR
-     (88) para ::= all_rows *
+     (91) para ::= all_rows *
 
-                    LINE_TABLE shift-reduce 146    header_rows ::= LINE_TABLE
-                    LINE_TABLE reduce       88      ** Parsing conflict **
-          LINE_TABLE_SEPARATOR shift-reduce 150    row ::= LINE_TABLE_SEPARATOR
-          LINE_TABLE_SEPARATOR reduce       88      ** Parsing conflict **
+                    LINE_TABLE shift-reduce 149    header_rows ::= LINE_TABLE
+                    LINE_TABLE reduce       91      ** Parsing conflict **
+          LINE_TABLE_SEPARATOR shift-reduce 153    row ::= LINE_TABLE_SEPARATOR
+          LINE_TABLE_SEPARATOR reduce       91      ** Parsing conflict **
                    header_rows shift        43     
-                           row shift-reduce 87     all_rows ::= all_rows row
-                     {default} reduce       88     para ::= all_rows
+                           row shift-reduce 90     all_rows ::= all_rows row
+                     {default} reduce       91     para ::= all_rows
 
 State 16:
           chunk ::= * chunk chunk_line
@@ -741,14 +749,14 @@ State 16:
           chunk_line ::= * LINE_CONTINUATION
           chunk_line ::= * LINE_STOP_COMMENT
           para ::= LINE_PLAIN * chunk
-    (143) para ::= LINE_PLAIN *
+    (146) para ::= LINE_PLAIN *
 
-             LINE_CONTINUATION shift-reduce 90     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 91     chunk_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       143     ** Parsing conflict **
-                         chunk shift        32     
-                    chunk_line shift        32       /* because chunk_line==chunk */
-                     {default} reduce       143    para ::= LINE_PLAIN
+             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       146     ** Parsing conflict **
+                         chunk shift        33     
+                    chunk_line shift        33       /* because chunk_line==chunk */
+                     {default} reduce       146    para ::= LINE_PLAIN
 
 State 17:
           chunk ::= * chunk chunk_line
@@ -756,14 +764,14 @@ State 17:
           chunk_line ::= * LINE_CONTINUATION
           chunk_line ::= * LINE_STOP_COMMENT
           def_abbreviation ::= LINE_DEF_ABBREVIATION * chunk
-    (106) def_abbreviation ::= LINE_DEF_ABBREVIATION *
+    (109) def_abbreviation ::= LINE_DEF_ABBREVIATION *
 
-             LINE_CONTINUATION shift-reduce 90     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 91     chunk_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       106     ** Parsing conflict **
-                         chunk shift        33     
-                    chunk_line shift        33       /* because chunk_line==chunk */
-                     {default} reduce       106    def_abbreviation ::= LINE_DEF_ABBREVIATION
+             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       109     ** Parsing conflict **
+                         chunk shift        34     
+                    chunk_line shift        34       /* because chunk_line==chunk */
+                     {default} reduce       109    def_abbreviation ::= LINE_DEF_ABBREVIATION
 
 State 18:
           chunk ::= * chunk chunk_line
@@ -771,14 +779,14 @@ State 18:
           chunk_line ::= * LINE_CONTINUATION
           chunk_line ::= * LINE_STOP_COMMENT
           def_link ::= LINE_DEF_LINK * chunk
-    (105) def_link ::= LINE_DEF_LINK *
+    (108) def_link ::= LINE_DEF_LINK *
 
-             LINE_CONTINUATION shift-reduce 90     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 91     chunk_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       105     ** Parsing conflict **
-                         chunk shift        34     
-                    chunk_line shift        34       /* because chunk_line==chunk */
-                     {default} reduce       105    def_link ::= LINE_DEF_LINK
+             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       108     ** Parsing conflict **
+                         chunk shift        35     
+                    chunk_line shift        35       /* because chunk_line==chunk */
+                     {default} reduce       108    def_link ::= LINE_DEF_LINK
 
 State 19:
           chunk ::= * chunk chunk_line
@@ -786,44 +794,44 @@ State 19:
           chunk_line ::= * LINE_CONTINUATION
           chunk_line ::= * LINE_STOP_COMMENT
           nested_chunk ::= empty indented_line * chunk
-     (33) nested_chunk ::= empty indented_line *
+     (35) nested_chunk ::= empty indented_line *
 
-             LINE_CONTINUATION shift-reduce 90     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 91     chunk_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       33      ** Parsing conflict **
+             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       35      ** Parsing conflict **
                          chunk shift        36     
                     chunk_line shift        36       /* because chunk_line==chunk */
-                     {default} reduce       33     nested_chunk ::= empty indented_line
+                     {default} reduce       35     nested_chunk ::= empty indented_line
 
 State 20:
           nested_chunks ::= nested_chunks * nested_chunk
           nested_chunk ::= * empty indented_line chunk
           nested_chunk ::= * empty indented_line
           nested_chunk ::= * empty
-     (98) tail ::= nested_chunks *
+    (101) tail ::= nested_chunks *
           empty ::= * empty LINE_EMPTY
           empty ::= * LINE_EMPTY
 
-                    LINE_EMPTY shift-reduce 108    empty ::= LINE_EMPTY
-                    LINE_EMPTY reduce       98      ** Parsing conflict **
-                         empty shift        30     
-                  nested_chunk shift-reduce 31     nested_chunks ::= nested_chunks nested_chunk
-                     {default} reduce       98     tail ::= nested_chunks
+                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
+                    LINE_EMPTY reduce       101     ** Parsing conflict **
+                         empty shift        31     
+                  nested_chunk shift-reduce 33     nested_chunks ::= nested_chunks nested_chunk
+                     {default} reduce       101    tail ::= nested_chunks
 
 State 21:
           nested_chunks ::= nested_chunks * nested_chunk
           nested_chunk ::= * empty indented_line chunk
           nested_chunk ::= * empty indented_line
           nested_chunk ::= * empty
-     (35) opt_ext_chunk ::= chunk nested_chunks *
+     (37) opt_ext_chunk ::= chunk nested_chunks *
           empty ::= * empty LINE_EMPTY
           empty ::= * LINE_EMPTY
 
-                    LINE_EMPTY shift-reduce 108    empty ::= LINE_EMPTY
-                    LINE_EMPTY reduce       35      ** Parsing conflict **
-                         empty shift        30     
-                  nested_chunk shift-reduce 31     nested_chunks ::= nested_chunks nested_chunk
-                     {default} reduce       35     opt_ext_chunk ::= chunk nested_chunks
+                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
+                    LINE_EMPTY reduce       37      ** Parsing conflict **
+                         empty shift        31     
+                  nested_chunk shift-reduce 33     nested_chunks ::= nested_chunks nested_chunk
+                     {default} reduce       37     opt_ext_chunk ::= chunk nested_chunks
 
 State 22:
           nested_chunks ::= nested_chunks * nested_chunk
@@ -832,13 +840,13 @@ State 22:
           nested_chunk ::= * empty
           empty ::= * empty LINE_EMPTY
           empty ::= * LINE_EMPTY
-     (75) item_enum ::= LINE_LIST_ENUMERATED nested_chunks *
+     (77) item_enum ::= LINE_LIST_ENUMERATED nested_chunks *
 
-                    LINE_EMPTY shift-reduce 108    empty ::= LINE_EMPTY
-                    LINE_EMPTY reduce       75      ** Parsing conflict **
-                         empty shift        30     
-                  nested_chunk shift-reduce 31     nested_chunks ::= nested_chunks nested_chunk
-                     {default} reduce       75     item_enum ::= LINE_LIST_ENUMERATED nested_chunks
+                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
+                    LINE_EMPTY reduce       77      ** Parsing conflict **
+                         empty shift        31     
+                  nested_chunk shift-reduce 33     nested_chunks ::= nested_chunks nested_chunk
+                     {default} reduce       77     item_enum ::= LINE_LIST_ENUMERATED nested_chunks
 
 State 23:
           nested_chunks ::= nested_chunks * nested_chunk
@@ -847,32 +855,32 @@ State 23:
           nested_chunk ::= * empty
           empty ::= * empty LINE_EMPTY
           empty ::= * LINE_EMPTY
-     (70) item_bullet ::= LINE_LIST_BULLETED nested_chunks *
+     (72) item_bullet ::= LINE_LIST_BULLETED nested_chunks *
 
-                    LINE_EMPTY shift-reduce 108    empty ::= LINE_EMPTY
-                    LINE_EMPTY reduce       70      ** Parsing conflict **
-                         empty shift        30     
-                  nested_chunk shift-reduce 31     nested_chunks ::= nested_chunks nested_chunk
-                     {default} reduce       70     item_bullet ::= LINE_LIST_BULLETED nested_chunks
+                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
+                    LINE_EMPTY reduce       72      ** Parsing conflict **
+                         empty shift        31     
+                  nested_chunk shift-reduce 33     nested_chunks ::= nested_chunks nested_chunk
+                     {default} reduce       72     item_bullet ::= LINE_LIST_BULLETED nested_chunks
 
 State 24:
           nested_chunks ::= nested_chunks * nested_chunk
           nested_chunk ::= * empty indented_line chunk
           nested_chunk ::= * empty indented_line
           nested_chunk ::= * empty
-     (34) ext_chunk ::= chunk nested_chunks *
+     (36) ext_chunk ::= chunk nested_chunks *
           empty ::= * empty LINE_EMPTY
           empty ::= * LINE_EMPTY
 
-                    LINE_EMPTY shift-reduce 108    empty ::= LINE_EMPTY
-                    LINE_EMPTY reduce       34      ** Parsing conflict **
-                         empty shift        30     
-                  nested_chunk shift-reduce 31     nested_chunks ::= nested_chunks nested_chunk
-                     {default} reduce       34     ext_chunk ::= chunk nested_chunks
+                    LINE_EMPTY shift-reduce 111    empty ::= LINE_EMPTY
+                    LINE_EMPTY reduce       36      ** Parsing conflict **
+                         empty shift        31     
+                  nested_chunk shift-reduce 33     nested_chunks ::= nested_chunks nested_chunk
+                     {default} reduce       36     ext_chunk ::= chunk nested_chunks
 
 State 25:
           fenced_block ::= fenced_5 * LINE_FENCE_BACKTICK_5
-    (115) fenced_block ::= fenced_5 *
+    (118) fenced_block ::= fenced_5 *
           fenced_5 ::= fenced_5 * fenced_line
           fenced_5 ::= fenced_5 * LINE_FENCE_BACKTICK_3
           fenced_5 ::= fenced_5 * LINE_FENCE_BACKTICK_START_3
@@ -886,35 +894,35 @@ State 25:
           fenced_line ::= * LINE_START_COMMENT
           fenced_line ::= * LINE_STOP_COMMENT
 
-                       LINE_HR shift-reduce 121    fenced_line ::= LINE_HR
-                       LINE_HR reduce       115     ** Parsing conflict **
-             LINE_CONTINUATION shift-reduce 118    fenced_line ::= LINE_CONTINUATION
-                 LINE_FALLBACK shift-reduce 120    fenced_line ::= LINE_FALLBACK
-                     LINE_HTML shift-reduce 122    fenced_line ::= LINE_HTML
-                     LINE_HTML reduce       115     ** Parsing conflict **
-         LINE_FENCE_BACKTICK_3 shift-reduce 58     fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_3
-         LINE_FENCE_BACKTICK_3 reduce       115     ** Parsing conflict **
-         LINE_FENCE_BACKTICK_4 shift-reduce 60     fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_4
-         LINE_FENCE_BACKTICK_4 reduce       115     ** Parsing conflict **
-         LINE_FENCE_BACKTICK_5 shift-reduce 56     fenced_block ::= fenced_5 LINE_FENCE_BACKTICK_5
-         LINE_FENCE_BACKTICK_5 reduce       115     ** Parsing conflict **
-   LINE_FENCE_BACKTICK_START_3 shift-reduce 59     fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_START_3
-   LINE_FENCE_BACKTICK_START_3 reduce       115     ** Parsing conflict **
-   LINE_FENCE_BACKTICK_START_4 shift-reduce 61     fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_START_4
-   LINE_FENCE_BACKTICK_START_4 reduce       115     ** Parsing conflict **
-             LINE_STOP_COMMENT shift-reduce 124    fenced_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       115     ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 119    fenced_line ::= LINE_EMPTY
-                    LINE_EMPTY reduce       115     ** Parsing conflict **
-            LINE_START_COMMENT shift-reduce 123    fenced_line ::= LINE_START_COMMENT
-            LINE_START_COMMENT reduce       115     ** Parsing conflict **
-                   fenced_line shift-reduce 57     fenced_5 ::= fenced_5 fenced_line
-                     {default} reduce       115    fenced_block ::= fenced_5
+                       LINE_HR shift-reduce 124    fenced_line ::= LINE_HR
+                       LINE_HR reduce       118     ** Parsing conflict **
+             LINE_CONTINUATION shift-reduce 121    fenced_line ::= LINE_CONTINUATION
+                 LINE_FALLBACK shift-reduce 123    fenced_line ::= LINE_FALLBACK
+                     LINE_HTML shift-reduce 125    fenced_line ::= LINE_HTML
+                     LINE_HTML reduce       118     ** Parsing conflict **
+         LINE_FENCE_BACKTICK_3 shift-reduce 60     fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_3
+         LINE_FENCE_BACKTICK_3 reduce       118     ** Parsing conflict **
+         LINE_FENCE_BACKTICK_4 shift-reduce 62     fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_4
+         LINE_FENCE_BACKTICK_4 reduce       118     ** Parsing conflict **
+         LINE_FENCE_BACKTICK_5 shift-reduce 58     fenced_block ::= fenced_5 LINE_FENCE_BACKTICK_5
+         LINE_FENCE_BACKTICK_5 reduce       118     ** Parsing conflict **
+   LINE_FENCE_BACKTICK_START_3 shift-reduce 61     fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_START_3
+   LINE_FENCE_BACKTICK_START_3 reduce       118     ** Parsing conflict **
+   LINE_FENCE_BACKTICK_START_4 shift-reduce 63     fenced_5 ::= fenced_5 LINE_FENCE_BACKTICK_START_4
+   LINE_FENCE_BACKTICK_START_4 reduce       118     ** Parsing conflict **
+             LINE_STOP_COMMENT shift-reduce 127    fenced_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       118     ** Parsing conflict **
+                    LINE_EMPTY shift-reduce 122    fenced_line ::= LINE_EMPTY
+                    LINE_EMPTY reduce       118     ** Parsing conflict **
+            LINE_START_COMMENT shift-reduce 126    fenced_line ::= LINE_START_COMMENT
+            LINE_START_COMMENT reduce       118     ** Parsing conflict **
+                   fenced_line shift-reduce 59     fenced_5 ::= fenced_5 fenced_line
+                     {default} reduce       118    fenced_block ::= fenced_5
 
 State 26:
           fenced_block ::= fenced_4 * LINE_FENCE_BACKTICK_4
           fenced_block ::= fenced_4 * LINE_FENCE_BACKTICK_5
-    (112) fenced_block ::= fenced_4 *
+    (115) fenced_block ::= fenced_4 *
           fenced_4 ::= fenced_4 * fenced_line
           fenced_4 ::= fenced_4 * LINE_FENCE_BACKTICK_3
           fenced_4 ::= fenced_4 * LINE_FENCE_BACKTICK_START_3
@@ -926,34 +934,34 @@ State 26:
           fenced_line ::= * LINE_START_COMMENT
           fenced_line ::= * LINE_STOP_COMMENT
 
-                       LINE_HR shift-reduce 121    fenced_line ::= LINE_HR
-                       LINE_HR reduce       112     ** Parsing conflict **
-             LINE_CONTINUATION shift-reduce 118    fenced_line ::= LINE_CONTINUATION
-                 LINE_FALLBACK shift-reduce 120    fenced_line ::= LINE_FALLBACK
-                     LINE_HTML shift-reduce 122    fenced_line ::= LINE_HTML
-                     LINE_HTML reduce       112     ** Parsing conflict **
-         LINE_FENCE_BACKTICK_3 shift-reduce 54     fenced_4 ::= fenced_4 LINE_FENCE_BACKTICK_3
-         LINE_FENCE_BACKTICK_3 reduce       112     ** Parsing conflict **
-         LINE_FENCE_BACKTICK_4 shift-reduce 51     fenced_block ::= fenced_4 LINE_FENCE_BACKTICK_4
-         LINE_FENCE_BACKTICK_4 reduce       112     ** Parsing conflict **
-         LINE_FENCE_BACKTICK_5 shift-reduce 52     fenced_block ::= fenced_4 LINE_FENCE_BACKTICK_5
-         LINE_FENCE_BACKTICK_5 reduce       112     ** Parsing conflict **
-   LINE_FENCE_BACKTICK_START_3 shift-reduce 55     fenced_4 ::= fenced_4 LINE_FENCE_BACKTICK_START_3
-   LINE_FENCE_BACKTICK_START_3 reduce       112     ** Parsing conflict **
-             LINE_STOP_COMMENT shift-reduce 124    fenced_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       112     ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 119    fenced_line ::= LINE_EMPTY
-                    LINE_EMPTY reduce       112     ** Parsing conflict **
-            LINE_START_COMMENT shift-reduce 123    fenced_line ::= LINE_START_COMMENT
-            LINE_START_COMMENT reduce       112     ** Parsing conflict **
-                   fenced_line shift-reduce 53     fenced_4 ::= fenced_4 fenced_line
-                     {default} reduce       112    fenced_block ::= fenced_4
+                       LINE_HR shift-reduce 124    fenced_line ::= LINE_HR
+                       LINE_HR reduce       115     ** Parsing conflict **
+             LINE_CONTINUATION shift-reduce 121    fenced_line ::= LINE_CONTINUATION
+                 LINE_FALLBACK shift-reduce 123    fenced_line ::= LINE_FALLBACK
+                     LINE_HTML shift-reduce 125    fenced_line ::= LINE_HTML
+                     LINE_HTML reduce       115     ** Parsing conflict **
+         LINE_FENCE_BACKTICK_3 shift-reduce 56     fenced_4 ::= fenced_4 LINE_FENCE_BACKTICK_3
+         LINE_FENCE_BACKTICK_3 reduce       115     ** Parsing conflict **
+         LINE_FENCE_BACKTICK_4 shift-reduce 53     fenced_block ::= fenced_4 LINE_FENCE_BACKTICK_4
+         LINE_FENCE_BACKTICK_4 reduce       115     ** Parsing conflict **
+         LINE_FENCE_BACKTICK_5 shift-reduce 54     fenced_block ::= fenced_4 LINE_FENCE_BACKTICK_5
+         LINE_FENCE_BACKTICK_5 reduce       115     ** Parsing conflict **
+   LINE_FENCE_BACKTICK_START_3 shift-reduce 57     fenced_4 ::= fenced_4 LINE_FENCE_BACKTICK_START_3
+   LINE_FENCE_BACKTICK_START_3 reduce       115     ** Parsing conflict **
+             LINE_STOP_COMMENT shift-reduce 127    fenced_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       115     ** Parsing conflict **
+                    LINE_EMPTY shift-reduce 122    fenced_line ::= LINE_EMPTY
+                    LINE_EMPTY reduce       115     ** Parsing conflict **
+            LINE_START_COMMENT shift-reduce 126    fenced_line ::= LINE_START_COMMENT
+            LINE_START_COMMENT reduce       115     ** Parsing conflict **
+                   fenced_line shift-reduce 55     fenced_4 ::= fenced_4 fenced_line
+                     {default} reduce       115    fenced_block ::= fenced_4
 
 State 27:
           fenced_block ::= fenced_3 * LINE_FENCE_BACKTICK_3
           fenced_block ::= fenced_3 * LINE_FENCE_BACKTICK_4
           fenced_block ::= fenced_3 * LINE_FENCE_BACKTICK_5
-    (109) fenced_block ::= fenced_3 *
+    (112) fenced_block ::= fenced_3 *
           fenced_3 ::= fenced_3 * fenced_line
           fenced_line ::= * LINE_CONTINUATION
           fenced_line ::= * LINE_EMPTY
@@ -963,30 +971,30 @@ State 27:
           fenced_line ::= * LINE_START_COMMENT
           fenced_line ::= * LINE_STOP_COMMENT
 
-                       LINE_HR shift-reduce 121    fenced_line ::= LINE_HR
-                       LINE_HR reduce       109     ** Parsing conflict **
-             LINE_CONTINUATION shift-reduce 118    fenced_line ::= LINE_CONTINUATION
-                 LINE_FALLBACK shift-reduce 120    fenced_line ::= LINE_FALLBACK
-                     LINE_HTML shift-reduce 122    fenced_line ::= LINE_HTML
-                     LINE_HTML reduce       109     ** Parsing conflict **
-         LINE_FENCE_BACKTICK_3 shift-reduce 47     fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_3
-         LINE_FENCE_BACKTICK_3 reduce       109     ** Parsing conflict **
-         LINE_FENCE_BACKTICK_4 shift-reduce 48     fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_4
-         LINE_FENCE_BACKTICK_4 reduce       109     ** Parsing conflict **
-         LINE_FENCE_BACKTICK_5 shift-reduce 49     fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_5
-         LINE_FENCE_BACKTICK_5 reduce       109     ** Parsing conflict **
-             LINE_STOP_COMMENT shift-reduce 124    fenced_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       109     ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 119    fenced_line ::= LINE_EMPTY
-                    LINE_EMPTY reduce       109     ** Parsing conflict **
-            LINE_START_COMMENT shift-reduce 123    fenced_line ::= LINE_START_COMMENT
-            LINE_START_COMMENT reduce       109     ** Parsing conflict **
-                   fenced_line shift-reduce 50     fenced_3 ::= fenced_3 fenced_line
-                     {default} reduce       109    fenced_block ::= fenced_3
+                       LINE_HR shift-reduce 124    fenced_line ::= LINE_HR
+                       LINE_HR reduce       112     ** Parsing conflict **
+             LINE_CONTINUATION shift-reduce 121    fenced_line ::= LINE_CONTINUATION
+                 LINE_FALLBACK shift-reduce 123    fenced_line ::= LINE_FALLBACK
+                     LINE_HTML shift-reduce 125    fenced_line ::= LINE_HTML
+                     LINE_HTML reduce       112     ** Parsing conflict **
+         LINE_FENCE_BACKTICK_3 shift-reduce 49     fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_3
+         LINE_FENCE_BACKTICK_3 reduce       112     ** Parsing conflict **
+         LINE_FENCE_BACKTICK_4 shift-reduce 50     fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_4
+         LINE_FENCE_BACKTICK_4 reduce       112     ** Parsing conflict **
+         LINE_FENCE_BACKTICK_5 shift-reduce 51     fenced_block ::= fenced_3 LINE_FENCE_BACKTICK_5
+         LINE_FENCE_BACKTICK_5 reduce       112     ** Parsing conflict **
+             LINE_STOP_COMMENT shift-reduce 127    fenced_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       112     ** Parsing conflict **
+                    LINE_EMPTY shift-reduce 122    fenced_line ::= LINE_EMPTY
+                    LINE_EMPTY reduce       112     ** Parsing conflict **
+            LINE_START_COMMENT shift-reduce 126    fenced_line ::= LINE_START_COMMENT
+            LINE_START_COMMENT reduce       112     ** Parsing conflict **
+                   fenced_line shift-reduce 52     fenced_3 ::= fenced_3 fenced_line
+                     {default} reduce       112    fenced_block ::= fenced_3
 
 State 28:
           html_com_block ::= html_comment * LINE_STOP_COMMENT
-    (130) html_com_block ::= html_comment *
+    (133) html_com_block ::= html_comment *
           html_comment ::= html_comment * comment_line
           comment_line ::= * LINE_CONTINUATION
           comment_line ::= * LINE_EMPTY
@@ -994,165 +1002,167 @@ State 28:
           comment_line ::= * LINE_HR
           comment_line ::= * LINE_HTML
 
-                       LINE_HR shift-reduce 135    comment_line ::= LINE_HR
-                       LINE_HR reduce       130     ** Parsing conflict **
-             LINE_CONTINUATION shift-reduce 132    comment_line ::= LINE_CONTINUATION
-                 LINE_FALLBACK shift-reduce 134    comment_line ::= LINE_FALLBACK
-                     LINE_HTML shift-reduce 136    comment_line ::= LINE_HTML
-                     LINE_HTML reduce       130     ** Parsing conflict **
-             LINE_STOP_COMMENT shift-reduce 63     html_com_block ::= html_comment LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       130     ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 133    comment_line ::= LINE_EMPTY
-                    LINE_EMPTY reduce       130     ** Parsing conflict **
-                  comment_line shift-reduce 64     html_comment ::= html_comment comment_line
-                     {default} reduce       130    html_com_block ::= html_comment
+                       LINE_HR shift-reduce 138    comment_line ::= LINE_HR
+                       LINE_HR reduce       133     ** Parsing conflict **
+             LINE_CONTINUATION shift-reduce 135    comment_line ::= LINE_CONTINUATION
+                 LINE_FALLBACK shift-reduce 137    comment_line ::= LINE_FALLBACK
+                     LINE_HTML shift-reduce 139    comment_line ::= LINE_HTML
+                     LINE_HTML reduce       133     ** Parsing conflict **
+             LINE_STOP_COMMENT shift-reduce 65     html_com_block ::= html_comment LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       133     ** Parsing conflict **
+                    LINE_EMPTY shift-reduce 136    comment_line ::= LINE_EMPTY
+                    LINE_EMPTY reduce       133     ** Parsing conflict **
+                  comment_line shift-reduce 66     html_comment ::= html_comment comment_line
+                     {default} reduce       133    html_com_block ::= html_comment
 
 State 29:
-     (20) block ::= html_block *
+     (21) block ::= html_block *
           html_block ::= html_block * html_line
           html_line ::= * LINE_CONTINUATION
           html_line ::= * LINE_FALLBACK
           html_line ::= * LINE_HR
           html_line ::= * LINE_HTML
 
-                       LINE_HR shift-reduce 128    html_line ::= LINE_HR
-                       LINE_HR reduce       20      ** Parsing conflict **
-             LINE_CONTINUATION shift-reduce 126    html_line ::= LINE_CONTINUATION
-                 LINE_FALLBACK shift-reduce 127    html_line ::= LINE_FALLBACK
-                     LINE_HTML shift-reduce 129    html_line ::= LINE_HTML
-                     LINE_HTML reduce       20      ** Parsing conflict **
-                     html_line shift-reduce 62     html_block ::= html_block html_line
-                     {default} reduce       20     block ::= html_block
+                       LINE_HR shift-reduce 131    html_line ::= LINE_HR
+                       LINE_HR reduce       21      ** Parsing conflict **
+             LINE_CONTINUATION shift-reduce 129    html_line ::= LINE_CONTINUATION
+                 LINE_FALLBACK shift-reduce 130    html_line ::= LINE_FALLBACK
+                     LINE_HTML shift-reduce 132    html_line ::= LINE_HTML
+                     LINE_HTML reduce       21      ** Parsing conflict **
+                     html_line shift-reduce 64     html_block ::= html_block html_line
+                     {default} reduce       21     block ::= html_block
 
 State 30:
+     (26) block ::= meta_block *
+          block ::= meta_block * LINE_SETEXT_2
+          meta_block ::= meta_block * meta_line
+          meta_line ::= * LINE_META
+          meta_line ::= * LINE_CONTINUATION
+
+                 LINE_SETEXT_2 shift-reduce 27     block ::= meta_block LINE_SETEXT_2
+             LINE_CONTINUATION shift-reduce 145    meta_line ::= LINE_CONTINUATION
+                     LINE_META shift-reduce 144    meta_line ::= LINE_META
+                     LINE_META reduce       26      ** Parsing conflict **
+                     meta_line shift-reduce 79     meta_block ::= meta_block meta_line
+                     {default} reduce       26     block ::= meta_block
+
+State 31:
           nested_chunk ::= empty * indented_line chunk
           nested_chunk ::= empty * indented_line
-     (93) nested_chunk ::= empty *
+     (96) nested_chunk ::= empty *
           indented_line ::= * LINE_INDENTED_TAB
           indented_line ::= * LINE_INDENTED_SPACE
           empty ::= empty * LINE_EMPTY
 
-             LINE_INDENTED_TAB shift-reduce 94     indented_line ::= LINE_INDENTED_TAB
-             LINE_INDENTED_TAB reduce       93      ** Parsing conflict **
-           LINE_INDENTED_SPACE shift-reduce 95     indented_line ::= LINE_INDENTED_SPACE
-           LINE_INDENTED_SPACE reduce       93      ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 46     empty ::= empty LINE_EMPTY
-                    LINE_EMPTY reduce       93      ** Parsing conflict **
+             LINE_INDENTED_TAB shift-reduce 97     indented_line ::= LINE_INDENTED_TAB
+             LINE_INDENTED_TAB reduce       96      ** Parsing conflict **
+           LINE_INDENTED_SPACE shift-reduce 98     indented_line ::= LINE_INDENTED_SPACE
+           LINE_INDENTED_SPACE reduce       96      ** Parsing conflict **
+                    LINE_EMPTY shift-reduce 48     empty ::= empty LINE_EMPTY
+                    LINE_EMPTY reduce       96      ** Parsing conflict **
                  indented_line shift        19     
-                     {default} reduce       93     nested_chunk ::= empty
+                     {default} reduce       96     nested_chunk ::= empty
 
-State 31:
-     (22) block ::= indented_code *
+State 32:
+     (23) block ::= indented_code *
           indented_line ::= * LINE_INDENTED_TAB
           indented_line ::= * LINE_INDENTED_SPACE
           indented_code ::= indented_code * indented_line
           indented_code ::= indented_code * LINE_EMPTY
 
-             LINE_INDENTED_TAB shift-reduce 94     indented_line ::= LINE_INDENTED_TAB
-             LINE_INDENTED_TAB reduce       22      ** Parsing conflict **
-           LINE_INDENTED_SPACE shift-reduce 95     indented_line ::= LINE_INDENTED_SPACE
-           LINE_INDENTED_SPACE reduce       22      ** Parsing conflict **
-                    LINE_EMPTY shift-reduce 66     indented_code ::= indented_code LINE_EMPTY
-                    LINE_EMPTY reduce       22      ** Parsing conflict **
-                 indented_line shift-reduce 65     indented_code ::= indented_code indented_line
-                     {default} reduce       22     block ::= indented_code
-
-State 32:
-          chunk ::= chunk * chunk_line
-          chunk_line ::= * LINE_CONTINUATION
-          chunk_line ::= * LINE_STOP_COMMENT
-     (78) para ::= LINE_PLAIN chunk *
-
-             LINE_CONTINUATION shift-reduce 90     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 91     chunk_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       78      ** Parsing conflict **
-                    chunk_line shift-reduce 30     chunk ::= chunk chunk_line
-                     {default} reduce       78     para ::= LINE_PLAIN chunk
+             LINE_INDENTED_TAB shift-reduce 97     indented_line ::= LINE_INDENTED_TAB
+             LINE_INDENTED_TAB reduce       23      ** Parsing conflict **
+           LINE_INDENTED_SPACE shift-reduce 98     indented_line ::= LINE_INDENTED_SPACE
+           LINE_INDENTED_SPACE reduce       23      ** Parsing conflict **
+                    LINE_EMPTY shift-reduce 68     indented_code ::= indented_code LINE_EMPTY
+                    LINE_EMPTY reduce       23      ** Parsing conflict **
+                 indented_line shift-reduce 67     indented_code ::= indented_code indented_line
+                     {default} reduce       23     block ::= indented_code
 
 State 33:
           chunk ::= chunk * chunk_line
           chunk_line ::= * LINE_CONTINUATION
           chunk_line ::= * LINE_STOP_COMMENT
-     (41) def_abbreviation ::= LINE_DEF_ABBREVIATION chunk *
+     (81) para ::= LINE_PLAIN chunk *
 
-             LINE_CONTINUATION shift-reduce 90     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 91     chunk_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       41      ** Parsing conflict **
-                    chunk_line shift-reduce 30     chunk ::= chunk chunk_line
-                     {default} reduce       41     def_abbreviation ::= LINE_DEF_ABBREVIATION chunk
+             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       81      ** Parsing conflict **
+                    chunk_line shift-reduce 32     chunk ::= chunk chunk_line
+                     {default} reduce       81     para ::= LINE_PLAIN chunk
 
 State 34:
           chunk ::= chunk * chunk_line
           chunk_line ::= * LINE_CONTINUATION
           chunk_line ::= * LINE_STOP_COMMENT
-     (40) def_link ::= LINE_DEF_LINK chunk *
+     (43) def_abbreviation ::= LINE_DEF_ABBREVIATION chunk *
 
-             LINE_CONTINUATION shift-reduce 90     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 91     chunk_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       40      ** Parsing conflict **
-                    chunk_line shift-reduce 30     chunk ::= chunk chunk_line
-                     {default} reduce       40     def_link ::= LINE_DEF_LINK chunk
+             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       43      ** Parsing conflict **
+                    chunk_line shift-reduce 32     chunk ::= chunk chunk_line
+                     {default} reduce       43     def_abbreviation ::= LINE_DEF_ABBREVIATION chunk
 
 State 35:
-     (25) block ::= meta_block *
-          meta_block ::= meta_block * meta_line
-          meta_line ::= * LINE_META
-          meta_line ::= * LINE_CONTINUATION
+          chunk ::= chunk * chunk_line
+          chunk_line ::= * LINE_CONTINUATION
+          chunk_line ::= * LINE_STOP_COMMENT
+     (42) def_link ::= LINE_DEF_LINK chunk *
 
-             LINE_CONTINUATION shift-reduce 142    meta_line ::= LINE_CONTINUATION
-                     LINE_META shift-reduce 141    meta_line ::= LINE_META
-                     LINE_META reduce       25      ** Parsing conflict **
-                     meta_line shift-reduce 77     meta_block ::= meta_block meta_line
-                     {default} reduce       25     block ::= meta_block
+             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       42      ** Parsing conflict **
+                    chunk_line shift-reduce 32     chunk ::= chunk chunk_line
+                     {default} reduce       42     def_link ::= LINE_DEF_LINK chunk
 
 State 36:
           chunk ::= chunk * chunk_line
           chunk_line ::= * LINE_CONTINUATION
           chunk_line ::= * LINE_STOP_COMMENT
-     (32) nested_chunk ::= empty indented_line chunk *
+     (34) nested_chunk ::= empty indented_line chunk *
 
-             LINE_CONTINUATION shift-reduce 90     chunk_line ::= LINE_CONTINUATION
-             LINE_STOP_COMMENT shift-reduce 91     chunk_line ::= LINE_STOP_COMMENT
-             LINE_STOP_COMMENT reduce       32      ** Parsing conflict **
-                    chunk_line shift-reduce 30     chunk ::= chunk chunk_line
-                     {default} reduce       32     nested_chunk ::= empty indented_line chunk
+             LINE_CONTINUATION shift-reduce 93     chunk_line ::= LINE_CONTINUATION
+             LINE_STOP_COMMENT shift-reduce 94     chunk_line ::= LINE_STOP_COMMENT
+             LINE_STOP_COMMENT reduce       34      ** Parsing conflict **
+                    chunk_line shift-reduce 32     chunk ::= chunk chunk_line
+                     {default} reduce       34     nested_chunk ::= empty indented_line chunk
 
 State 37:
-     (11) block ::= blockquote *
+     (12) block ::= blockquote *
           blockquote ::= blockquote * quote_line
           quote_line ::= * LINE_BLOCKQUOTE
           quote_line ::= * LINE_CONTINUATION
 
-             LINE_CONTINUATION shift-reduce 101    quote_line ::= LINE_CONTINUATION
-               LINE_BLOCKQUOTE shift-reduce 100    quote_line ::= LINE_BLOCKQUOTE
-               LINE_BLOCKQUOTE reduce       11      ** Parsing conflict **
-                    quote_line shift-reduce 36     blockquote ::= blockquote quote_line
-                     {default} reduce       11     block ::= blockquote
+             LINE_CONTINUATION shift-reduce 104    quote_line ::= LINE_CONTINUATION
+               LINE_BLOCKQUOTE shift-reduce 103    quote_line ::= LINE_BLOCKQUOTE
+               LINE_BLOCKQUOTE reduce       12      ** Parsing conflict **
+                    quote_line shift-reduce 38     blockquote ::= blockquote quote_line
+                     {default} reduce       12     block ::= blockquote
 
 State 38:
           defs ::= defs * def
           def ::= * LINE_DEFINITION tail
           def ::= * LINE_DEFINITION
-    (151) para ::= defs *
+    (154) para ::= defs *
 
                LINE_DEFINITION shift        5      
-               LINE_DEFINITION reduce       151     ** Parsing conflict **
-                           def shift-reduce 43     defs ::= defs def
-                     {default} reduce       151    para ::= defs
+               LINE_DEFINITION reduce       154     ** Parsing conflict **
+                           def shift-reduce 45     defs ::= defs def
+                     {default} reduce       154    para ::= defs
 
 State 39:
-     (42) definition_block ::= para defs *
+     (44) definition_block ::= para defs *
           defs ::= defs * def
           def ::= * LINE_DEFINITION tail
           def ::= * LINE_DEFINITION
 
                LINE_DEFINITION shift        5      
-               LINE_DEFINITION reduce       42      ** Parsing conflict **
-                           def shift-reduce 43     defs ::= defs def
-                     {default} reduce       42     definition_block ::= para defs
+               LINE_DEFINITION reduce       44      ** Parsing conflict **
+                           def shift-reduce 45     defs ::= defs def
+                     {default} reduce       44     definition_block ::= para defs
 
 State 40:
-     (24) block ::= list_enum *
+     (25) block ::= list_enum *
           list_enum ::= list_enum * item_enum
           item_enum ::= * LINE_LIST_ENUMERATED ext_chunk
           item_enum ::= * LINE_LIST_ENUMERATED chunk
@@ -1160,12 +1170,12 @@ State 40:
           item_enum ::= * LINE_LIST_ENUMERATED
 
           LINE_LIST_ENUMERATED shift        6      
-          LINE_LIST_ENUMERATED reduce       24      ** Parsing conflict **
-                     item_enum shift-reduce 72     list_enum ::= list_enum item_enum
-                     {default} reduce       24     block ::= list_enum
+          LINE_LIST_ENUMERATED reduce       25      ** Parsing conflict **
+                     item_enum shift-reduce 74     list_enum ::= list_enum item_enum
+                     {default} reduce       25     block ::= list_enum
 
 State 41:
-     (23) block ::= list_bullet *
+     (24) block ::= list_bullet *
           list_bullet ::= list_bullet * item_bullet
           item_bullet ::= * LINE_LIST_BULLETED ext_chunk
           item_bullet ::= * LINE_LIST_BULLETED chunk
@@ -1173,36 +1183,44 @@ State 41:
           item_bullet ::= * LINE_LIST_BULLETED
 
             LINE_LIST_BULLETED shift        7      
-            LINE_LIST_BULLETED reduce       23      ** Parsing conflict **
-                   item_bullet shift-reduce 67     list_bullet ::= list_bullet item_bullet
-                     {default} reduce       23     block ::= list_bullet
+            LINE_LIST_BULLETED reduce       24      ** Parsing conflict **
+                   item_bullet shift-reduce 69     list_bullet ::= list_bullet item_bullet
+                     {default} reduce       24     block ::= list_bullet
 
 State 42:
           table_header ::= header_rows * LINE_TABLE_SEPARATOR
           header_rows ::= header_rows * LINE_TABLE
-    (149) row ::= header_rows *
+    (152) row ::= header_rows *
 
-                    LINE_TABLE shift-reduce 83     header_rows ::= header_rows LINE_TABLE
-                    LINE_TABLE reduce       149     ** Parsing conflict **
-          LINE_TABLE_SEPARATOR shift-reduce 82     table_header ::= header_rows LINE_TABLE_SEPARATOR
-          LINE_TABLE_SEPARATOR reduce       149     ** Parsing conflict **
-                     {default} reduce       149    row ::= header_rows
+                    LINE_TABLE shift-reduce 86     header_rows ::= header_rows LINE_TABLE
+                    LINE_TABLE reduce       152     ** Parsing conflict **
+          LINE_TABLE_SEPARATOR shift-reduce 85     table_header ::= header_rows LINE_TABLE_SEPARATOR
+          LINE_TABLE_SEPARATOR reduce       152     ** Parsing conflict **
+                     {default} reduce       152    row ::= header_rows
 
 State 43:
           header_rows ::= header_rows * LINE_TABLE
-    (149) row ::= header_rows *
+    (152) row ::= header_rows *
 
-                    LINE_TABLE shift-reduce 83     header_rows ::= header_rows LINE_TABLE
-                    LINE_TABLE reduce       149     ** Parsing conflict **
-                     {default} reduce       149    row ::= header_rows
+                    LINE_TABLE shift-reduce 86     header_rows ::= header_rows LINE_TABLE
+                    LINE_TABLE reduce       152     ** Parsing conflict **
+                     {default} reduce       152    row ::= header_rows
 
 State 44:
-     (18) block ::= empty *
+     (19) block ::= empty *
           empty ::= empty * LINE_EMPTY
 
-                    LINE_EMPTY shift-reduce 46     empty ::= empty LINE_EMPTY
-                    LINE_EMPTY reduce       18      ** Parsing conflict **
-                     {default} reduce       18     block ::= empty
+                    LINE_EMPTY shift-reduce 48     empty ::= empty LINE_EMPTY
+                    LINE_EMPTY reduce       19      ** Parsing conflict **
+                     {default} reduce       19     block ::= empty
+
+State 45:
+     (10) block ::= LINE_YAML *
+          meta_block ::= LINE_YAML * LINE_META
+
+                     LINE_META shift-reduce 80     meta_block ::= LINE_YAML LINE_META
+                     LINE_META reduce       10      ** Parsing conflict **
+                     {default} reduce       10     block ::= LINE_YAML
 
 ----------------------------------------------------
 Symbols:
@@ -1210,88 +1228,89 @@ Symbols:
     1: LINE_HR
     2: LINE_SETEXT_1
     3: LINE_SETEXT_2
-    4: LINE_CONTINUATION
-    5: LINE_PLAIN
-    6: LINE_INDENTED_TAB
-    7: LINE_INDENTED_SPACE
-    8: LINE_TABLE
-    9: LINE_TABLE_SEPARATOR
-   10: LINE_FALLBACK
-   11: LINE_HTML
-   12: LINE_ATX_1
-   13: LINE_ATX_2
-   14: LINE_ATX_3
-   15: LINE_ATX_4
-   16: LINE_ATX_5
-   17: LINE_ATX_6
-   18: LINE_BLOCKQUOTE
-   19: LINE_LIST_BULLETED
-   20: LINE_LIST_ENUMERATED
-   21: LINE_DEF_ABBREVIATION
-   22: LINE_DEF_CITATION
-   23: LINE_DEF_FOOTNOTE
-   24: LINE_DEF_GLOSSARY
-   25: LINE_DEF_LINK
-   26: LINE_TOC
-   27: LINE_DEFINITION
-   28: LINE_META
-   29: LINE_BACKTICK
-   30: LINE_FENCE_BACKTICK_3
-   31: LINE_FENCE_BACKTICK_4
-   32: LINE_FENCE_BACKTICK_5
-   33: LINE_FENCE_BACKTICK_START_3
-   34: LINE_FENCE_BACKTICK_START_4
-   35: LINE_FENCE_BACKTICK_START_5
-   36: LINE_STOP_COMMENT
-   37: LINE_EMPTY
-   38: LINE_START_COMMENT
-   39: error:
-   40: doc: LINE_HR LINE_PLAIN LINE_INDENTED_TAB LINE_INDENTED_SPACE LINE_TABLE LINE_TABLE_SEPARATOR LINE_HTML LINE_ATX_1 LINE_ATX_2 LINE_ATX_3 LINE_ATX_4 LINE_ATX_5 LINE_ATX_6 LINE_BLOCKQUOTE LINE_LIST_BULLETED LINE_LIST_ENUMERATED LINE_DEF_ABBREVIATION LINE_DEF_CITATION LINE_DEF_FOOTNOTE LINE_DEF_GLOSSARY LINE_DEF_LINK LINE_TOC LINE_DEFINITION LINE_META LINE_FENCE_BACKTICK_3 LINE_FENCE_BACKTICK_4 LINE_FENCE_BACKTICK_5 LINE_FENCE_BACKTICK_START_3 LINE_FENCE_BACKTICK_START_4 LINE_FENCE_BACKTICK_START_5 LINE_STOP_COMMENT LINE_EMPTY LINE_START_COMMENT
-   41: blocks: LINE_HR LINE_PLAIN LINE_INDENTED_TAB LINE_INDENTED_SPACE LINE_TABLE LINE_TABLE_SEPARATOR LINE_HTML LINE_ATX_1 LINE_ATX_2 LINE_ATX_3 LINE_ATX_4 LINE_ATX_5 LINE_ATX_6 LINE_BLOCKQUOTE LINE_LIST_BULLETED LINE_LIST_ENUMERATED LINE_DEF_ABBREVIATION LINE_DEF_CITATION LINE_DEF_FOOTNOTE LINE_DEF_GLOSSARY LINE_DEF_LINK LINE_TOC LINE_DEFINITION LINE_META LINE_FENCE_BACKTICK_3 LINE_FENCE_BACKTICK_4 LINE_FENCE_BACKTICK_5 LINE_FENCE_BACKTICK_START_3 LINE_FENCE_BACKTICK_START_4 LINE_FENCE_BACKTICK_START_5 LINE_STOP_COMMENT LINE_EMPTY LINE_START_COMMENT
-   42: block: LINE_HR LINE_PLAIN LINE_INDENTED_TAB LINE_INDENTED_SPACE LINE_TABLE LINE_TABLE_SEPARATOR LINE_HTML LINE_ATX_1 LINE_ATX_2 LINE_ATX_3 LINE_ATX_4 LINE_ATX_5 LINE_ATX_6 LINE_BLOCKQUOTE LINE_LIST_BULLETED LINE_LIST_ENUMERATED LINE_DEF_ABBREVIATION LINE_DEF_CITATION LINE_DEF_FOOTNOTE LINE_DEF_GLOSSARY LINE_DEF_LINK LINE_TOC LINE_DEFINITION LINE_META LINE_FENCE_BACKTICK_3 LINE_FENCE_BACKTICK_4 LINE_FENCE_BACKTICK_5 LINE_FENCE_BACKTICK_START_3 LINE_FENCE_BACKTICK_START_4 LINE_FENCE_BACKTICK_START_5 LINE_STOP_COMMENT LINE_EMPTY LINE_START_COMMENT
-   43: blockquote: LINE_BLOCKQUOTE
-   44: def_abbreviation: LINE_DEF_ABBREVIATION
-   45: def_citation: LINE_DEF_CITATION
-   46: def_footnote: LINE_DEF_FOOTNOTE
-   47: def_glossary: LINE_DEF_GLOSSARY
-   48: def_link: LINE_DEF_LINK
-   49: definition_block: LINE_PLAIN LINE_TABLE LINE_TABLE_SEPARATOR LINE_DEFINITION LINE_STOP_COMMENT
-   50: empty: LINE_EMPTY
-   51: fenced_block: LINE_FENCE_BACKTICK_3 LINE_FENCE_BACKTICK_4 LINE_FENCE_BACKTICK_5 LINE_FENCE_BACKTICK_START_3 LINE_FENCE_BACKTICK_START_4 LINE_FENCE_BACKTICK_START_5
-   52: html_block: LINE_HTML
-   53: html_com_block: LINE_START_COMMENT
-   54: indented_code: LINE_INDENTED_TAB LINE_INDENTED_SPACE
-   55: list_bullet: LINE_LIST_BULLETED
-   56: list_enum: LINE_LIST_ENUMERATED
-   57: meta_block: LINE_META
-   58: para: LINE_PLAIN LINE_TABLE LINE_TABLE_SEPARATOR LINE_DEFINITION LINE_STOP_COMMENT
-   59: setext_1: LINE_PLAIN LINE_TABLE LINE_TABLE_SEPARATOR LINE_DEFINITION LINE_STOP_COMMENT
-   60: setext_2: LINE_PLAIN LINE_TABLE LINE_TABLE_SEPARATOR LINE_DEFINITION LINE_STOP_COMMENT
-   61: table: LINE_TABLE
-   62: chunk: LINE_CONTINUATION LINE_STOP_COMMENT
-   63: chunk_line: LINE_CONTINUATION LINE_STOP_COMMENT
-   64: nested_chunks: LINE_EMPTY
-   65: nested_chunk: LINE_EMPTY
-   66: indented_line: LINE_INDENTED_TAB LINE_INDENTED_SPACE
-   67: ext_chunk: LINE_CONTINUATION LINE_STOP_COMMENT
-   68: opt_ext_chunk: LINE_CONTINUATION LINE_STOP_COMMENT
-   69: tail: LINE_CONTINUATION LINE_STOP_COMMENT LINE_EMPTY
-   70: quote_line: LINE_CONTINUATION LINE_BLOCKQUOTE
-   71: defs: LINE_DEFINITION
-   72: def: LINE_DEFINITION
-   73: fenced_3: LINE_FENCE_BACKTICK_3 LINE_FENCE_BACKTICK_START_3
-   74: fenced_line: LINE_HR LINE_CONTINUATION LINE_FALLBACK LINE_HTML LINE_STOP_COMMENT LINE_EMPTY LINE_START_COMMENT
-   75: fenced_4: LINE_FENCE_BACKTICK_4 LINE_FENCE_BACKTICK_START_4
-   76: fenced_5: LINE_FENCE_BACKTICK_5 LINE_FENCE_BACKTICK_START_5
-   77: html_line: LINE_HR LINE_CONTINUATION LINE_FALLBACK LINE_HTML
-   78: html_comment: LINE_START_COMMENT
-   79: comment_line: LINE_HR LINE_CONTINUATION LINE_FALLBACK LINE_HTML LINE_EMPTY
-   80: item_bullet: LINE_LIST_BULLETED
-   81: item_enum: LINE_LIST_ENUMERATED
-   82: meta_line: LINE_CONTINUATION LINE_META
-   83: table_header: LINE_TABLE
-   84: table_body: LINE_TABLE LINE_TABLE_SEPARATOR
-   85: header_rows: LINE_TABLE
-   86: table_section: LINE_TABLE LINE_TABLE_SEPARATOR
-   87: all_rows: LINE_TABLE LINE_TABLE_SEPARATOR
-   88: row: LINE_TABLE LINE_TABLE_SEPARATOR
+    4: LINE_YAML
+    5: LINE_CONTINUATION
+    6: LINE_PLAIN
+    7: LINE_INDENTED_TAB
+    8: LINE_INDENTED_SPACE
+    9: LINE_TABLE
+   10: LINE_TABLE_SEPARATOR
+   11: LINE_FALLBACK
+   12: LINE_HTML
+   13: LINE_ATX_1
+   14: LINE_ATX_2
+   15: LINE_ATX_3
+   16: LINE_ATX_4
+   17: LINE_ATX_5
+   18: LINE_ATX_6
+   19: LINE_BLOCKQUOTE
+   20: LINE_LIST_BULLETED
+   21: LINE_LIST_ENUMERATED
+   22: LINE_DEF_ABBREVIATION
+   23: LINE_DEF_CITATION
+   24: LINE_DEF_FOOTNOTE
+   25: LINE_DEF_GLOSSARY
+   26: LINE_DEF_LINK
+   27: LINE_TOC
+   28: LINE_DEFINITION
+   29: LINE_META
+   30: LINE_BACKTICK
+   31: LINE_FENCE_BACKTICK_3
+   32: LINE_FENCE_BACKTICK_4
+   33: LINE_FENCE_BACKTICK_5
+   34: LINE_FENCE_BACKTICK_START_3
+   35: LINE_FENCE_BACKTICK_START_4
+   36: LINE_FENCE_BACKTICK_START_5
+   37: LINE_STOP_COMMENT
+   38: LINE_EMPTY
+   39: LINE_START_COMMENT
+   40: error:
+   41: doc: LINE_HR LINE_YAML LINE_PLAIN LINE_INDENTED_TAB LINE_INDENTED_SPACE LINE_TABLE LINE_TABLE_SEPARATOR LINE_HTML LINE_ATX_1 LINE_ATX_2 LINE_ATX_3 LINE_ATX_4 LINE_ATX_5 LINE_ATX_6 LINE_BLOCKQUOTE LINE_LIST_BULLETED LINE_LIST_ENUMERATED LINE_DEF_ABBREVIATION LINE_DEF_CITATION LINE_DEF_FOOTNOTE LINE_DEF_GLOSSARY LINE_DEF_LINK LINE_TOC LINE_DEFINITION LINE_META LINE_FENCE_BACKTICK_3 LINE_FENCE_BACKTICK_4 LINE_FENCE_BACKTICK_5 LINE_FENCE_BACKTICK_START_3 LINE_FENCE_BACKTICK_START_4 LINE_FENCE_BACKTICK_START_5 LINE_STOP_COMMENT LINE_EMPTY LINE_START_COMMENT
+   42: blocks: LINE_HR LINE_YAML LINE_PLAIN LINE_INDENTED_TAB LINE_INDENTED_SPACE LINE_TABLE LINE_TABLE_SEPARATOR LINE_HTML LINE_ATX_1 LINE_ATX_2 LINE_ATX_3 LINE_ATX_4 LINE_ATX_5 LINE_ATX_6 LINE_BLOCKQUOTE LINE_LIST_BULLETED LINE_LIST_ENUMERATED LINE_DEF_ABBREVIATION LINE_DEF_CITATION LINE_DEF_FOOTNOTE LINE_DEF_GLOSSARY LINE_DEF_LINK LINE_TOC LINE_DEFINITION LINE_META LINE_FENCE_BACKTICK_3 LINE_FENCE_BACKTICK_4 LINE_FENCE_BACKTICK_5 LINE_FENCE_BACKTICK_START_3 LINE_FENCE_BACKTICK_START_4 LINE_FENCE_BACKTICK_START_5 LINE_STOP_COMMENT LINE_EMPTY LINE_START_COMMENT
+   43: block: LINE_HR LINE_YAML LINE_PLAIN LINE_INDENTED_TAB LINE_INDENTED_SPACE LINE_TABLE LINE_TABLE_SEPARATOR LINE_HTML LINE_ATX_1 LINE_ATX_2 LINE_ATX_3 LINE_ATX_4 LINE_ATX_5 LINE_ATX_6 LINE_BLOCKQUOTE LINE_LIST_BULLETED LINE_LIST_ENUMERATED LINE_DEF_ABBREVIATION LINE_DEF_CITATION LINE_DEF_FOOTNOTE LINE_DEF_GLOSSARY LINE_DEF_LINK LINE_TOC LINE_DEFINITION LINE_META LINE_FENCE_BACKTICK_3 LINE_FENCE_BACKTICK_4 LINE_FENCE_BACKTICK_5 LINE_FENCE_BACKTICK_START_3 LINE_FENCE_BACKTICK_START_4 LINE_FENCE_BACKTICK_START_5 LINE_STOP_COMMENT LINE_EMPTY LINE_START_COMMENT
+   44: blockquote: LINE_BLOCKQUOTE
+   45: def_abbreviation: LINE_DEF_ABBREVIATION
+   46: def_citation: LINE_DEF_CITATION
+   47: def_footnote: LINE_DEF_FOOTNOTE
+   48: def_glossary: LINE_DEF_GLOSSARY
+   49: def_link: LINE_DEF_LINK
+   50: definition_block: LINE_PLAIN LINE_TABLE LINE_TABLE_SEPARATOR LINE_DEFINITION LINE_STOP_COMMENT
+   51: empty: LINE_EMPTY
+   52: fenced_block: LINE_FENCE_BACKTICK_3 LINE_FENCE_BACKTICK_4 LINE_FENCE_BACKTICK_5 LINE_FENCE_BACKTICK_START_3 LINE_FENCE_BACKTICK_START_4 LINE_FENCE_BACKTICK_START_5
+   53: html_block: LINE_HTML
+   54: html_com_block: LINE_START_COMMENT
+   55: indented_code: LINE_INDENTED_TAB LINE_INDENTED_SPACE
+   56: list_bullet: LINE_LIST_BULLETED
+   57: list_enum: LINE_LIST_ENUMERATED
+   58: meta_block: LINE_YAML LINE_META
+   59: para: LINE_PLAIN LINE_TABLE LINE_TABLE_SEPARATOR LINE_DEFINITION LINE_STOP_COMMENT
+   60: setext_1: LINE_PLAIN LINE_TABLE LINE_TABLE_SEPARATOR LINE_DEFINITION LINE_STOP_COMMENT
+   61: setext_2: LINE_PLAIN LINE_TABLE LINE_TABLE_SEPARATOR LINE_DEFINITION LINE_STOP_COMMENT
+   62: table: LINE_TABLE
+   63: chunk: LINE_CONTINUATION LINE_STOP_COMMENT
+   64: chunk_line: LINE_CONTINUATION LINE_STOP_COMMENT
+   65: nested_chunks: LINE_EMPTY
+   66: nested_chunk: LINE_EMPTY
+   67: indented_line: LINE_INDENTED_TAB LINE_INDENTED_SPACE
+   68: ext_chunk: LINE_CONTINUATION LINE_STOP_COMMENT
+   69: opt_ext_chunk: LINE_CONTINUATION LINE_STOP_COMMENT
+   70: tail: LINE_CONTINUATION LINE_STOP_COMMENT LINE_EMPTY
+   71: quote_line: LINE_CONTINUATION LINE_BLOCKQUOTE
+   72: defs: LINE_DEFINITION
+   73: def: LINE_DEFINITION
+   74: fenced_3: LINE_FENCE_BACKTICK_3 LINE_FENCE_BACKTICK_START_3
+   75: fenced_line: LINE_HR LINE_CONTINUATION LINE_FALLBACK LINE_HTML LINE_STOP_COMMENT LINE_EMPTY LINE_START_COMMENT
+   76: fenced_4: LINE_FENCE_BACKTICK_4 LINE_FENCE_BACKTICK_START_4
+   77: fenced_5: LINE_FENCE_BACKTICK_5 LINE_FENCE_BACKTICK_START_5
+   78: html_line: LINE_HR LINE_CONTINUATION LINE_FALLBACK LINE_HTML
+   79: html_comment: LINE_START_COMMENT
+   80: comment_line: LINE_HR LINE_CONTINUATION LINE_FALLBACK LINE_HTML LINE_EMPTY
+   81: item_bullet: LINE_LIST_BULLETED
+   82: item_enum: LINE_LIST_ENUMERATED
+   83: meta_line: LINE_CONTINUATION LINE_META
+   84: table_header: LINE_TABLE
+   85: table_body: LINE_TABLE LINE_TABLE_SEPARATOR
+   86: header_rows: LINE_TABLE
+   87: table_section: LINE_TABLE LINE_TABLE_SEPARATOR
+   88: all_rows: LINE_TABLE LINE_TABLE_SEPARATOR
+   89: row: LINE_TABLE LINE_TABLE_SEPARATOR
index b152601f48389827bf6ec8948073902904000a88..6eee6b453e594ba63d0dc891f6567f28736f17fd 100644 (file)
@@ -62,7 +62,7 @@
 
 %extra_argument { mmd_engine * engine }
 
-%fallback LINE_HR LINE_SETEXT_1 LINE_SETEXT_2.
+%fallback LINE_HR LINE_SETEXT_1 LINE_SETEXT_2 LINE_YAML.
 
 //%fallback LINE_PLAIN LINE_TABLE_SEPARATOR.
 
@@ -111,6 +111,7 @@ block(A)                    ::= LINE_ATX_5(B).                      { A = token_new_parent(B, BLOCK_H5); stack_push(
 block(A)                       ::= LINE_ATX_6(B).                      { A = token_new_parent(B, BLOCK_H6); stack_push(engine->header_stack, A); }
 
 block(A)                       ::= LINE_HR(B).                         { A = token_new_parent(B, BLOCK_HR); }
+block(A)                       ::= LINE_YAML(B).                       { A = token_new_parent(B, BLOCK_HR); }
 
 block(A)                       ::= LINE_TOC(B).                        { A = token_new_parent(B, BLOCK_TOC); }
 
@@ -132,6 +133,7 @@ block(A)                    ::= indented_code(B).           { A = token_new_parent(B, BLOCK_CODE_INDENTED)
 block(A)                       ::= list_bullet(B).                     { A = token_new_parent(B, BLOCK_LIST_BULLETED); is_list_loose(A); }
 block(A)                       ::= list_enum(B).                       { A = token_new_parent(B, BLOCK_LIST_ENUMERATED); is_list_loose(A); }
 block(A)                       ::= meta_block(B).                      { A = token_new_parent(B, BLOCK_META); }
+block(A)                       ::= meta_block(B) LINE_SETEXT_2(C).     { A = token_new_parent(B, BLOCK_META); token_chain_append(A, C); }
 block(A)                       ::= para(B).                            { A = token_new_parent(B, BLOCK_PARA); is_para_html(engine, A); }
 block(A)                       ::= setext_1(B).                        { A = token_new_parent(B, BLOCK_SETEXT_1); stack_push(engine->header_stack, A); }
 block(A)                       ::= setext_2(B).                        { A = token_new_parent(B, BLOCK_SETEXT_2); stack_push(engine->header_stack, A); }
@@ -327,6 +329,7 @@ item_enum(A)                ::= LINE_LIST_ENUMERATED(B).                            { A = token_new_parent(B, BLOCK_LI
 // Metadata
 meta_block(A)          ::= meta_block(B) meta_line(C).                         { A = B; token_chain_append(B, C); }
 meta_block                     ::= LINE_META.
+meta_block(A)          ::= LINE_YAML(B) LINE_META(C).                          { A = B; token_chain_append(B, C); }
 
 meta_line                      ::= LINE_META.
 meta_line                      ::= LINE_CONTINUATION.
diff --git a/tests/MMD6Tests/Metadata YAML.fodt b/tests/MMD6Tests/Metadata YAML.fodt
new file mode 100644 (file)
index 0000000..f0e8e01
--- /dev/null
@@ -0,0 +1,286 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<office:document xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
+xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
+xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
+xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
+xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
+xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
+xmlns:xlink="http://www.w3.org/1999/xlink"
+xmlns:dc="http://purl.org/dc/elements/1.1/"
+xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
+xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
+xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
+xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
+xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
+xmlns:math="http://www.w3.org/1998/Math/MathML"
+xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
+xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
+xmlns:ooo="http://openoffice.org/2004/office"
+xmlns:ooow="http://openoffice.org/2004/writer"
+xmlns:oooc="http://openoffice.org/2004/calc"
+xmlns:dom="http://www.w3.org/2001/xml-events"
+xmlns:xforms="http://www.w3.org/2002/xforms"
+xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xmlns:rpt="http://openoffice.org/2005/report"
+xmlns:of="urn:oasis:names:tc:opendocument:xmlns:of:1.2"
+xmlns:xhtml="http://www.w3.org/1999/xhtml"
+xmlns:grddl="http://www.w3.org/2003/g/data-view#"
+xmlns:officeooo="http://openoffice.org/2009/office"
+xmlns:tableooo="http://openoffice.org/2009/table"
+xmlns:drawooo="http://openoffice.org/2010/draw"
+xmlns:calcext="urn:org:documentfoundation:names:experimental:calc:xmlns:calcext:1.0"
+xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0"
+xmlns:field="urn:openoffice:names:experimental:ooo-ms-interop:xmlns:field:1.0"
+xmlns:formx="urn:openoffice:names:experimental:ooxml-odf-interop:xmlns:form:1.0"
+xmlns:css3t="http://www.w3.org/TR/css3-text/"
+office:version="1.2"
+office:mimetype="application/vnd.oasis.opendocument.text">
+<office:font-face-decls>
+   <style:font-face style:name="Courier New" svg:font-family="'Courier New'"
+                    style:font-adornments="Regular"
+                    style:font-family-generic="modern"
+                    style:font-pitch="fixed"/>
+</office:font-face-decls>
+<office:styles>
+<style:style style:name="Standard" style:family="paragraph" style:class="text">
+      <style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.15in"     fo:text-align="justify" style:justify-single-word="false"/>
+   </style:style>
+<style:style style:name="Preformatted_20_Text" style:display-name="Preformatted Text"
+             style:family="paragraph"
+             style:parent-style-name="Standard"
+             style:class="html">
+   <style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0in" fo:text-align="start"
+                               style:justify-single-word="false"/>
+   <style:text-properties style:font-name="Courier New" fo:font-size="11pt"
+                          style:font-name-asian="Courier New"
+                          style:font-size-asian="11pt"
+                          style:font-name-complex="Courier New"
+                          style:font-size-complex="11pt"/>
+</style:style>
+<style:style style:name="Source_20_Text" style:display-name="Source Text"
+             style:family="text">
+   <style:text-properties style:font-name="Courier New" style:font-name-asian="Courier New"
+                          style:font-name-complex="Courier New"
+                          fo:font-size="11pt"/>
+</style:style>
+<style:style style:name="List" style:family="paragraph"
+             style:parent-style-name="Standard"
+             style:class="list">
+   <style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
+   <style:text-properties style:font-size-asian="12pt"/>
+</style:style>
+<style:style style:name="Quotations" style:family="paragraph"
+             style:parent-style-name="Standard"
+             style:class="html">
+   <style:paragraph-properties fo:margin-left="0.3937in" fo:margin-right="0.3937in" fo:margin-top="0in"
+                               fo:margin-bottom="0.1965in"
+                               fo:text-align="justify"                               style:justify-single-word="false"                               fo:text-indent="0in"
+                               style:auto-text-indent="false"/>
+</style:style>
+<style:style style:name="Table_20_Heading" style:display-name="Table Heading"
+             style:family="paragraph"
+             style:parent-style-name="Table_20_Contents"
+             style:class="extra">
+   <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"
+                               text:number-lines="false"
+                               text:line-number="0"/>
+   <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold"
+                          style:font-weight-complex="bold"/>
+</style:style>
+<style:style style:name="Horizontal_20_Line" style:display-name="Horizontal Line"
+             style:family="paragraph"
+             style:parent-style-name="Standard"
+             style:class="html">
+   <style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.1965in"
+                               style:border-line-width-bottom="0.0008in 0.0138in 0.0008in"
+                               fo:padding="0in"
+                               fo:border-left="none"
+                               fo:border-right="none"
+                               fo:border-top="none"
+                               fo:border-bottom="0.0154in double #808080"
+                               text:number-lines="false"
+                               text:line-number="0"
+                               style:join-border="false"/>
+   <style:text-properties fo:font-size="6pt" style:font-size-asian="6pt" style:font-size-complex="6pt"/>
+</style:style>
+<style:style style:name="Footnote_20_anchor" style:display-name="Footnote anchor"              style:family="text">    <style:text-properties style:text-position="super 58%"/> </style:style>
+<style:style style:name="TOC_Item" style:family="paragraph" style:parent-style-name="Standard">
+ <style:paragraph-properties>
+  <style:tab-stops>
+   <style:tab-stop style:position="6.7283in" style:type="right" style:leader-style="dotted" style:leader-text="."/>
+  </style:tab-stops>
+ </style:paragraph-properties>
+</style:style>
+  <text:notes-configuration text:note-class="footnote" text:default-style-name="Footnote" text:citation-style-name="Footnote_20_Symbol" text:citation-body-style-name="Footnote_20_anchor" text:master-page-name="Footnote" style:num-format="a" text:start-value="0" text:footnotes-position="page" text:start-numbering-at="page"/>
+  <text:notes-configuration text:note-class="endnote" text:default-style-name="Endnote" text:citation-style-name="Endnote_20_Symbol" text:citation-body-style-name="Endnote_20_anchor" text:master-page-name="Endnote" style:num-format="1" text:start-value="0"/>
+</office:styles>
+<office:automatic-styles>   <style:style style:name="MMD-Italic" style:family="text">
+      <style:text-properties fo:font-style="italic" style:font-style-asian="italic"
+                             style:font-style-complex="italic"/>
+   </style:style>
+   <style:style style:name="MMD-Bold" style:family="text">
+      <style:text-properties fo:font-weight="bold" style:font-weight-asian="bold"
+                             style:font-weight-complex="bold"/>
+   </style:style>
+   <style:style style:name="MMD-Superscript" style:family="text">
+      <style:text-properties style:text-position="super 58%"/>
+   </style:style>
+   <style:style style:name="MMD-Subscript" style:family="text">
+      <style:text-properties style:text-position="sub 58%"/>
+   </style:style>
+   <style:style style:name="Strike" style:family="text">
+      <style:text-properties style:text-line-through-style="solid" />
+   </style:style>
+   <style:style style:name="Underline" style:family="text">
+      <style:text-properties style:text-underline-style="solid" style:text-underline-color="font-color"/>
+   </style:style>
+   <style:style style:name="Highlight" style:family="text">
+      <style:text-properties fo:background-color="#FFFF00" />
+   </style:style>
+   <style:style style:name="Comment" style:family="text">
+      <style:text-properties fo:color="#0000BB" />
+   </style:style>
+<style:style style:name="MMD-Table" style:family="paragraph" style:parent-style-name="Standard">
+   <style:paragraph-properties fo:margin-top="0in" fo:margin-bottom="0.05in"/>
+</style:style>
+<style:style style:name="MMD-Table-Center" style:family="paragraph" style:parent-style-name="MMD-Table">
+   <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
+</style:style>
+<style:style style:name="MMD-Table-Right" style:family="paragraph" style:parent-style-name="MMD-Table">
+   <style:paragraph-properties fo:text-align="right" style:justify-single-word="false"/>
+</style:style>
+<style:style style:name="P2" style:family="paragraph" style:parent-style-name="Standard"
+             style:list-style-name="L2">
+<style:paragraph-properties fo:text-align="start" style:justify-single-word="false"/>
+</style:style>
+<style:style style:name="fr1" style:family="graphic" style:parent-style-name="Frame">
+   <style:graphic-properties style:print-content="true" style:vertical-pos="top"
+                             style:vertical-rel="baseline"
+                             fo:padding="0in"
+                             fo:border="none"
+                             style:shadow="none"/>
+</style:style>
+<style:style style:name="P1" style:family="paragraph" style:parent-style-name="Standard"
+             style:list-style-name="L1"/>
+<text:list-style style:name="L1">
+       <text:list-level-style-bullet text:level="1" text:style-name="Numbering_20_Symbols" style:num-suffix="." text:bullet-char="•">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="0.5in" fo:text-indent="-0.25in" fo:margin-left="0.5in"/>
+               </style:list-level-properties>
+       </text:list-level-style-bullet>
+       <text:list-level-style-bullet text:level="2" text:style-name="Numbering_20_Symbols" style:num-suffix="." text:bullet-char="◦">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="0.75in" fo:text-indent="-0.25in" fo:margin-left="0.75in"/>
+               </style:list-level-properties>
+       </text:list-level-style-bullet>
+       <text:list-level-style-bullet text:level="3" text:style-name="Numbering_20_Symbols" style:num-suffix="." text:bullet-char="▪">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1in" fo:text-indent="-0.25in" fo:margin-left="1in"/>
+               </style:list-level-properties>
+       </text:list-level-style-bullet>
+       <text:list-level-style-number text:level="4" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.25in" fo:text-indent="-0.25in" fo:margin-left="1.25in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="5" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.5in" fo:text-indent="-0.25in" fo:margin-left="1.5in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="6" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.75in" fo:text-indent="-0.25in" fo:margin-left="1.75in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="7" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2in" fo:text-indent="-0.25in" fo:margin-left="2in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="8" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.25in" fo:text-indent="-0.25in" fo:margin-left="2.25in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="9" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.5in" fo:text-indent="-0.25in" fo:margin-left="2.5in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="10" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.75in" fo:text-indent="-0.25in" fo:margin-left="2.75in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+</text:list-style>
+<text:list-style style:name="L2">
+       <text:list-level-style-number text:level="1" text:style-name="Standard" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="0.5in" fo:text-indent="-0.25in" fo:margin-left="0.5in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="2" text:style-name="Standard" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="0.75in" fo:text-indent="-0.25in" fo:margin-left="0.75in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="3" text:style-name="Standard" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1in" fo:text-indent="-0.25in" fo:margin-left="1in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="4" text:style-name="Standard" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.25in" fo:text-indent="-0.25in" fo:margin-left="1.25in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="5" text:style-name="Standard" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.5in" fo:text-indent="-0.25in" fo:margin-left="1.5in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="6" text:style-name="Standard" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="1.75in" fo:text-indent="-0.25in" fo:margin-left="1.75in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="7" text:style-name="Standard" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2in" fo:text-indent="-0.25in" fo:margin-left="2in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="8" text:style-name="Standard" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.25in" fo:text-indent="-0.25in" fo:margin-left="2.25in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="9" text:style-name="Standard" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.5in" fo:text-indent="-0.25in" fo:margin-left="2.5in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+       <text:list-level-style-number text:level="10" text:style-name="Standard" style:num-suffix="." style:num-format="1">
+               <style:list-level-properties text:list-level-position-and-space-mode="label-alignment">
+                       <style:list-level-label-alignment text:label-followed-by="listtab" text:list-tab-stop-position="2.75in" fo:text-indent="-0.25in" fo:margin-left="2.75in"/>
+               </style:list-level-properties>
+       </text:list-level-style-number>
+</text:list-style>
+</office:automatic-styles>
+ <office:master-styles>
+  <style:master-page style:name="Endnote" >
+    <style:header><text:h text:outline-level="2">Bibliography</text:h></style:header></style:master-page>
+  <style:master-page style:name="Footnote" style:page-layout-name="pm2"/>
+ </office:master-styles>
+<office:meta>
+       <dc:title>Metadata with YAML</dc:title>
+</office:meta>
+<office:body>
+<office:text>
+<text:p text:style-name="Horizontal_20_Line"/>
+
+<text:p text:style-name="Standard">foo</text:p>
+</office:text>
+</office:body>
+</office:document>
diff --git a/tests/MMD6Tests/Metadata YAML.html b/tests/MMD6Tests/Metadata YAML.html
new file mode 100644 (file)
index 0000000..9f6ad7c
--- /dev/null
@@ -0,0 +1,15 @@
+<!DOCTYPE html>
+<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
+<head>
+       <meta charset="utf-8"/>
+       <title>Metadata with YAML</title>
+</head>
+<body>
+
+<hr />
+
+<p>foo</p>
+
+</body>
+</html>
+
diff --git a/tests/MMD6Tests/Metadata YAML.htmlc b/tests/MMD6Tests/Metadata YAML.htmlc
new file mode 100644 (file)
index 0000000..0492452
--- /dev/null
@@ -0,0 +1,8 @@
+<hr />
+
+<h2>Title: Metadata with YAML
+latex config: article</h2>
+
+<hr />
+
+<p>foo</p>
diff --git a/tests/MMD6Tests/Metadata YAML.tex b/tests/MMD6Tests/Metadata YAML.tex
new file mode 100644 (file)
index 0000000..56f5fcb
--- /dev/null
@@ -0,0 +1,10 @@
+\input{mmd6-article-leader}
+\def\mytitle{Metadata with YAML}
+\input{mmd6-article-begin}
+
+\begin{center}\rule{3in}{0.4pt}\end{center}
+
+foo
+
+\input{mmd6-article-footer}
+\end{document}
diff --git a/tests/MMD6Tests/Metadata YAML.text b/tests/MMD6Tests/Metadata YAML.text
new file mode 100644 (file)
index 0000000..a31cac0
--- /dev/null
@@ -0,0 +1,8 @@
+---
+Title:  Metadata with YAML
+latex config:   article
+---
+
+---
+
+foo