This is an automated email from the ASF dual-hosted git repository. meonkeys pushed a commit to branch main in repository https://gitbox.apache.org/repos/asf/fineract-chat-archive.git
commit 68893375570e57b7183ed77ef35180623efffb70 Author: Adam Monsen <[email protected]> AuthorDate: Tue Feb 17 12:42:52 2026 -0800 add some linebreaks to HTML output so when there are changes to the archive they are easier to diff --- .../apache/fineract/chat/archive/HtmlRenderer.java | 84 +++++++++++----------- 1 file changed, 42 insertions(+), 42 deletions(-) diff --git a/src/main/java/org/apache/fineract/chat/archive/HtmlRenderer.java b/src/main/java/org/apache/fineract/chat/archive/HtmlRenderer.java index 040a439..cb395e1 100644 --- a/src/main/java/org/apache/fineract/chat/archive/HtmlRenderer.java +++ b/src/main/java/org/apache/fineract/chat/archive/HtmlRenderer.java @@ -43,7 +43,7 @@ final class HtmlRenderer { String safeDate = escapeHtml(date.toString()); StringBuilder body = new StringBuilder(); - body.append("<header class=\"archive-header\">") + body.append("<header class=\"archive-header\">\n") .append("<p class=\"archive-breadcrumb\">") .append("<a href=\"../../../\">Channels</a> / ") .append("<a href=\"../\">#").append(safeChannel).append("</a> / ") @@ -68,7 +68,7 @@ final class HtmlRenderer { body.append(renderMessageRow(row)); int replyIndex = index + 1; if (replyIndex < rows.size() && rows.get(replyIndex).isReply()) { - body.append("<section class=\"archive-thread\" aria-label=\"Thread replies\">"); + body.append("<section class=\"archive-thread\" aria-label=\"Thread replies\">\n"); while (replyIndex < rows.size() && rows.get(replyIndex).isReply()) { body.append(renderMessageRow(rows.get(replyIndex))); replyIndex++; @@ -87,22 +87,22 @@ final class HtmlRenderer { String safeChannel = escapeHtml(normalize(channelName)); StringBuilder body = new StringBuilder(); - body.append("<header class=\"archive-header\">") - .append("<p class=\"archive-breadcrumb\">") + body.append("<header class=\"archive-header\">\n") + .append("<p class=\"archive-breadcrumb\">\n") .append("<a href=\"../../\">Channels</a> / #").append(safeChannel) - .append("</p>") - .append("<h1>#").append(safeChannel).append("</h1>") - .append("</header>"); - body.append("<section class=\"archive-index\">") - .append("<h2>Days</h2>") - .append("<ul class=\"archive-day-list\">"); + .append("</p>\n") + .append("<h1>#").append(safeChannel).append("</h1>\n") + .append("</header>\n"); + body.append("<section class=\"archive-index\">\n") + .append("<h2>Days</h2>\n") + .append("<ul class=\"archive-day-list\">\n"); for (LocalDate date : dates) { String safeDate = escapeHtml(date.toString()); - body.append("<li><a href=\"").append(safeDate).append("/\">") + body.append("<li><a href=\"").append(safeDate).append("/\">\n") .append(safeDate) - .append("</a></li>"); + .append("</a></li>\n"); } - body.append("</ul>") + body.append("</ul>\n") .append("</section>"); return renderDocument("#" + normalize(channelName), CHANNEL_STYLESHEET_PATH, @@ -111,21 +111,21 @@ final class HtmlRenderer { static String renderGlobalIndex(List<String> channels) { StringBuilder body = new StringBuilder(); - body.append("<header class=\"archive-header\">") - .append("<h1>Chat Archive</h1>") - .append("</header>"); - body.append("<section class=\"archive-index\">") - .append("<h2>Channels</h2>") - .append("<ul class=\"archive-channel-list\">"); + body.append("<header class=\"archive-header\">\n") + .append("<h1>Chat Archive</h1>\n") + .append("</header>\n"); + body.append("<section class=\"archive-index\">\n") + .append("<h2>Channels</h2>\n") + .append("<ul class=\"archive-channel-list\">\n"); for (String channel : channels) { String safeChannel = escapeHtml(normalize(channel)); body.append("<li><a href=\"daily/") .append(safeChannel) .append("/\">#") .append(safeChannel) - .append("</a></li>"); + .append("</a></li>\n"); } - body.append("</ul>") + body.append("</ul>\n") .append("</section>"); return renderDocument("Chat Archive", ROOT_STYLESHEET_PATH, body.toString()); @@ -158,28 +158,28 @@ final class HtmlRenderer { if (row.isReply()) { builder.append(" archive-message-reply"); } - builder.append("\">"); - builder.append("<div class=\"archive-meta\">"); + builder.append("\">\n"); + builder.append("<div class=\"archive-meta\">\n"); if (row.isReply()) { - builder.append("<span class=\"archive-reply-indicator\" aria-hidden=\"true\">→</span>"); - builder.append("<span class=\"archive-reply-label\">reply</span>"); + builder.append("<span class=\"archive-reply-indicator\" aria-hidden=\"true\">→</span>\n"); + builder.append("<span class=\"archive-reply-label\">reply</span>\n"); } builder.append(formatTimeCell(row)); - builder.append("<span class=\"archive-user\">") + builder.append("<span class=\"archive-user\">\n") .append(escapeHtml(normalize(row.user()))) - .append("</span>"); - builder.append("</div>"); - builder.append("<div class=\"archive-text\">") + .append("</span>\n"); + builder.append("</div>\n"); + builder.append("<div class=\"archive-text\">\n") .append(formatMessage(row.message())) - .append("</div>"); + .append("</div>\n"); if (row.reactions() != null && !row.reactions().isEmpty()) { builder.append("<div class=\"archive-reactions\">"); for (String reaction : row.reactions()) { - builder.append("<span class=\"archive-reaction\">") + builder.append("<span class=\"archive-reaction\">\n") .append(escapeHtml(normalize(reaction))) - .append("</span>"); + .append("</span>\n"); } - builder.append("</div>"); + builder.append("</div>\n"); } builder.append("</article>"); return builder.toString(); @@ -203,14 +203,14 @@ final class HtmlRenderer { listType = switchToList(builder, listType, ListType.UNORDERED); builder.append("<li>") .append(applyInlineMarkup(unorderedMatcher.group(1).trim())) - .append("</li>"); + .append("</li>\n"); continue; } if (orderedMatcher.matches()) { listType = switchToList(builder, listType, ListType.ORDERED); builder.append("<li>") .append(applyInlineMarkup(orderedMatcher.group(1).trim())) - .append("</li>"); + .append("</li>\n"); continue; } @@ -220,13 +220,13 @@ final class HtmlRenderer { } if (line.isBlank()) { - builder.append("<br>"); + builder.append("<br>\n"); continue; } - builder.append("<span class=\"archive-line\">") + builder.append("<span class=\"archive-line\">\n") .append(applyInlineMarkup(line)) - .append("</span>"); + .append("</span>\n"); if (index < lines.length - 1) { builder.append("<br>"); } @@ -279,18 +279,18 @@ final class HtmlRenderer { closeList(builder, current); } if (target == ListType.UNORDERED) { - builder.append("<ul class=\"archive-list\">"); + builder.append("<ul class=\"archive-list\">\n"); } else if (target == ListType.ORDERED) { - builder.append("<ol class=\"archive-list archive-list-numbered\">"); + builder.append("<ol class=\"archive-list archive-list-numbered\">\n"); } return target; } private static void closeList(StringBuilder builder, ListType type) { if (type == ListType.UNORDERED) { - builder.append("</ul>"); + builder.append("</ul>\n"); } else if (type == ListType.ORDERED) { - builder.append("</ol>"); + builder.append("</ol>\n"); } }
