Skip to content

Commit b1733d6

Browse files
committed
Add support for Reader to default implementations
1 parent 5e30551 commit b1733d6

File tree

2 files changed

+28
-6
lines changed

2 files changed

+28
-6
lines changed

elementa/src/main/kotlin/dev/dediamondpro/minemark/elementa/MineMarkComponent.kt

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,26 @@ import gg.essential.elementa.dsl.pixels
3030
import gg.essential.universal.UMatrixStack
3131
import org.commonmark.ext.gfm.strikethrough.StrikethroughExtension
3232
import org.commonmark.ext.gfm.tables.TablesExtension
33+
import java.io.Reader
3334

3435

3536
/**
3637
* A component to rendering markdown powered by MineMark
3738
*/
38-
class MineMarkComponent(
39-
markdown: String,
40-
style: MarkdownStyle = MarkdownStyle(),
41-
core: MineMarkCore<MarkdownStyle, UMatrixStack> = defaultCore
42-
) : UIComponent() {
43-
val parsedMarkdown: MineMarkElement<MarkdownStyle, UMatrixStack> = core.parse(style, markdown).apply {
39+
class MineMarkComponent(markdown: MineMarkElement<MarkdownStyle, UMatrixStack>) : UIComponent() {
40+
constructor(
41+
markdown: String,
42+
style: MarkdownStyle = MarkdownStyle(),
43+
core: MineMarkCore<MarkdownStyle, UMatrixStack> = defaultCore
44+
) : this(core.parse(style, markdown))
45+
46+
constructor(
47+
markdown: Reader,
48+
style: MarkdownStyle = MarkdownStyle(),
49+
core: MineMarkCore<MarkdownStyle, UMatrixStack> = defaultCore
50+
) : this(core.parse(style, markdown))
51+
52+
val parsedMarkdown: MineMarkElement<MarkdownStyle, UMatrixStack> = markdown.apply {
4453
addLayoutCallback(this@MineMarkComponent::layoutCallback)
4554
}
4655

minecraft/src/main/java/dev/dediamondpro/minemark/minecraft/MineMarkDrawable.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
//#endif
3737

3838
import java.io.IOException;
39+
import java.io.Reader;
3940

4041
public class MineMarkDrawable {
4142
public static final MineMarkCore<MarkdownStyle, MarkdownRenderer> DEFAULT_CORE = addMinecraftExtensions(MineMarkCore.builder())
@@ -60,6 +61,18 @@ public MineMarkDrawable(String markdown) throws IOException, SAXException {
6061
this(markdown, new MarkdownStyle());
6162
}
6263

64+
public MineMarkDrawable(Reader markdown, MarkdownStyle style, MineMarkCore<MarkdownStyle, MarkdownRenderer> core) throws IOException, SAXException {
65+
this(core.parse(style, markdown));
66+
}
67+
68+
public MineMarkDrawable(Reader markdown, MarkdownStyle style) throws IOException, SAXException {
69+
this(markdown, style, DEFAULT_CORE);
70+
}
71+
72+
public MineMarkDrawable(Reader markdown) throws IOException, SAXException {
73+
this(markdown, new MarkdownStyle());
74+
}
75+
6376
public void draw(float x, float y, float width, float mouseX, float mouseY,
6477
//#if MC >= 12000
6578
DrawContext drawContext

0 commit comments

Comments
 (0)