Index: lams_common/src/java/org/lamsfoundation/lams/questions/QuestionWordParser.java =================================================================== diff -u -re376b240aecf9b255b8b26fe22c3d33c70f67ddb -rced545c66bb69bcc44131468672f09da3d34eeb3 --- lams_common/src/java/org/lamsfoundation/lams/questions/QuestionWordParser.java (.../QuestionWordParser.java) (revision e376b240aecf9b255b8b26fe22c3d33c70f67ddb) +++ lams_common/src/java/org/lamsfoundation/lams/questions/QuestionWordParser.java (.../QuestionWordParser.java) (revision ced545c66bb69bcc44131468672f09da3d34eeb3) @@ -58,6 +58,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. @@ -187,7 +188,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