yurikhan: (Default)
[personal profile] yurikhan

В вебфорумостроительстве есть типичная холиварная тема: Плоские темы vs Древовидные темы. У того и другого подходов есть свои плюсы и минусы, мы их здесь обсуждать не будем.

Почти все почтовые клиенты сходятся в том, что email относится к Древовидным. (Единственное известное мне исключение — Gmail, который считает, что к Плоским.)

Далее, почти все клиенты, умеющие группировать письма, отображают их в виде, натурально, леса. Где сообщения — вершины, а рёбра выражают тот факт, что одно сообщение является ответом на другое (в терминах заголовка In-Reply-To).

Внимание, вопрос! Что не так на этой картинке?

Проблема в том, что в реальном мире никто не называет множество связанных сообщений «деревом». В английском языке это thread, в русском — цепочка. И то, и другое суть структуры линейные.

И действительно, среднее количество непосредственных ответов на письмо где-то в районе единицы.

Выглядит всё это типично вот так:

−⃞ Отображение цепочки ответов
└─−⃞ Re: Отображение цепочки ответов
  └─−⃞ Re: Отображение цепочки ответов
    └─−⃞ Re: Отображение цепочки ответов
      ├─−⃞ Re: Отображение цепочки ответов
      │ └─−⃞ Re: Отображение цепочки ответов
      │   └─−⃞ Re: Отображение цепочки ответов
      │     └─  Re: Отображение цепочки ответов
      └─−⃞ Re: Отображение цепочки ответов
        └─−⃞ Re: Отображение цепочки ответов
          └─−⃞ Re: Отображение цепочки ответов
            └─  Re: Отображение цепочки ответов

Это ведёт к тому, что, когда у тебя в почтовом клиенте какая-нибудь достаточно оживлённая переписка, то к концу третьего дня уже либо горизонтальный скроллинг на две страницы, либо просто сабжекта не видно. (Не то чтобы в нём что-то полезное когда-нибудь было написано, но всё же!)

Как надо делать:

  • Основной кейс: Сообщения, составляющие цепочку без разветвлений, должны отображаться вертикальным списком.
    • Но только начиная со второго. Чтобы первое позволяло свернуть всю цепочку.
  • Fallback: Если у сообщения более одного ответа, то тогда отображаем его родителем, ответы — дочерними строчками, и далее к ним применяется предыдущее правило.

Примерно вот так:

−⃞ Отображение цепочки ответов
  ├ Re: Отображение цепочки ответов
  ├ Re: Отображение цепочки ответов
  −⃞ Re: Отображение цепочки ответов
    ├─−⃞ Re: Отображение цепочки ответов
    │   ├ Re: Отображение цепочки ответов
    │   ├ Re: Отображение цепочки ответов
    │   └ Re: Отображение цепочки ответов
    └─−⃞ Re: Отображение цепочки ответов
        ├ Re: Отображение цепочки ответов
        ├ Re: Отображение цепочки ответов
        └ Re: Отображение цепочки ответов

Ну и далее нужно, если сабжект ответа более чем на 90% совпадает с сабжектом исходного письма, то вместо него показывать первую значащую строчку. (Это, правда, потребует уметь автоматически отличать и игнорировать приветствия.)

Profile

yurikhan: (Default)
Yuri Khan

August 2018

S M T W T F S
   1234
567891011
12131415161718
19202122232425
26 2728293031 

Links

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated 2025-06-13 10:52
Powered by Dreamwidth Studios