首页 > 解决方案 > 如何使 Flexmark-Java 进程“@”-提及?

问题描述

在处理 markdown 时,GitHub 支持使用@- 语法来提及 username 或 team。Flexmark-Java 如何处理此类提及?使用以下代码片段,Hello, @world !报告为单个Text节点,我希望在其中world单独报告为某种MentionsNode

final Parser parser = Parser.builder(new Parser.Builder()).build();
final Document document = parser.parse("Hello, @world !");
new NodeVisitor(Collections.emptyList()) {
       public void visit(Node node) {
           System.out.println("Node: " + node);
           super.visit(node);
       }
   }.visit(document);

输出:

Node: Document{}
Node: Paragraph{}
Node: Text{text=Hello, @world !}

标签: flexmark

解决方案


对此有相应的扩展:

final MutableDataHolder options = new MutableDataSet()
                .set(Parser.EXTENSIONS, Collections.singletonList(GfmUsersExtension.create()));
final Parser parser = Parser.builder(options).build();
final Document document = parser.parse("Hello, @world, and #1!");
...

推荐阅读