Что-то я окончательно запутался в логике сжатия картинков ’ом :blobsadreach:

@skobkin ты хоть объясни, как @Mahury вставляет в посты картинки со сторонних ресурсов…

@johan в каком смысле "со сторонних"? Вроде все, что вижу на странице из недавних, лежит на лоршевском S3, как и должно.

@skobkin @Mahury

@iliazeus @skobkin @Mahury А. Т.е. это лорш кэширует на s3? Тогда вопрос снимается @erua

@johan насколько понимаю, не кешируется, а просто хранится на постоянке. Мастодон позволяет админу выбрать, где будут храниться картинки.

docs.joinmastodon.org/admin/op

@skobkin @Mahury @erua

@iliazeus @skobkin @Mahury @erua Блин, в смысле — да, хранится. Но что-то я как-то перестал (окончательно) понимать, как это работает. Потому что вроде как картинка обернута в ссылку на s3, но по клику грузится кэшированная копия уже с хранилища моего инстанса. Хрень какая-то нездоровая-жабоскриптовая :blobsad:

@johan насколько понимаю я, с чужих инстансов картинки сохраняются вместе с остальным контентом поста, просто обычно не в полном разрешении. Но можно открыть оригинал в том месте, где он хранится.

Вроде все логично - все, что ты видишь в интерфейсе твоего инстанса - подтягивается всегда с твоего инстанса.

Чтобы прям оригинал увидеть, в веб-мастодоне можно нажать "открыть ссылку в новой вкладке" на картинке (или Ctrl+щелчок, что суть то же самое).

@skobkin @Mahury @erua

@iliazeus @skobkin @Mahury @erua теоретически можно как html попробовать вставить (-soc вроде умеет); но там ширину как-то задавать надо. А в атрибуты width/height не умеет, картинка вставляется, но с оригинальной высотой и уходит за край колонки :blobsad:

@𝕵𝖔𝖍𝖆𝖓 ⛧ тот вариант #Markdown что поддерживается в постах мастодонов — оно же имеет теги для вставки картинок, а страдания ты развёл из-за стремления управлять вёрсткой — раз нет возможности указания размеров картинки, то хер проссышь как мастодоновские клиенты будут показывать эти самые картинки?
дык в самих файлах графических как бы инфа есть о размере.

@erua Ага. Но тут по ходу выяснилось, что, в принципе всё нормально с картинками больших размеров: инстанс закэширует уменьшенную копию, полную версию можно посмотреть через «Открыть ссылку в новой вкладке».

@𝕵𝖔𝖍𝖆𝖓 ⛧ ну это если твой инстанц, где ты постишь не взгреет тебя за постинг большого числа картинок не маленьких.

вот народ на lor.sh (вряд ли Скобкин, скорее кто-то друго) вопрос диского пространства решили подключив хранилище объектное, посредством S3-прослойки на уровне логики веб-приложения (собственно и реализующей мастодон-сервер).

а французы с qoto.org так прямо и подорвались нести расходы на хранение твоих картинок со своим энергокризисом и зданиями залитыми навозом фермерами.

@erua Напомню, весь сыр-бор из-за идеи заливать картинки на dvd.chat. Я хз, где он; админ в Калифорнии, постит на ниппонском…

@𝕵𝖔𝖍𝖆𝖓 ⛧ что за болезненная тяга постить в мастодон?
есть же pixelfed-инстанцы, спецом для постинга картинок. закинул туда, а мастодон-аккаунте форварднул/расшарил/забустил.
мастодон — это такое убожество, в техническом плане, что одно должно было умереть пока ползло в продакшен.
тяжёлое, кривое, косое и бажное, потому админы мастодон-серверов задрюченные неврастеники.

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

@erua

что за болезненная тяга постить в мастодон?
есть же pixelfed-инстанцы, спецом для постинга картинок. закинул туда, а мастодон-аккаунте форварднул/расшарил/забустил.

Так я именно это и хочу делать.

@𝕵𝖔𝖍𝖆𝖓 ⛧ тебя подкупило что:

«Join to enjoy: - 200GB»



