Преобразование Markdown в docx
Я пытаюсь преобразовать md в docx, и у меня проблема с преобразованием одиночных обратных тиков. Он применяет стиль sourceText для запуска, но также применяет ParagraphTextBody, который переопределяет стиль запуска и не отображается в word или в libre office. Это код, который я использовал:
@Test
public void mdToDocx() throws Exception {
DataHolder OPTIONS = new MutableDataSet()
.set(Parser.EXTENSIONS, Arrays.asList())
.setFrom(ParserEmulationProfile.GITHUB_DOC);
String input =
"# Backticks MD file\n" +
"\n" +
"`this is single line of backticks`\n" +
"\n" +
"Tis is text which contains `text under backticks`\n" +
"\n" +
"\n" +
"`this is backticks` this is regular text\n";
Parser parserDocx = Parser.builder(OPTIONS).build();
DocxRenderer docxRenderer = DocxRenderer.builder(OPTIONS).build();
Node document2 = parserDocx.parse(input);
WordprocessingMLPackage template = WordprocessingMLPackage.createPackage();
File file = new File("/path/to/file/doc.docx");
docxRenderer.render(document2, template);
System.out.println("***********************************");
System.out.println(XmlUtils.marshaltoString(template
.getMainDocumentPart().getJaxbElement(), true, true));
System.out.println("***********************************");
template.save(file);
}
и это результат
<w:body>
<w:bookmarkStart w:name="backticks-md-file" w:id="1"/>
<w:bookmarkEnd w:id="1"/>
<w:p>
<w:pPr>
<w:pStyle w:val="Heading1"/>
</w:pPr>
<w:r>
<w:t>Backticks MD file</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
<w:pStyle w:val="ParagraphTextBody"/>
</w:pPr>
<w:r>
<w:rPr>
<w:rStyle w:val="SourceText"/>
</w:rPr>
<w:t>this is single line of backticks</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
<w:pStyle w:val="ParagraphTextBody"/>
</w:pPr>
<w:r>
<w:t xml:space="preserve">Tis is text which contains </w:t>
</w:r>
<w:r>
<w:rPr>
<w:rStyle w:val="SourceText"/>
</w:rPr>
<w:t>text under backticks</w:t>
</w:r>
</w:p>
<w:p>
<w:pPr>
<w:pStyle w:val="ParagraphTextBody"/>
</w:pPr>
<w:r>
<w:rPr>
<w:rStyle w:val="SourceText"/>
</w:rPr>
<w:t>this is backticks</w:t>
</w:r>
<w:r>
<w:t xml:space="preserve"> this is regular text</w:t>
</w:r>
</w:p>
<w:sectPr>
<w:pgSz w:w="11907" w:h="16839" w:code="9"/>
<w:pgMar w:top="1440" w:right="1440" w:bottom="1440" w:left="1440"/>
</w:sectPr>
</w:body>
Я прикрепил сгенерированный файл docx.idemo.docx