X-Git-Url: http://git.nikiroo.be/?a=blobdiff_plain;f=src%2Fbe%2Fnikiroo%2Fgofetch%2Foutput%2FHtml.java;h=a4452643ccf055d6584d74781771370b7c1c8e58;hb=e818d449fee8a5397ab2f05df63bbeffc4c67dc0;hp=c087ef24d91ced582827d5cac32f9dcf8574424f;hpb=70b18499defd9bd4c32f1d60ac44b971678308c2;p=gofetch.git diff --git a/src/be/nikiroo/gofetch/output/Html.java b/src/be/nikiroo/gofetch/output/Html.java index c087ef2..a445264 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,86 +12,141 @@ public class Html extends Output { } @Override - public String getIndexHeader() { - String gopherUrl = "gopher://" + hostname + preselector + ":" + port; + public String getMainIndexHeader() { + String sel = preselector; + if (!sel.isEmpty()) { + sel = "/1" + sel; + } + + String gopherUrl = "gopher://" + hostname + sel + ":" + port; + + StringBuilder builder = new StringBuilder(); + appendPre(builder); - return "

News

\n"// + builder.append("

News

\n"// + "

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

\n"// - + "
\n"// + "

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

\n"// - + "
\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("