-while ($row = $query->fetch()) {
- if (!$prev or $prev->issue !== $row->issue or $prev->author !== $row->author) {
+foreach ($rows as $i => $row) {
+ $next = $rows[$i + 1] ?? NULL;
+
+ if ($next and $next->issue === $row->issue
+ and preg_match('/\A(?:<p><img[^>]*><\/p>)+\z/', $row->message)) {
+ # postpone related image to the following message
+ $next->message = $row->message . $next->message;
+ continue;
+ }
+
+ if (!$prev or $prev->issue !== $row->issue or $prev->author !== $row->author
+ or !preg_match('/\A<p><img/', $prev->message)) {