aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2016-02-14 19:14:51 +0000
committerMichael Williamson <mike@zwobble.org>2016-02-14 19:14:51 +0000
commit349b99b8aa61567fc7ede9655bc0ba5618cb2068 (patch)
tree4aa9c71e9e27ea719411d8985dab63000d139458 /src
parent18eeece582566980eb01f86e89763cb0af0455da (diff)
Use collapsible element for paragraph containing back link
Diffstat (limited to 'src')
-rw-r--r--src/main/java/org/zwobble/mammoth/DocumentConverter.java3
-rw-r--r--src/main/java/org/zwobble/mammoth/html/Html.java10
-rw-r--r--src/main/java/org/zwobble/mammoth/html/HtmlElement.java4
-rw-r--r--src/test/java/org/zwobble/mammoth/tests/DocumentConverterTests.java2
4 files changed, 14 insertions, 5 deletions
diff --git a/src/main/java/org/zwobble/mammoth/DocumentConverter.java b/src/main/java/org/zwobble/mammoth/DocumentConverter.java
index 089020b..71fdaeb 100644
--- a/src/main/java/org/zwobble/mammoth/DocumentConverter.java
+++ b/src/main/java/org/zwobble/mammoth/DocumentConverter.java
@@ -58,8 +58,7 @@ public class DocumentConverter {
String referenceId = generateNoteRefHtmlId(note.getNoteType(), note.getId());
ImmutableList.Builder<HtmlNode> children = ImmutableList.builder();
children.addAll(convertToHtml(note.getBody()));
- // TODO: should be collapsible
- children.add(Html.element("p", list(
+ children.add(Html.collapsibleElement("p", list(
Html.text(" "),
Html.element("a", map("href", "#" + referenceId), list(Html.text("↑"))))));
return Html.element("li", map("id", id), children.build());
diff --git a/src/main/java/org/zwobble/mammoth/html/Html.java b/src/main/java/org/zwobble/mammoth/html/Html.java
index ca9597a..0a32e58 100644
--- a/src/main/java/org/zwobble/mammoth/html/Html.java
+++ b/src/main/java/org/zwobble/mammoth/html/Html.java
@@ -32,7 +32,15 @@ public class Html {
}
public static HtmlNode element(String tagName, Map<String, String> attributes, List<HtmlNode> children) {
- return new HtmlElement(tagName, attributes, children);
+ return new HtmlElement(tagName, attributes, children, false);
+ }
+
+ public static HtmlNode collapsibleElement(String tagName, List<HtmlNode> children) {
+ return collapsibleElement(tagName, map(), children);
+ }
+
+ public static HtmlNode collapsibleElement(String tagName, Map<String, String> attributes, List<HtmlNode> children) {
+ return new HtmlElement(tagName, attributes, children, true);
}
public static HtmlNode selfClosingElement(String tagName) {
diff --git a/src/main/java/org/zwobble/mammoth/html/HtmlElement.java b/src/main/java/org/zwobble/mammoth/html/HtmlElement.java
index 637b009..59683ba 100644
--- a/src/main/java/org/zwobble/mammoth/html/HtmlElement.java
+++ b/src/main/java/org/zwobble/mammoth/html/HtmlElement.java
@@ -7,11 +7,13 @@ public class HtmlElement implements HtmlNode {
private final String tagName;
private final Map<String, String> attributes;
private final List<HtmlNode> children;
+ private final boolean collapsible;
- public HtmlElement(String tagName, Map<String, String> attributes, List<HtmlNode> children) {
+ public HtmlElement(String tagName, Map<String, String> attributes, List<HtmlNode> children, boolean collapsible) {
this.tagName = tagName;
this.attributes = attributes;
this.children = children;
+ this.collapsible = collapsible;
}
public String getTagName() {
diff --git a/src/test/java/org/zwobble/mammoth/tests/DocumentConverterTests.java b/src/test/java/org/zwobble/mammoth/tests/DocumentConverterTests.java
index 4801767..c23623d 100644
--- a/src/test/java/org/zwobble/mammoth/tests/DocumentConverterTests.java
+++ b/src/test/java/org/zwobble/mammoth/tests/DocumentConverterTests.java
@@ -160,7 +160,7 @@ public class DocumentConverterTests {
Html.element("li", map("id", "doc-42-footnote-4"), list(
Html.element("p", list(
Html.text("Who's there?"))),
- Html.element("p", list(
+ Html.collapsibleElement("p", list(
Html.text(" "),
Html.element("a", map("href", "#doc-42-footnote-ref-4"), list(Html.text("↑"))))))))))));
}