Files
John MacFarlane e87addb58f HTML reader: properly calculate RowHeadColumns.
The previous algorithm did not handle rowspans; this one does.
Closes #8984.
2023-08-05 23:00:14 -07:00

2.6 KiB

% pandoc -f html -t native
<table>
  <tr>
    <th colspan="2">a</th>
    <td>b</td>
  </tr>
  <tr>
    <th>c</th>
    <th>d</th>
    <td>e</td>
  </tr>
</table>
^D
[ Table
    ( "" , [] , [] )
    (Caption Nothing [])
    [ ( AlignDefault , ColWidthDefault )
    , ( AlignDefault , ColWidthDefault )
    , ( AlignDefault , ColWidthDefault )
    ]
    (TableHead ( "" , [] , [] ) [])
    [ TableBody
        ( "" , [] , [] )
        (RowHeadColumns 2)
        []
        [ Row
            ( "" , [] , [] )
            [ Cell
                ( "" , [] , [] )
                AlignDefault
                (RowSpan 1)
                (ColSpan 2)
                [ Plain [ Str "a" ] ]
            , Cell
                ( "" , [] , [] )
                AlignDefault
                (RowSpan 1)
                (ColSpan 1)
                [ Plain [ Str "b" ] ]
            ]
        , Row
            ( "" , [] , [] )
            [ Cell
                ( "" , [] , [] )
                AlignDefault
                (RowSpan 1)
                (ColSpan 1)
                [ Plain [ Str "c" ] ]
            , Cell
                ( "" , [] , [] )
                AlignDefault
                (RowSpan 1)
                (ColSpan 1)
                [ Plain [ Str "d" ] ]
            , Cell
                ( "" , [] , [] )
                AlignDefault
                (RowSpan 1)
                (ColSpan 1)
                [ Plain [ Str "e" ] ]
            ]
        ]
    ]
    (TableFoot ( "" , [] , [] ) [])
]

% pandoc -f html -t native
<table>
<tr>
<th rowspan="2">Heading</th>
<td>content</td>
</tr>
<tr>
<td>content2</td>
</tr>
</table>
^D
[ Table
    ( "" , [] , [] )
    (Caption Nothing [])
    [ ( AlignDefault , ColWidthDefault )
    , ( AlignDefault , ColWidthDefault )
    ]
    (TableHead ( "" , [] , [] ) [])
    [ TableBody
        ( "" , [] , [] )
        (RowHeadColumns 1)
        []
        [ Row
            ( "" , [] , [] )
            [ Cell
                ( "" , [] , [] )
                AlignDefault
                (RowSpan 2)
                (ColSpan 1)
                [ Plain [ Str "Heading" ] ]
            , Cell
                ( "" , [] , [] )
                AlignDefault
                (RowSpan 1)
                (ColSpan 1)
                [ Plain [ Str "content" ] ]
            ]
        , Row
            ( "" , [] , [] )
            [ Cell
                ( "" , [] , [] )
                AlignDefault
                (RowSpan 1)
                (ColSpan 1)
                [ Plain [ Str "content2" ] ]
            ]
        ]
    ]
    (TableFoot ( "" , [] , [] ) [])
]