Хочется странного и весьма противоречивого:
1. просто текст - не бывает без абзацев; вообще не бывает тектста вне блочных тэгов в <body> (ну или что там вместо него).
2. текст в блоках (раздел (<div>), ячейка таблицы, цитата) может как быть в абзаце, так и не быть.
3. если уже где-то в блоке есть абзац, то ВЕСЬ текст в этом блоке должен быть в абзацах.
4. нужна возможность как сделать один абзац в блоке, так и оставить просто текстом.
пункт 1. вопросов не вызывает;
пункт 4. тоже - если в блоке текст начинается с пустой строки - это точно абзац, даже если он один;
сложность тут - пока идёт текст в блоке, его нельзя выводить пока ещё не ясно - в абзаце он или нет
(то есть пока не встретится или следующий абзац или конец блока).
Подобный механизм я использовал для заголовочных ячеек ||** текст **|| и чего-то подобного;
понавешать на него ещё и абзацы не получилось - ещё бы, я хотел сделать их параллельно, но
в wiki у меня ИЛИ заголовочные (<th>) ячейки ИЛИ абзацы. Заголовочная ячейка - значит не абзац.
Жаль, что понял только сейчас, теперь будет проще реализовать.