ну типичный пидораха в поисках халявы, согласны постить картинки на Firefish-инстанах :)

@erua И? В чём проблема? не портит картинки, в отличие от / . И особо без разницы, будет там 200 гигов или 10 — для картинков достаточно.

@𝕵𝖔𝖍𝖆𝖓 ⛧ ну если pixelfed действительно портит картинки, тогда предпочёл бы хостить их на каком-то S3-хранилище, вставляя в посты через ссылку и тэги/разметку.
основной критерий в этом случае — контроль жизненного цикла картинки. захотел все махом убрать из какой-то серии — убрал бакет/фолдер, где они лежат в хранилище.
аналогично важно, когда захотел изменить, переделав что-то.
например, на картинках оказался чей-то логотип или косяк какой исправить решил.

@erua

ну если pixelfed действительно портит картинки, тогда предпочёл бы хостить их на каком-то S3-хранилище, вставляя в посты через ссылку и тэги/разметку.

Действительно портит. Не портит из известных мне pixelfed.art (регистрация закрыта); но там в рулезах упомянуто NO generated images (ну, пока не придирались); да и заполнять аккаунт всякими проходными вещами не хочу.

вставляя в посты через ссылку и тэги/разметку.

В том-то и проблема, что это зделоть в крайне проблематично (если вообще возможно).

