如何配置flexmark-java识别无<thead>标签的HTML表格表头?
解决flexmark-java无thead HTML表格转Markdown的表头识别问题
你可以通过启用flexmark-java中TablesExtension的SET_FIRST_ROW_HEADERS配置,让转换器自动将无<thead>标签的HTML表格第一行识别为表头,修正分隔线位置。
配置代码示例
import com.vladsch.flexmark.html.HtmlRenderer; import com.vladsch.flexmark.parser.Parser; import com.vladsch.flexmark.util.data.MutableDataSet; import com.vladsch.flexmark.ext.tables.TablesExtension; import java.util.Arrays; public class HtmlToMdConverter { public static void main(String[] args) { MutableDataSet options = new MutableDataSet(); // 加载表格扩展并启用第一行表头识别 options.set(Parser.EXTENSIONS, Arrays.asList(TablesExtension.create())); options.set(TablesExtension.SET_FIRST_ROW_HEADERS, true); Parser parser = Parser.builder(options).build(); HtmlRenderer renderer = HtmlRenderer.builder(options).build(); // 待转换的HTML表格 String htmlTable = "<table>\n <tr>\n <td>Team</td>\n <td>Overview</td>\n <td>Estimated Time</td>\n </tr>\n <tr>\n <td>Arthur</td>\n <td>Needs support for configuring upload recommendation image</td>\n <td>Waiting</td>\n </tr>\n</table>"; String convertedMarkdown = renderer.render(parser.parse(htmlTable)); System.out.println(convertedMarkdown); } }
转换后正确的Markdown格式
| Team | Overview | Estimated Time | |--------|------------------------------------------------------------------|----------------| | Arthur | Needs support for configuring upload recommendation image | Waiting |
配置说明
SET_FIRST_ROW_HEADERS参数会强制转换器将没有<thead>的HTML表格的第一行<tr>解析为表头行,自动将Markdown表格的分隔线放在表头下方,符合标准Markdown表格格式。
内容的提问来源于stack exchange,提问作者Louis
相关产品推荐
相关产品推荐

