X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Fgofetch%2Foutput%2FHtml.java;h=385df8bf8da919416ccf672a623fa9288c0ab585;hb=3e62b034c1981ae6329f06b3f8c0ee25c3683789;hp=ab7489b47dedf593f409139057be1a24b9d03a72;hpb=737852686d8897331706ed4b902dbd9d5038cb53;p=gofetch.git diff --git a/src/be/nikiroo/gofetch/output/Html.java b/src/be/nikiroo/gofetch/output/Html.java index ab7489b..385df8b 100644 --- a/src/be/nikiroo/gofetch/output/Html.java +++ b/src/be/nikiroo/gofetch/output/Html.java @@ -1,19 +1,38 @@ package be.nikiroo.gofetch.output; -import java.util.List; - import be.nikiroo.gofetch.data.Comment; import be.nikiroo.gofetch.data.Story; -import be.nikiroo.gofetch.support.BasicSupport.Type; +import be.nikiroo.gofetch.support.Type; +import be.nikiroo.utils.StringUtils; public class Html extends Output { - public Html(Type type) { - super(type); + public Html(Type type, String hostname, String preselector, int port) { + super(type, hostname, preselector, port); } @Override public String getIndexHeader() { - return "

Hello world!


TODO\n"; + String sel = preselector; + if (!sel.isEmpty()) { + sel = "/1" + sel; + } + + String gopherUrl = "gopher://" + hostname + sel + ":" + port; + + StringBuilder builder = new StringBuilder(); + appendPre(builder); + + builder.append("

News

\n"// + + "

You will find here a few pages full of news, mirroring " + + gopherUrl + + ".

\n"// + + "

They are simply scrapped from their associated webpage and updated a few times a day.

\n"// + ); + + appendPost(builder); + + return builder.toString(); } @Override @@ -22,59 +41,120 @@ public class Html extends Output { } @Override - public String export(Story story) { - return appendHtml(new StringBuilder(), story, true).append("
\n") - .toString(); + public String exportHeader(Story story) { + StringBuilder builder = new StringBuilder(); + + appendPre(builder); + + builder.append("
\n"); + appendHtml(builder, story, true); + builder.append("
\n"); + builder.append("
\n"); + + appendPost(builder); + + return builder.toString(); } @Override - public String export(Story story, List comments) { + public String export(Story story) { StringBuilder builder = new StringBuilder(); - appendHtml(builder, story, false); + appendPre(builder); - // TODO: ext link and link + builder.append("
\n"); + appendHtml(builder, story, false); + builder.append("
\n"); - builder.append("
"); - for (Comment comment : comments) { - appendHtml(builder, comment, " "); + if (story.getComments() != null) { + for (Comment comment : story.getComments()) { + appendHtml(builder, comment, " "); + } } + builder.append("
\n"); + + appendPost(builder); + return builder.toString(); } + private void appendPre(StringBuilder builder) { + builder.append("\n"); + builder.append("\n"); + builder.append("\n"); + builder.append(" \n"); + builder.append(" \n"); + builder.append(" \n"); + builder.append("\n"); + builder.append("\n"); + } + + private void appendPost(StringBuilder builder) { + builder.append("\n"); + } + private void appendHtml(StringBuilder builder, Comment comment, String space) { - builder.append(space).append( - "
"); + builder.append(space) + .append("
\n"); builder.append(space).append("

").append(comment.getTitle()) .append("

\n"); - builder.append(space).append("
") + builder.append(space) + .append("
") .append(comment.getAuthor()).append("
\n"); - builder.append(space).append("
") - .append(comment.getContent()).append("
\n"); + builder.append(space).append("
"); + for (String line : comment.getContentLines()) { + builder.append("

" + line + "

"); + } + builder.append("
\n"); for (Comment subComment : comment) { appendHtml(builder, subComment, space + " "); } - builder.append(space).append("
"); + builder.append(space).append("
\n"); } private StringBuilder appendHtml(StringBuilder builder, Story story, - boolean links) { - // TODO - builder.append("
"); - if (links) { + boolean resume) { + if (resume) { builder.append("

" - + story.getTitle() + "

"); + + story.getTitle() + "\n"); + } else { + builder.append("

" + story.getTitle() + "

\n"); + } + + builder.append("
"); + if (story.getDetails() != null && !story.getDetails().isEmpty()) { + builder.append("(") + .append(StringUtils.xmlEscape(story.getDetails())) + .append(")"); + } + builder.append("
\n"); + builder.append("
\n"); + + if (!resume) { + builder.append(" \n"); + builder.append("
\n"); + } + + builder.append("
\n"); + if (resume) { + builder.append(" " + StringUtils.xmlEscape(story.getContent()) + + "\n"); } else { - builder.append("

" + story.getTitle() + "

"); + builder.append(" " + + StringUtils.xmlEscape(story.getFullContent()) + .replace("\n", "
").replace("[ ", "

") + .replace(" ]", "

") + "\n"); } - builder.append("
(" + story.getDetails() - + ")
"); - builder.append("
"); - builder.append("
"); - builder.append(" " + story.getContent()); - builder.append("
"); - builder.append("
"); + builder.append("
\n"); return builder; }