Created attachment 79962 [details]
An element that is not within text (by default or set explicitly) does not split the text flow of its parent element.
The behavior is the same as if withinText was set to "nested".
Created attachment 79963 [details]
Comment on attachment 79963 [details]
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2013-05-29 15:01+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"Content-Type: text/plain; charset=UTF-8\n"
#. (itstool) path: head/title
msgid "Three text flows"
#. (itstool) path: div/p
msgid "Text flow 2"
#. (itstool) path: body/div
msgid "Text flow 1<_:p-1/>Text flow 3"
Sorry, the attached output file is wrong. The correct content is in the comments on the attachment.
I see the argument for splitting the text, though we've been using the current behavior with substitution markers for a long time. Splitting the text isn't always the right thing to do. But that's why ITS provides withinText="nested". (Currently there's no difference between "nested" and "no" in itstool.)
It turns out this is non-trivial to do. The example you gave is easy, because there are just three nodes (text, p element, text). But if instead we have this:
<div>Text <span>flow</span> 1<p>Text flow 2</p>Text flow 3</div>
Now we'd have to do a substitution on a group of elements, which will require a significant amount of retooling inside itstool.
This would also be a backwards-incompatible change, so if it happens, it should happen in 2.0.