X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Ftemplate%2FParserFilter.java;h=332f504bbf90273df00f012457fced02242804d7;hb=1bc78b582ac59f2438002997f5780db4dcee0a2a;hp=2a4d5b428a03b591a70db441aa9e73557933a615;hpb=500bac8a74b0ec844ef3007ec3afd7467eba0ce7;p=Sone.git diff --git a/src/main/java/net/pterodactylus/sone/template/ParserFilter.java b/src/main/java/net/pterodactylus/sone/template/ParserFilter.java index 2a4d5b4..332f504 100644 --- a/src/main/java/net/pterodactylus/sone/template/ParserFilter.java +++ b/src/main/java/net/pterodactylus/sone/template/ParserFilter.java @@ -93,6 +93,13 @@ public class ParserFilter implements Filter { } catch (NumberFormatException nfe1) { /* ignore. */ } + if ((length == -1) && (parameters.get("length") != null)) { + try { + length = Integer.parseInt(String.valueOf(templateContext.get(parameters.get("length")))); + } catch (NumberFormatException nfe1) { + /* ignore. */ + } + } String soneKey = parameters.get("sone"); if (soneKey == null) { soneKey = "sone"; @@ -279,10 +286,11 @@ public class ParserFilter implements Filter { * @return The excerpt of the text */ private static String getExcerpt(String text, int length) { - if (text.length() > length) { - return text.substring(0, length) + "…"; + String filteredText = text.replaceAll("(\r\n)+", "\r\n").replaceAll("\n+", "\n").replace("\r\n", " ").replace('\n', ' '); + if (filteredText.length() > length) { + return filteredText.substring(0, length) + "…"; } - return text; + return filteredText; } }