Simple script to start a gopher "server"
[gofetch.git] / src / be / nikiroo / gofetch / output / Html.java
CommitLineData
73785268
NR
1package be.nikiroo.gofetch.output;
2
3import java.util.List;
4
5import be.nikiroo.gofetch.data.Comment;
6import be.nikiroo.gofetch.data.Story;
7import be.nikiroo.gofetch.support.BasicSupport.Type;
8
9public class Html extends Output {
10 public Html(Type type) {
11 super(type);
12 }
13
14 @Override
15 public String getIndexHeader() {
16 return "<h1>Hello world!</h1><br/>TODO\n";
17 }
18
19 @Override
20 public String getIndexFooter() {
21 return "";
22 }
23
24 @Override
25 public String export(Story story) {
26 return appendHtml(new StringBuilder(), story, true).append("<hr/>\n")
27 .toString();
28 }
29
30 @Override
31 public String export(Story story, List<Comment> comments) {
32 StringBuilder builder = new StringBuilder();
33 appendHtml(builder, story, false);
34
35 // TODO: ext link and link
36
37 builder.append("<hr/>");
38 for (Comment comment : comments) {
39 appendHtml(builder, comment, " ");
40 }
41
42 return builder.toString();
43 }
44
45 private void appendHtml(StringBuilder builder, Comment comment, String space) {
46 builder.append(space).append(
47 "<div class='comment' style='display: block; margin-left: "
48 + (20 * space.length()) + "px'>");
49 builder.append(space).append(" <h2>").append(comment.getTitle())
50 .append("</h2>\n");
51 builder.append(space).append(" <div class='by'>")
52 .append(comment.getAuthor()).append("</div>\n");
53 builder.append(space).append(" <div class='comment_content'>")
54 .append(comment.getContent()).append("</div>\n");
55 for (Comment subComment : comment) {
56 appendHtml(builder, subComment, space + " ");
57 }
58 builder.append(space).append("</div>");
59 }
60
61 private StringBuilder appendHtml(StringBuilder builder, Story story,
62 boolean links) {
63 // TODO
64 builder.append("<div class='story'>");
65 if (links) {
66 builder.append(" <h1><a href='" + story.getId() + ".html'>"
67 + story.getTitle() + "</a></h1>");
68 } else {
69 builder.append(" <h1>" + story.getTitle() + "</h1>");
70 }
71 builder.append(" <div class='details'>(" + story.getDetails()
72 + ")</div>");
73 builder.append(" <br/>");
74 builder.append(" <div class='content'>");
75 builder.append(" " + story.getContent());
76 builder.append(" </div>");
77 builder.append("</div>");
78
79 return builder;
80 }
81}