@𝕵𝖔𝖍𝖆𝖓 ⛧ #^https://www.digitalocean.com/community/tutorials/markdown-markdown-images
![Alt text](https://assets.digitalocean.com/articles/alligator/boo.svg "a title")
и пользоваться ссылками на свой MinIO?

@erua Я попробовал — таким макаром картинка вставляется тупо в оригинальном размере, без превью и прочего, разумеется, не влезая в колонку и ломая ленту. Так что это не вариант вообще.

@𝕵𝖔𝖍𝖆𝖓 ⛧ ленту они ломают лишь в контексте отдельно взятого клиента. но вот не в случае веб-морды.

@erua Я как раз в вебморде и смотрел. Она не ресайзит картинку, вставленную через Markdown :blobsad:

@𝕵𝖔𝖍𝖆𝖓 ⛧ покажи какой-нибудь пример, конкретный пост с картинкой вставленной через
![Alt text](https://aaa.bbb/ccc.jpeg "a title")
@𝕵𝖔𝖍𝖆𝖓 ⛧ в двойне ебанулись, но веб-морды у мастодон-серверов есть две как минимум и «клиентов» тоже с пяток наберётся. походу не торопились добавлять функционал rich edit text (постов с форматированным текстом) т.к. не получалось договориться или типа того.

@erua Всё равно не понимаю: в каком месте ебанулись-то и в чём виноваты? В том, что сделали поддержку Markdown, который конвертирует в </img>, и оно отображается браузером, собсно, так, как и должно?

@𝕵𝖔𝖍𝖆𝖓 ⛧ у меня то в хабзилле тоже самое спокойно в веб-морде показывается. т.к. ресайзится самим браузером и вписывается в колонку. абсолютно ничего сложного в этом нету.

@erua Ну вот код картинки в таком виде приходит, никаких скриптов на нее не понавешено → браузер отображает так, как должен, т.е. в полном размере. Другие форки вообще не отображают. Кто прав в ситуации, которая вообще не задокументирована — сказать, имхо, сложно.

@𝕵𝖔𝖍𝖆𝖓 ⛧ у хабзиллы оно выглядит как:
<img style="max-width: 100%;" src="https://images.weserv.nl/?n=-1&il&url=https://calckey.dvd.moe/file/dvd-calckey/dvd-calckey/c56f62a3-d976-4034-a2f1-6f5358b37663.jpg" alt="Image/photo" loading="eager">

@erua Это личная инициатива хабзиллы же.

@𝕵𝖔𝖍𝖆𝖓 ⛧ а что мешает/запрещает маркдауновский:
![Alt text](https://aaa.bbb/ccc.jpeg "a title")
конвертировать в:
<img style="max-width: 100%;" src="https://images.weserv.nl/?n=-1&il&url=https://calckey.dvd.moe/file/dvd-calckey/dvd-calckey/c56f62a3-d976-4034-a2f1-6f5358b37663.jpg" alt="Image/photo" loading="eager">
Follow

@erua Видимо, то, что max-width — мордоспецифичный атрибут и подставлять его должна сама морда?

@𝕵𝖔𝖍𝖆𝖓 ⛧ дык а в чём проблема? маркдаун — это семантическая разметка. html — декларативное описание, являющееся вьюшкой («представлением») семантических элементов. каждый из которых сущность, имеющая персональную вьюшку исходя из контекста.
всё логично. никто никаких стандартов не задавал на тему того как именно размеченное маркдауном должно отображаться или транслироваться в html.

т.е. маркдаун можешь рассматривать как замену xml. и каждый сам через xslt в силу своих предпочтений и задач транслирует в ту или иное представление сущности описанные в xml.

@erua Ну. Всё так. Поэтому отдавать html со стилями неправильно.

@𝕵𝖔𝖍𝖆𝖓 ⛧ ну таки веб-морда, общаясь с пользователем, обязана семантически размеченный текст отображать разумным образом.
т.е. приходит через ActivityPub поток данных в виде json & xml, с разметкой текста сообщений в виде какого-нибудь markdown и веб-морда или GUI-клиента это всё отображает пользователю.
или ты думаешь кто-то в ActivityPub тупо пихает форматирование в виде html-разметки?

@erua Хм. Судя по тому, что а) можно писать не только с Markdown-разметкой, но и с html; б) в настройках морды есть галочка «удалять форматирование» — у меня подозрение, что таки в ActivityPub пихают html-разметку.

@𝕵𝖔𝖍𝖆𝖓 ⛧ где-то с 2018-2019 годов это тянется, уже тогда было вот такое в плане обмена #^https://www.w3.org/TR/activitypub/#source-property

{
  "@context": ["https://www.w3.org/ns/activitystreams",
               {"@language": "en"}],
  "type": "Note",
  "id": "http://postparty.example/p/2415",
  "content": "<p>I <em>really</em> like strawberries!</p>",
  "source": {
    "content": "I *really* like strawberries!",
    "mediaType": "text/markdown"}
}



можно охарактеризовать словесами:
«trying to represent “recommended” HTML representations»

@erua Ну? В ActivityPub пихают html-разметку, как я и предполагал.

@𝕵𝖔𝖍𝖆𝖓 ⛧ ещё раз.
есть:
  "content": "<p>I <em>really</em> like strawberries!</p>",

А есть и:

  "source": {
    "content": "I *really* like strawberries!",
    "mediaType": "text/markdown"}



потому что была потребность в «“recommended” HTML representations».

@erua А если я сообщение в html-разметке наберу, что будет в Source?

А если на мисскеевском диалекте (всратом) Markdown — какой вообще от такого сорца прок принимающей стороне?

@𝕵𝖔𝖍𝖆𝖓 ⛧ а с чего это вдруг решил, что в каком виде как ты набрал свой пост, то в том оно через ActivityPub-сервера и поедет?
херушки. «mediaType» в случае «source» должен иметь чёткую спецификацию. не нравится? заводит свой mediaType, отличный от «text/markdown».

@erua Ну там жеж написано черным по зеленому, что source — для редактирования поста автором. А на принимающей стороне должен отображаться приехавший html.

@𝕵𝖔𝖍𝖆𝖓 ⛧ нихуя ты читатель какой. извращённый шо пиздец. напоминает анекдот про мужика у которого кругом одни пидорасы. вот и у тебя какой-то такой же подход как дело доходит до законов или таких вот гайдов-стандартов.

пойми. это не эл.почта, где разрешается составлять письма в html ради кросс-платформенного форматирования и в результате пришли к определённому набору стилей, полагаемому допустимыми и разумными для составления навороченных по форматированию «почтовых отправлений».

здесь другой принцип. напоминает работу с картинками, что в файле с основным контентом имеется небольшая превьюшка. вместо файлов здесь используются потоки, не велика разница.

т.е. html-разметка у текста используется в ActivityPub лишь как превьюшка для самых убогих клиентов. не знакомых с указанным в «source.mediaType», но желающих хоть что-то показать, вместо ничего.

@erua

ActivityPub extends the Object by supplying the source property. The source property is intended to convey some sort of source from which the content markup was derived, as a form of provenance, or to support future editing by clients.

Alyssa P. Hacker likes to post to her ActivityPub powered blog via an Emacs client she has written, leveraging Org mode. Later she switches to editing on her phone’s client, which has no idea what text/x-org is or how to render it to HTML, so it provides a text box to edit the original content instead.

@𝕵𝖔𝖍𝖆𝖓 ⛧ ты опять увидел лишь то, что хочешь видеть. и это не то, что там написано.

@erua Ну переведи тогда, что там на самом деле написано. Может, у меня с английским плохо?

@𝕵𝖔𝖍𝖆𝖓 ⛧ да тут дело не в языке, а в способности контекст повествования удерживать. не пытаться вырвать отдельные фразы и увидеть в них подтверждение убеждениям или страхам.

там идёт речь о репликации, на примере работы с разных клиентов, один из которых не поддерживает тип разметки сообщения. т.е. первичным у поста является тот вид, в котором его создали и распространяться по сети пост должен именно в оригинальном виде. тип разметки описывается через «source.mediaType», если это не стандартный маркдаун, то и указывать «text/markdown» нельзя, а надо использовать отдельный тип для указания в «source.mediaType».

однако, будут ситуации — сценарии, когда исходный тип разметки поста, указанный в «source.mediaType», не знаком клиенту, но с ним надо как-то работать — показывать или давать редактировать. про такой сценарий и рассказывается на примере, чтобы наглядно продемонстрировать полезность внедрения превьюшки, помимо исходного формата поста.

@erua 3-й пункт. Неформатированный текст, безо всяких там сорцов. Т.е. подразумевается, что клиент должен показывать имено content, а не source. Но в случае скачущего текста в Миске — непонятно…

Хотя… Я вот замечал, что разные реализации клиентов не всегда видят зачеркнутый текст, хотя полужирный и курсив — умеют.

Надо, короче, поиграться с html-форматированием.

@𝕵𝖔𝖍𝖆𝖓 ⛧ там не сказано и не показано, что клиент должен работать именно с content.
а приведённый пример — это всего лишь упрощённая форма записи для тех случаев, когда:
внутри пришлось бы указывать mediaType: "text"
  "source": {
    "content": "I'm a goat",
    "mediaType": "text"}
}
т.е. для случаев, когда пост идёт лишь как plain text.
но тебе почему-то в нём хочется видеть то, что там не сказано и вообще никак не затронуто.

