Skip to content

Commit

Permalink
fix commons-lang3 xml escaping for rss feed - was never enabled
Browse files Browse the repository at this point in the history
  • Loading branch information
rmannibucau committed Dec 2, 2022
1 parent 2fefe75 commit e85b86d
Showing 1 changed file with 14 additions and 15 deletions.
29 changes: 14 additions & 15 deletions minisite-core/src/main/java/io/yupiik/tools/minisite/MiniSite.java
Original file line number Diff line number Diff line change
Expand Up @@ -674,11 +674,7 @@ private String generateRssFeed(final Map<Page, Path> files) {
.sorted(Map.Entry.<Page, OffsetDateTime>comparingByValue().reversed())
.collect(toList());

final Function<String, String> escaper = findXmlEscaper().andThen(text -> text
// https://www.htmlhelp.com/reference/html40/entities/special.html
.replace("&", "&#x26;")
.replace("<", "&#x3C;")
.replace(">", "&#x3E;"));
final Function<String, String> escaper = findXmlEscaper();
final DateTimeFormatter formatter = DateTimeFormatter.RFC_1123_DATE_TIME;
final String baseSite = configuration.getSiteBase() + (!configuration.getSiteBase().endsWith("/") ? "/" : "");
final String items = all.stream()
Expand Down Expand Up @@ -713,9 +709,8 @@ private String generateRssFeed(final Map<Page, Path> files) {

private Function<String, String> findXmlEscaper() {
try { // todo: absorb it there to avoid the need of the dep
// org.apache.commons.lang3.StringEscapeUtils.escapeXml11
final Class<?> clazz = Thread.currentThread().getContextClassLoader().loadClass("org.apache.commons.lang3.StringEscapeUtils");
final Method escapeXml11 = clazz.getMethod("escapeXml11");
final Method escapeXml11 = clazz.getMethod("escapeXml11", String.class);
if (!escapeXml11.isAccessible()) {
escapeXml11.setAccessible(true);
}
Expand All @@ -737,7 +732,11 @@ private Function<String, String> findXmlEscaper() {
}

protected String xmlEscape(final String text) {
return text;
return text
// https://www.htmlhelp.com/reference/html40/entities/special.html
.replace("&", "&#x26;")
.replace("<", "&#x3C;")
.replace(">", "&#x3E;");
}

protected Consumer<Function<Page, String>> onVisitedFile(final Page page, final Asciidoctor asciidoctor,
Expand Down Expand Up @@ -1204,13 +1203,13 @@ public FileVisitResult visitFile(final Path file, final BasicFileAttributes attr
protected String renderText(final String text) {
if (text.startsWith("adoc:")) {
return configuration.getAsciidoctorPool().apply(
configuration.getAsciidoctorConfiguration(),
a -> a.convert(text.substring("adoc:".length()), Options.builder()
.safe(SafeMode.UNSAFE)
.backend("html5")
.inPlace(false)
.headerFooter(false)
.build()))
configuration.getAsciidoctorConfiguration(),
a -> a.convert(text.substring("adoc:".length()), Options.builder()
.safe(SafeMode.UNSAFE)
.backend("html5")
.inPlace(false)
.headerFooter(false)
.build()))
.toString();
}
return text;
Expand Down

0 comments on commit e85b86d

Please sign in to comment.