Для одного из своих проектов возникла необходимость создать базу знаний из документов, но таким образом, чтобы можно было каждый абзац, раздел и прочий элемент документа использовать в другом модуле. Причем ссылаться на определенный текст можно было бы с соблюдением иерархии в документе: Страница -> Раздел -> Абзац.
В итоге за недельку набросал модуль doc — редактор конструктор.