1 package be
.nikiroo
.gofetch
.output
;
3 import be
.nikiroo
.gofetch
.data
.Comment
;
4 import be
.nikiroo
.gofetch
.data
.Story
;
5 import be
.nikiroo
.gofetch
.support
.BasicSupport
.Type
;
7 public class Html
extends Output
{
8 public Html(Type type
, String hostname
, String preselector
, int port
) {
9 super(type
, hostname
, preselector
, port
);
13 public String
getIndexHeader() {
14 String sel
= preselector
;
19 String gopherUrl
= "gopher://" + hostname
+ sel
+ ":" + port
;
21 StringBuilder builder
= new StringBuilder();
24 builder
.append("<h1>News</h1>\n"//
25 + "<p>You will find here a few pages full of news, mirroring <a href='"
29 + "<p>They are simply scrapped from their associated webpage and updated a few times a day.</p>\n"//
34 return builder
.toString();
38 public String
getIndexFooter() {
43 public String
exportHeader(Story story
) {
44 StringBuilder builder
= new StringBuilder();
48 builder
.append("<div class='story-header'>\n");
49 appendHtml(builder
, story
, true);
50 builder
.append("<hr/>\n");
51 builder
.append("</div>\n");
55 return builder
.toString();
59 public String
export(Story story
) {
60 StringBuilder builder
= new StringBuilder();
63 builder
.append("<div class='story'>\n");
64 appendHtml(builder
, story
, false);
65 builder
.append("<hr/>\n");
67 if (story
.getComments() != null) {
68 for (Comment comment
: story
.getComments()) {
69 appendHtml(builder
, comment
, " ");
73 builder
.append("</div>\n");
77 return builder
.toString();
80 private void appendPre(StringBuilder builder
) {
81 builder
.append("<!DOCTYPE html>\n");
82 builder
.append("<html>\n");
83 builder
.append("<head>\n");
84 builder
.append(" <meta http-equiv='content-type' content='text/html; charset=utf-8'>\n");
85 builder
.append(" <meta name='viewport' content='width=device-width, initial-scale=1.0'>\n");
86 builder
.append(" <style type='text/css'>\n");
87 builder
.append(" body { margin: 1em 15%; }\n");
88 builder
.append(" </style>\n");
89 builder
.append("</head>\n");
90 builder
.append("<body>\n");
93 private void appendPost(StringBuilder builder
) {
94 builder
.append("</body>\n");
97 private void appendHtml(StringBuilder builder
, Comment comment
, String space
) {
99 .append("<div class='comment' style='display: block; margin-left: 80px'>\n");
100 builder
.append(space
).append(" <h2>").append(comment
.getTitle())
102 builder
.append(space
).append(" <div class='by'>")
103 .append(comment
.getAuthor()).append("</div>\n");
104 builder
.append(space
).append(" <div class='comment_content'>")
105 .append(comment
.getContent()).append("</div>\n");
106 for (Comment subComment
: comment
) {
107 appendHtml(builder
, subComment
, space
+ " ");
109 builder
.append(space
).append("</div>\n");
112 private StringBuilder
appendHtml(StringBuilder builder
, Story story
,
115 builder
.append(" <h1><a href='" + story
.getId() + ".html'>"
116 + story
.getTitle() + "</a></h1>\n");
118 builder
.append(" <h1>" + story
.getTitle() + "</h1>\n");
120 builder
.append(" <div class='details'>(" + story
.getDetails()
122 builder
.append(" <br/>\n");
125 builder
.append(" <ul>\n");
126 builder
.append(" <li>News link: <a href='"
127 + story
.getUrlInternal() + "'>" + story
.getUrlInternal()
129 builder
.append(" <li>Source link: <a href='"
130 + story
.getUrlExternal() + "'>" + story
.getUrlExternal()
132 builder
.append(" </ul>\n");
133 builder
.append(" <br/>\n");
136 builder
.append(" <div class='content' style='text-align: justify'>\n");
138 builder
.append(" " + story
.getContent() + "\n");
140 builder
.append(" " + story
.getFullContent() + "\n");
142 builder
.append(" </div>\n");