Dave Jarvis' Repositories

git clone https://repo.autonoma.ca/repo/keenwrite.git

Converts HTML to XHTML prior to XHTML processing

AuthorDaveJarvis <email>
Date2023-01-06 18:27:28 GMT-0800
Commit8940d1f3e03ff10762626deda59f3e0bfc3664ab
Parent03d4734
Delta10 lines added, 2 lines removed, 8-line increase
src/main/java/com/keenwrite/processors/markdown/BaseMarkdownProcessor.java
import com.keenwrite.processors.markdown.extensions.r.RInlineExtension;
import com.vladsch.flexmark.ext.definition.DefinitionExtension;
-import com.vladsch.flexmark.ext.gfm.strikethrough.*;
+import com.vladsch.flexmark.ext.gfm.strikethrough.StrikethroughSubscriptExtension;
import com.vladsch.flexmark.ext.superscript.SuperscriptExtension;
import com.vladsch.flexmark.ext.tables.TablesExtension;
import com.vladsch.flexmark.html.HtmlRenderer;
import com.vladsch.flexmark.parser.Parser;
import com.vladsch.flexmark.util.ast.IParse;
import com.vladsch.flexmark.util.ast.IRender;
import com.vladsch.flexmark.util.ast.Node;
import com.vladsch.flexmark.util.data.MutableDataSet;
import com.vladsch.flexmark.util.misc.Extension;
+import org.jsoup.Jsoup;
+import org.jsoup.nodes.Document.OutputSettings.Syntax;
import java.util.ArrayList;
@Override
public String apply( final String markdown ) {
- return toHtml( parse( markdown ) );
+ return toXhtml( toHtml( parse( markdown ) ) );
}
public String toHtml( final Node node ) {
return getRenderer().render( node );
+ }
+
+ private String toXhtml( final String html ) {
+ final var document = Jsoup.parse( html );
+ document.outputSettings().syntax( Syntax.xml );
+ return document.html();
}