update
All checks were successful
Markup Tests / test (push) Successful in 8s
Markdown to Html Tests / test (push) Successful in 17s

This commit is contained in:
2026-02-17 09:32:08 +03:00
commit 2f05f238e9
109 changed files with 9369 additions and 0 deletions

View File

@@ -0,0 +1,66 @@
package markup;
import java.util.List;
/**
* @author Nikita Doschennikov (me@fymio.us)
*/
public abstract class AbstractMarkup implements Markdown, Html, Tex {
protected final List<? extends Markup> items;
private final String highlightMarkdown;
private final String highlightHtml;
private final String highlightTexOpen;
private final String highlightTexClose;
protected AbstractMarkup(
List<? extends Markup> items,
String highlightMarkdown,
String highlightHtml,
String highlightTexOpen,
String highlightTexClose
) {
this.items = items;
this.highlightMarkdown = highlightMarkdown;
this.highlightHtml = highlightHtml;
this.highlightTexOpen = highlightTexOpen;
this.highlightTexClose = highlightTexClose;
}
@Override
public void toMarkdown(StringBuilder sb) {
sb.append(highlightMarkdown);
for (Markup item : items) {
item.toMarkdown(sb);
}
sb.append(highlightMarkdown);
}
@Override
public void toHtml(StringBuilder sb) {
if (!highlightHtml.isEmpty()) {
sb.append("<").append(highlightHtml).append(">");
}
for (Markup item : items) {
item.toHtml(sb);
}
if (!highlightHtml.isEmpty()) {
sb.append("</").append(highlightHtml).append(">");
}
}
@Override
public void toTex(StringBuilder sb) {
sb.append(highlightTexOpen);
for (Markup item : items) {
if (item instanceof Text) {
((Text) item).toTex(sb);
} else if (item instanceof AbstractMarkup) {
((AbstractMarkup) item).toTex(sb);
} else if (item instanceof AbstractList) {
((AbstractList) item).toTex(sb);
}
}
sb.append(highlightTexClose);
}
}