diff --git a/core/src/main/java/de/srsoftware/umbrella/core/Util.java b/core/src/main/java/de/srsoftware/umbrella/core/Util.java index ee909fa1..d869a805 100644 --- a/core/src/main/java/de/srsoftware/umbrella/core/Util.java +++ b/core/src/main/java/de/srsoftware/umbrella/core/Util.java @@ -35,7 +35,7 @@ import org.json.JSONObject; public class Util { public static final System.Logger LOG = System.getLogger("Util"); - private static final Pattern UML_PATTERN = Pattern.compile("@start(\\w+)(.*)@end(\\1)",Pattern.DOTALL); + private static final Pattern UML_PATTERN = Pattern.compile("@start(\\w+)(.*?)@end(\\1)",Pattern.DOTALL); private static File plantumlJar = null; private static final JParsedown MARKDOWN = new JParsedown(); public static final String SHA1 = "SHA-1"; @@ -79,7 +79,7 @@ public class Util { try { if (plantumlJar != null && plantumlJar.exists()) { var matcher = UML_PATTERN.matcher(source); - if (matcher.find()) { + while (matcher.find()) { var uml = matcher.group(0).trim(); var start = matcher.start(0); var end = matcher.end(0); @@ -96,6 +96,7 @@ public class Util { byte[] out = is.readAllBytes(); var svg = new String(out, UTF_8); source = source.substring(0, start) + svg + source.substring(end); + matcher = UML_PATTERN.matcher(source); } } }