X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Fgofetch%2Foutput%2FHtml.java;h=0bcc833c330eb58b7b0ea24ac960bf0acf1650c8;hb=c715ea028a2b9865b1b5a619b7cf7553a89aa90d;hp=fea5f67997c0b36ad3f45734051a32ce6d16d911;hpb=e236e220a546081f4572447fc2d01764583680ac;p=gofetch.git diff --git a/src/be/nikiroo/gofetch/output/Html.java b/src/be/nikiroo/gofetch/output/Html.java index fea5f67..0bcc833 100644 --- a/src/be/nikiroo/gofetch/output/Html.java +++ b/src/be/nikiroo/gofetch/output/Html.java @@ -1,10 +1,10 @@ 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.BasicSupport; +import be.nikiroo.gofetch.support.Type; +import be.nikiroo.utils.StringUtils; public class Html extends Output { public Html(Type type, String hostname, String preselector, int port) { @@ -12,89 +12,141 @@ public class Html extends Output { } @Override - public String getIndexHeader() { + public String getMainIndexHeader() { String sel = preselector; if (!sel.isEmpty()) { sel = "/1" + sel; } - + String gopherUrl = "gopher://" + hostname + sel + ":" + port; - return "

News

\n"// + 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 - public String getIndexFooter() { + public String getMainIndexFooter() { return ""; } @Override - public String export(Story story) { + public String getIndexHeader(BasicSupport support) { + return "

" + support.getDescription() + "

\n

"; + } + + @Override + public String getIndexFooter(BasicSupport support) { + return ""; + } + + @Override + 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(); + appendPre(builder); builder.append("
\n"); appendHtml(builder, story, false); builder.append("
\n"); - if (comments != null) { - for (Comment comment : comments) { + 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("

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

\n"); - builder.append(space).append("
") + builder.append(space) + .append("
\n"); + builder.append(space).append("

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

\n"); + 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 resume) { if (resume) { - builder.append("

" - + story.getTitle() + "

\n"); + builder.append("

" + + story.getTitle() + "

\n"); } else { - builder.append("

" + story.getTitle() + "

\n"); + builder.append("

" + story.getTitle() + "

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