!752 p { File odt = new File(userHome(), "Documents/super-state.odt"); // unwrapContainerTags makes editable lists L> paragraphs = unwrapContainerTags(paragraphsFromODT(odt)); paragraphs = map(paragraphs, func(L p) { dropListPrefix(p, "", "") }); for i over paragraphs: { L p = paragraphs.get(i); int idx; while ((idx = p.indexOf("")) >= 0) { paragraphs.add(i+1, newSubList(p, idx+1)); removeSubList(p, 0, idx+1); } } // nb: we might need to remove formatting if user used any // (not doing that yet) L lines = map(paragraphs, func(L p) { join(" # ", p) }); lines = map(lines, func(S s) { trim(htmldecode(s)) }); paragraphs = groupParagraphs(lines); lines = map(paragraphs, func(L p) { fromLines(p) }); psl(lines); } static L> groupParagraphs(L lines) { ret groupNonEmpty(lines, func(S line) { empty(line) }); }