@erua Т.е. ты утверждаешь, что клиент интерпретирует source, но если его нет или неизвестный тип — то content?

@𝕵𝖔𝖍𝖆𝖓 ⛧ де-факто, клиенты так и поступают (вынуждены из-за ожиданий пользователя).
де-юро, эта обязанность не прописана и клиенты могут всегда игнорить source, имея дело лишь с content.
Show more

@erua А вот здесь гля че написано:

Please be aware that most of the toot formatting will be stripped by mainline Mastodon, which may lead to the meaning of your toots being altered.

Если Мастодон не знает про Markdown, то как он может вычистить его из текста? Поэтому делаю вывод, что вычищается именно html-разметка.

@𝕵𝖔𝖍𝖆𝖓 ⛧ не вычищает, а берёт лишь content и работает лишь с ним. а предупреждение о потери большей части форматирования связано с тем, что content является убогой вьюшкой — не обязан содержать в точности то, как именно надо в html-переводить содержимое маркдаун разметки в source.

т.е. при наличии
  "source": {
    "content": "I *really* like strawberries!",
    "mediaType": "text/markdown"}
}
никто не мешает положить:
  "content": "I really like strawberries!",

вместо:
  "content": "<p>I <em>really</em> like strawberries!</p>",
Sign in to participate in the conversation
Qoto Mastodon

QOTO: Question Others to Teach Ourselves
An inclusive, Academic Freedom, instance
All cultures welcome.
Hate speech and harassment strictly forbidden.