Upload files to "java/markup"
This commit is contained in:
47
java/markup/AbstractList.java
Normal file
47
java/markup/AbstractList.java
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
package markup;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Nikita Doschennikov (me@fymio.us)
|
||||||
|
*/
|
||||||
|
public abstract class AbstractList implements ContainsInListItem {
|
||||||
|
|
||||||
|
private final List<ListItem> items;
|
||||||
|
private final String highlight;
|
||||||
|
private final String texBegin;
|
||||||
|
private final String texEnd;
|
||||||
|
|
||||||
|
protected AbstractList(
|
||||||
|
List<ListItem> items,
|
||||||
|
String highlight,
|
||||||
|
String texBegin,
|
||||||
|
String texEnd
|
||||||
|
) {
|
||||||
|
this.items = items;
|
||||||
|
this.highlight = highlight;
|
||||||
|
this.texBegin = texBegin;
|
||||||
|
this.texEnd = texEnd;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void toHtml(StringBuilder sb) {
|
||||||
|
sb.append("<").append(highlight).append(">");
|
||||||
|
for (ListItem item : items) {
|
||||||
|
item.toHtml(sb);
|
||||||
|
}
|
||||||
|
sb.append("</").append(highlight).append(">");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void toMarkdown(StringBuilder sb) {}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void toTex(StringBuilder sb) {
|
||||||
|
sb.append(texBegin);
|
||||||
|
for (ListItem item : items) {
|
||||||
|
item.toTex(sb);
|
||||||
|
}
|
||||||
|
sb.append(texEnd);
|
||||||
|
}
|
||||||
|
}
|
||||||
66
java/markup/AbstractMarkup.java
Normal file
66
java/markup/AbstractMarkup.java
Normal 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);
|
||||||
|
}
|
||||||
|
}
|
||||||
6
java/markup/ContainsInListItem.java
Normal file
6
java/markup/ContainsInListItem.java
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
package markup;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Nikita Doschennikov (me@fymio.us)
|
||||||
|
*/
|
||||||
|
public interface ContainsInListItem extends Markup {}
|
||||||
13
java/markup/Emphasis.java
Normal file
13
java/markup/Emphasis.java
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
package markup;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Nikita Doschennikov (me@fymio.us)
|
||||||
|
*/
|
||||||
|
public class Emphasis extends AbstractMarkup implements PartOfParagraph {
|
||||||
|
|
||||||
|
public Emphasis(List<PartOfParagraph> items) {
|
||||||
|
super(items, "*", "em", "\\emph{", "}");
|
||||||
|
}
|
||||||
|
}
|
||||||
8
java/markup/Html.java
Normal file
8
java/markup/Html.java
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
package markup;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Nikita Doschennikov (me@fymio.us)
|
||||||
|
*/
|
||||||
|
public interface Html {
|
||||||
|
void toHtml(StringBuilder sb);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user