Ответ 1
На основе скриншотов и теорий в сообщение в блоге, связанное с Джейсоном Муром в его answer, я бы сказал, что есть десять или более предопределенных размеров блоков, в которые помещается контент. В какой размерной коробке размещен фрагмент контента, он основан на различных параметрах - то, что многие люди перефразируют или любят, могут считаться более приоритетными и, следовательно, получать больший бокс, а предметы с картинками, видеороликами или большим количеством текста также могут быть приоритетными, Эти коробки (предпочтительно с продуманными размерами) затем упаковываются оптимально на страницы (хотя это не простая проблема, и даже Flipbook, похоже, не работает, о чем свидетельствует странное пространство в второй рендеринг потока Facebook из ранее связанного сообщения в блоге).
Из внешнего вида предоставленного фида Facebook Flipbook имеет (по крайней мере) следующие предопределенные размеры ящиков (ширина и высота, заданные в процентах полной ширины/высоты):
Designation | Width | Height | Example
---------------------------------------------------------------
full page | 100% | 100% | #12
2/3 page | 100% | 67% | #1
1/3 note | 50% | 33% | #3, #11
1/9 quote | 50% | 11% | #2, #8, #10, #15, #17, #18, #22
1/2 note | 50% | 50% | #16, #19
2/3 note | 50% | 67% | ?
Некоторые из них имеют довольно очевидные шаблоны группировки (1/9 кавычек всегда складываются по три за раз, чтобы сформировать блок того же размера, что и 1/3 нота, например), в то время как другие могут быть более свободно упакованы. Аналогичный анализ предоставленного канала Twitter показывает некоторые дополнительные поля.
Резюме
Итак, в итоге алгоритм выглядит довольно простым. Начните с пары предопределенных (разумно выбранных) размеров ящиков. Когда отображаются новые фиды, сделайте следующее:
- Назначьте каждому элементу поле, размер которого зависит от определенных свойств, таких как популярность, их содержание и т.д.
- Оптимально упаковывайте ящики (это, по существу, проблема с упаковкой бинов, NP-трудная проблема, для которой, похоже, нет эффективных алгоритмы, алгоритм алчного аппроксимации будет хорошо)
Акцент здесь должен быть сделан на шаге 1, а также на создании предопределенных ящиков.
Чтобы уточнить: Определенные размеры ящиков, о которых я говорю, определены для портретной ориентации. Для пейзажа будет использоваться другой набор размеров ящиков, о чем свидетельствует изображение в вопросе.