Index: lams_common/src/java/org/lamsfoundation/lams/questions/QuestionWordParser.java =================================================================== diff -u -r7060fa5b595fa324e138924099faf98e52cb5ca1 -r2c52dcf9e8a2e9b9304ad7649c5e8d5cda01cf1a --- lams_common/src/java/org/lamsfoundation/lams/questions/QuestionWordParser.java (.../QuestionWordParser.java) (revision 7060fa5b595fa324e138924099faf98e52cb5ca1) +++ lams_common/src/java/org/lamsfoundation/lams/questions/QuestionWordParser.java (.../QuestionWordParser.java) (revision 2c52dcf9e8a2e9b9304ad7649c5e8d5cda01cf1a) @@ -61,6 +61,7 @@ private static Logger log = Logger.getLogger(QuestionWordParser.class); private final static String QUESTION_BREAK = "{question}"; + private static final String CUSTOM_IMAGE_TAG_REGEX = "\\[IMAGE: .*?]"; /** * Extracts questions from IMS QTI zip file. @@ -190,7 +191,11 @@ } else { if (StringUtils.isBlank(question.getTitle())) { - question.setTitle(formattedText); + //remove "[IMAGE: ]" tags + String title = text.replaceAll(QuestionWordParser.CUSTOM_IMAGE_TAG_REGEX, ""); + //trim to 200 characters while preserving the last full word + title = title.replaceAll("(?<=.{200})\\b.*", "..."); + question.setTitle(title); } //add question description that goes before all options