diff --git a/src/main/java/io/github/robwin/markup/builder/AbstractMarkupDocBuilder.java b/src/main/java/io/github/robwin/markup/builder/AbstractMarkupDocBuilder.java index aaacc4b5..10fc1280 100644 --- a/src/main/java/io/github/robwin/markup/builder/AbstractMarkupDocBuilder.java +++ b/src/main/java/io/github/robwin/markup/builder/AbstractMarkupDocBuilder.java @@ -109,6 +109,11 @@ public abstract class AbstractMarkupDocBuilder implements MarkupDocBuilder { return this; } + @Override + public String inlineCrossReference(String anchor) { + return inlineCrossReference(anchor, null); + } + @Override public MarkupDocBuilder newLine(){ documentBuilder.append(newLine); diff --git a/src/main/java/io/github/robwin/markup/builder/MarkupDocBuilder.java b/src/main/java/io/github/robwin/markup/builder/MarkupDocBuilder.java index c23997ed..a7b03248 100644 --- a/src/main/java/io/github/robwin/markup/builder/MarkupDocBuilder.java +++ b/src/main/java/io/github/robwin/markup/builder/MarkupDocBuilder.java @@ -62,14 +62,20 @@ public interface MarkupDocBuilder { MarkupDocBuilder anchor(String anchor); + String inlineAnchor(String anchor); + /** * @param anchor Target anchor * @param text If not null, display this text instead of anchor */ MarkupDocBuilder crossReference(String anchor, String text); + String inlineCrossReference(String anchor, String text); + MarkupDocBuilder crossReference(String anchor); + String inlineCrossReference(String anchor); + MarkupDocBuilder newLine(); /** diff --git a/src/main/java/io/github/robwin/markup/builder/asciidoc/AsciiDocBuilder.java b/src/main/java/io/github/robwin/markup/builder/asciidoc/AsciiDocBuilder.java index 9dc1eb98..0270f739 100644 --- a/src/main/java/io/github/robwin/markup/builder/asciidoc/AsciiDocBuilder.java +++ b/src/main/java/io/github/robwin/markup/builder/asciidoc/AsciiDocBuilder.java @@ -132,19 +132,33 @@ public class AsciiDocBuilder extends AbstractMarkupDocBuilder { @Override public MarkupDocBuilder anchor(String anchor) { - documentBuilder.append(AsciiDoc.ANCHOR_START).append(normalizeReferenceAnchor(anchor)).append(AsciiDoc.ANCHOR_END); + documentBuilder.append(inlineAnchor(anchor)); return this; } + @Override + public String inlineAnchor(String anchor) { + StringBuilder stringBuilder = new StringBuilder(); + stringBuilder.append(AsciiDoc.ANCHOR_START).append(normalizeReferenceAnchor(anchor)).append(AsciiDoc.ANCHOR_END); + return stringBuilder.toString(); + } + @Override public MarkupDocBuilder crossReference(String anchor, String text) { - if (text == null) - documentBuilder.append(AsciiDoc.CROSS_REFERENCE_START).append(normalizeReferenceAnchor(anchor)).append(AsciiDoc.CROSS_REFERENCE_END); - else - documentBuilder.append(AsciiDoc.CROSS_REFERENCE_START).append(normalizeReferenceAnchor(anchor)).append(",").append(text).append(AsciiDoc.CROSS_REFERENCE_END); + documentBuilder.append(inlineCrossReference(anchor, text)); return this; } + @Override + public String inlineCrossReference(String anchor, String text) { + StringBuilder stringBuilder = new StringBuilder(); + if (text == null) + stringBuilder.append(AsciiDoc.CROSS_REFERENCE_START).append(normalizeReferenceAnchor(anchor)).append(AsciiDoc.CROSS_REFERENCE_END); + else + stringBuilder.append(AsciiDoc.CROSS_REFERENCE_START).append(normalizeReferenceAnchor(anchor)).append(",").append(text).append(AsciiDoc.CROSS_REFERENCE_END); + return stringBuilder.toString(); + } + private String escapeTableCell(String cell) { return cell.replace(AsciiDoc.TABLE_COLUMN_DELIMITER.toString(), AsciiDoc.TABLE_COLUMN_DELIMITER_ESCAPE.toString()); } diff --git a/src/main/java/io/github/robwin/markup/builder/markdown/MarkdownBuilder.java b/src/main/java/io/github/robwin/markup/builder/markdown/MarkdownBuilder.java index aae1a161..2dc8d51b 100644 --- a/src/main/java/io/github/robwin/markup/builder/markdown/MarkdownBuilder.java +++ b/src/main/java/io/github/robwin/markup/builder/markdown/MarkdownBuilder.java @@ -148,22 +148,33 @@ public class MarkdownBuilder extends AbstractMarkupDocBuilder return this; } - // TODO @Override public MarkupDocBuilder anchor(String anchor) { + documentBuilder.append(inlineAnchor(anchor)); return this; } - // TODO + @Override + public String inlineAnchor(String anchor) { + return ""; + } + @Override public MarkupDocBuilder crossReference(String anchor, String text) { - if (text == null) - documentBuilder.append(anchor); - else - documentBuilder.append(text); + documentBuilder.append(inlineCrossReference(anchor, text)); return this; } + @Override + public String inlineCrossReference(String anchor, String text) { + StringBuilder stringBuilder = new StringBuilder(); + if (text == null) + stringBuilder.append(anchor); + else + stringBuilder.append(text); + return stringBuilder.toString(); + } + private String escapeTableCell(String cell) { return cell.replace(Markdown.TABLE_COLUMN_DELIMITER.toString(), Markdown.TABLE_COLUMN_DELIMITER_ESCAPE.toString()); }