LINUX.ORG.RU

Lagrange 1.18 и 1.18.1

 , , ,


1

3

Две недели назад состоялось крупное обновление Lagrange, клиента сети Gemini (статья на Википедии, веб-сайт), представленной как облегчённая альтернатива WWW и созданной с оглядкой на Gopher, но с добавлением таких улучшений, как собственный язык Gemtext для базовой разметки текста и шифрование. 29 сентября вышло обновление 1.18.1, закрывшее несколько багов прошлого релиза.

Lagrange является кроссплатформенным клиентом, использующим возможности библиотек SDL для графического ускорения и OpenSSL для шифрования. Программа поддерживает вкладки и разбивку экрана, историю посещений, закладки, поиск по сети, умные подсказки при наборе в адресной строке, показ встроенных изображений на страницах, проигрывание аудиофайлов и выбор темы оформления, и содержит встроенный новостной агрегатор. Интерфейс Lagrange напоминает типичный для современных веб-браузеров, но имеет широкие возможности для кастомизации. Подробнее с особенностями приложения можно ознакомиться, открыв в Lagrange вкладку about:help, или прочитав файл help.gmi

Исходный код программы написан на C и может быть собран на любой современной POSIX-совместимой платформе. Официальные 64-битные сборки релизов доступны для платформ Windows, macOS и GNU/Linux (AppImage). Бета-релизы доступны для мобильных платформ: iOS, Android (репозиторий F-Droid, APK)

1.18

Нововведения:

  • Поддержка отправки сообщений Misfin. Ссылки misfin:// открываются в диалоге отправки.
  • Поддержка Guppy, легковесного протокола, основанного на UDP. Добавлено Dima Krasner.
  • Titan: Поддержка параметра «редактировать» в открытых ссылках Titan. Содержимое ссылки загружается и открывается в текстовом редакторе диалога отправки. После завершения редактирования содержимое отправляется обратно на сервер.
  • Опция для отключения всех предупреждений о небезопасном подключении TLS.
  • Воспроизведения звука в формате Opus посредством libopusfile (опциональная зависимость). Добавлено Martin Chang.

Изменения и улучшения:

  • Использующий Curses консольный клиент clagrange теперь может быть собран в дополнение к GUI-версии, а не по отдельности с ней. Удален скрипт для сборки TUI.
  • Улучшена фокусировка на элементах интерфейса: клавиши со стрелками перемещают фокус на соседний виджет.
  • Контекстные меню могут управляться клавишами со стрелками, и первые буквы ярлыков пунктов меню используются для быстрого перемещения фокуса нажатием соответствующей клавиши на клавиатуре.
  • Сохраненные в закладках URL автоматически обновляются в случае постоянных перенаправлений. (Оригинальный URL продолжает храниться в bookmarks.ini).
  • Длина строки изменяется динамически (подстраивается под размер окна), включая такие поля как преформатированные блоки и строки простого текста (plain text).
  • Путь к файлу может быть набран вручную в диалоге отправки. Ранее поддерживалось только использование drag-and-drop.
  • Щелчок правой кнопкой мыши по баннеру сайта показывает контекстное меню ссылки (привязанное к корневому URL капсулы).
  • При сохранении в каталог загрузок показывается всплывающее окно для подтверждения.
  • Панель меню: При активации с клавиатуры, повторно открывается последнее открытое подменю, но не обязательно «Файл», как раньше.
  • Клавиша Return теперь фокусирует на поле набора URL.
  • О странице: Разъяснено значение «fingerprint». Отображаются тип хэша (SHA-256) и что было использовано для его вычисления (полный сертификат или только публичный ключ).
  • Обновлены символьные обозначения действия «Перейти в корень», удаленных (remote) закладок и индикатор (кнопка) закладок.
  • Gopher: Корректный парсинг типов строк Telnet 8 и T.
  • Шрифт Noto Emoji обновлен для поддержки Unicode 15.1.
  • TUI: Часто используемые клавишные комбинации показываются на месте панели меню, когда та отключена, чтобы сделать интерфейс более доступным.
  • TUI: Улучшена раскладка интерфейса, учитывая возможность использования при минимальном разрешении в 80x25.
  • TUI: Улучшено отображение различных виджетов в текстовом режиме.

Исправления:

  • URL Titan ошибочно открывали диалог отправки при просмотре истории.
  • Запрос Titan в открытой вкладке отправлялся заново с пустым содержимым при запуске приложения.
  • Идентификация для отправки в Titan иногда выбиралась некорректно.
  • Диалогу отправки не хватало нескольких строк для ошибок при drag-and-drop.
  • Gopher: элементы форматирования Gemtext, оказавшиеся в тексте страниц Gopher, игнорируются, чтобы исключить возможность искажения визуального представления страницы.
  • Gopher: Номер порта может быть пустым на i-строках.
  • Ярлыки запроса, уже содержащие знак ?, имели в префиксе лишний ?.
  • Численные (буквенные) отметки ссылок, показываемые при навигации с использованием Alt/Option или клавишами ряда home, теперь начинаются с самого верха области просмотра.
  • Некорректный порядок обработки событий при наличии нескольких окон, когда один из виджетов находится в фокусе.
  • macOS: Навигация трекпадом на несфокусированном окне могла сработать в другом, сфокусированном окне.
  • Отсутствующая индикация фокуса в пустых списках и списках Snippets.
  • Зажатие Alt/Option (модификатор для показа номеров ссылок) при открытии ссылки запроса могло привести к отсутствию фокуса ввода во всплывающем диалоге.
  • Неправильное расстояние между символами в преформатированном блоке.
  • Подсветка первого абзаца неправильно работала с моноширинным шрифтом тела.
  • Текстовые символы иногда показывались частично обрезанными.
  • TUI: Цветовые escape-символы не учитывались при выводе.
  • TUI: Отсутствовали символы подменю.
  • TUI: Возможное зависание при показе обтекающего текста.

1.18.1

  • macOS: Исправлено открытие URI Misfin извне, средствами системы.
  • Windows: Теперь можно запомнить Lagrange как приложение для открытия URL misfin://.
  • TUI: Исправлено возможное искажение вывода.
  • TUI: Curses будет линковаться статически только при использовании опции CMake ENABLE_STATIC.
  • Обновлены переводы интерфейса.

>>> Подробности



Проверено: hobbit ()
Последнее исправление: dataman (всего исправлений: 4)
Ответ на: комментарий от lbvf50txt

Это хорошая штука для документации, публичных почтовых рассылок и прочих подобных штук. Я бы тоже предпочёл читать доку в консольном браузере, пока пишу код в neovim. И среди гиков продвинуть этот протокол как раз реально.

InterVi ★★★★★
()
Ответ на: комментарий от InterVi

Затем, чтобы не грузили канал трафиком,

Изображение и скачивается по протоколу HTTP, имеется возможность кеширования. Нашлепка в виде JS предзагрузчика ни как ни экономит трафик. На оборот она его жрет.

Контр-продуктивное ретроградство, интересное только старикам.

Да. Да. Именно так. Для отдавания 8 картинок и 20кб полезного текста надо прикрутить вирутальный DOM. Иначе ретрогдарство интересное только старикам.

Интернет больше никогда не будет прежним, пора с этим смириться.

Да. Вот появился новый протокол Gemini, для тех кого не устраивает перераздутыей через невменяемое использование JS Web.

Многие смириться с этим не могут, доказывают какой Gemini плохой.

lbvf50txt
()
Ответ на: комментарий от lbvf50txt

Изображение и скачивается по протоколу HTTP

Мне очень сильно кажется что идея совмещения Gemini и HTTP существует только в отдельно взятой голове

Потому что там очень много «но» возникает, например, несовместимость сертификатов

И сами авторы Gemini выкладывают картинки по протоколу gemini:// ЧСХ

Вот появился новый протокол Gemini, для тех кого не устраивает перераздутыей через невменяемое использование JS Web.

Использование HTTP для картинок не позволяет избавиться от HTTP

ahdenchik
()
Последнее исправление: ahdenchik (всего исправлений: 1)
Ответ на: комментарий от lbvf50txt

Изображение и скачивается по протоколу HTTP, имеется возможность кеширования. Нашлепка в виде JS предзагрузчика ни как ни экономит трафик. На оборот она его жрет.

Это не так работает. Если там есть сервис воркер с обработкой кэша — такой кэш будет храниться долго в большинстве случаев, а сайт будет открываться даже без интернета. Но если просто отдать контент, всё на усмотрение браузера — т. е. минимум кэша, медиа перезагружается при каждом заходе.

Тяжёлый контент лучше кэшировать явно. Кому не надо, те пусть сами настраивают браузер или ходят с приватной вкладки.

Для отдавания 8 картинок и 20кб полезного текста надо прикрутить вирутальный DOM

Вынести рендеринг на фронт, оставив на бэке только rest — удобное решение, экономящее время разработки и ресурсы сервера. Клиентские устройства обработку виртуального dom всё равно не заметят.

Бухтишь как старикан на жк-телевизор.

InterVi ★★★★★
()
Ответ на: комментарий от ahdenchik

Вот появился новый протокол Gemini, для тех кого не устраивает перераздутыей через невменяемое использование JS Web.

Использование HTTP для картинок не позволяет избавиться от HTTP

Не надо избавляться от HTTP, нужно ограничить возможность впихивать скрипты на сторону клиента там где это не надо. Для этого создан протокл Gemini.

Мне очень сильно кажется что идея совмещения Gemini и HTTP

А идея на сайтах публиковать адреса электронной почты или ссылки на ресрусы Телеграмма вам не кажетья существующей в одной голове?

Или если сыылка из Gemeini на HTTP - это драмма, если Magnet Link из HTTP на Torrent раздачу это норма.

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 1)
Ответ на: комментарий от InterVi

Бухтишь как старикан на жк-телевизор.

Хороший технический аргумент. С вами приятно пообщаться.

lbvf50txt
()
Ответ на: комментарий от InterVi

а это тогда как работает?

Вчера я еще не до конца разобрался с Gemini, в этом протоколе есть возможность аутентификации через сертификаты клиента. А передавать данные можно через URL, но там ограничение на длинну.

https://drewdevault.com/2020/11/01/What-is-Gemini-anyway.html

Authentication, if desired, is done with client certificates. User input, if desired, is done with a response code which conveys a prompt string and a request for user input, followed by a second request with the user’s response filled into the URL’s query string. And that’s pretty much it!

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 1)
Ответ на: комментарий от lbvf50txt

Для этого создан протокл Gemini.

Как бы он только по стопам веба не пошёл. Раньше веб тоже был куцый, а потом и версии http пошли в гору и содержимое html тоже.

u5er ★★
()
Ответ на: комментарий от lbvf50txt

Свои сертификаты это хорошо, независимость важна. Для отправки в лог там всплывает простое текстовое поле. Статью было бы проблематично запостить, но аналог твиттера вышел неплохим. И оформление у него приличное.

InterVi ★★★★★
()
Ответ на: комментарий от lbvf50txt

Вы не понимаете, что Gemini в этом случае выступает как дополнительный источник информации с гарантированно минимальным потреблением ресурсов пользователя?

А ты не понимаешь, что потребление ресурсов — вещь вторичная, а первичная — представить информацию пользователю в удобном для потребления виде?

Вас не смущает в этом примере, что страница рассписания электричек яндекса не может быть просмотрена через lynx?

Не понимаю при чём тут вообще lynx? Как lynx связан с темой разговора — протоколом джемини и твоей идеей обязать всех открыть джемини-капсулы?

Итого: Ты не ответил на заданный вопрос — как представить расписание электричек или список учителей школы, не пользуясь таблицами, а вместо этого перевёл стрелки на потребление ресурсов и lynx. Т. е. по теме — как обойтись без таблиц — тебе сказать нечего. Но заставить всех делать джемини-капсулы ты готов. Ты, часом, не бывший депутат?

debugger ★★★★★
()
Ответ на: комментарий от debugger

не пользуясь таблицами

А почему не пользуясь? Просто разметить их в markdown — этот формат тем и хорош, что его не обязательно рендерить в html, он сам по себе отлично читается. Если сразу в markdown лень, сделать их в офисе и воспользоваться любым конвертером.

Документацию, например, почти всегда пишут именно в markdown.

InterVi ★★★★★
()
Ответ на: комментарий от debugger

Можно рассмотреть более простой пример: список учителей школы, с указанием предмета, который преподаёт учитель и телефона учителя. Тривиальная таблица в три столбца.

╔══════════════╦═════════════════╦═════════╗
║ Предмет      ║ Учитель         ║ Телефон ║
╠══════════════╬═════════════════╬═════════╣
║ Русский язык ║ В. Даль         ║ -----   ║
╠══════════════╬═════════════════╬═════════╣
║ Физика       ║ И. Ньютон       ║ -----   ║
╠══════════════╬═════════════════╬═════════╣
║ Химия        ║ Д. И. Менделеев ║ -----   ║
╚══════════════╩═════════════════╩═════════╝
dataman ★★★★★
()
Ответ на: комментарий от dataman

И это всё поплывёт сразу как только пользователь поставит не моноширинный шрифт. Штатная поддержка таблиц всё же необходима.

u5er ★★
()
Ответ на: комментарий от InterVi

Это хорошая штука для документации…

Даже для документации джемтекст слишком ограничен. Я уже писал выше: возьми для примера любую ман-страницу, ну, скажем, man ls. На этой ман-странице используются definition lists (как это будет по-русски? «списки определений»?), а так же выделять в тексте части, которые надо писать точно так, как указано (например, названия команд и опций; в ман-страницах используется полужирный шрифт) и части, подлежащие замене (например, аргументы; в ман-страницах используется наклонный шрифт). Ничего этого в джемтексте нет.

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

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

debugger ★★★★★
()
Ответ на: комментарий от InterVi

А почему не пользуясь?

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

debugger ★★★★★
()
Ответ на: комментарий от debugger

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

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

Но вообще да, было бы лучше видеть в gemini весь синтаксис, а не его огрызки.

InterVi ★★★★★
()
Ответ на: комментарий от devl547

ASCII таблицы псевдографикой в предформатированном блоке.

Во-первых, ты сам делал такие таблицы? Удовольствие ниже среднего. Заставлять кого-либо делать таблицы псевдографикой я бы не стал.

Во-вторых, если почитать доки на джемини, то их основная идея — клиент сам определяет каким образом рендерить переданный текст. Предформатированный текст идёт вразрез этой идее.

В третьих, если заменять таблицы предформатированным текстом, то вообще зачем всё остальное — списки, ссылки, заголовки? Вали всё в преформатированном плайнтексте — и никакого джемини вообще не надо.

debugger ★★★★★
()
Ответ на: комментарий от InterVi

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

Напомню, у lbvf50txt была идея:

По моему мнению не плохо было бы законодательно обязать все больницы, школы, жеки, аварийки, вокзалы иметь «сайты» капсулы на Gemini. Чтоб гаратнированно любой обладатель компьютера мог получить важную информацию. Вне зависимости от ОС и ресурсов.

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

debugger ★★★★★
()
Ответ на: комментарий от InterVi

хостить markdown в котором изначально и пишется дока.

Э-э-э… Мы всё ещё джемини обсуждаем? Или уже на маркдаун перешли?

Я, пожалуй, пойду. Вы тут обсуждайте непойми что без меня.

debugger ★★★★★
()
Ответ на: комментарий от dataman

Мне запилить? А то я могу. Но хостить не буду, с меня только разработка микрофреймворка и форумного движка.

InterVi ★★★★★
()
Ответ на: комментарий от debugger

а что мешает публиковать в gemini любой текст? markdown и rst не нуждаются в рендеринге для удобного чтения

InterVi ★★★★★
()
Ответ на: комментарий от u5er

И это всё поплывёт сразу как только пользователь поставит не моноширинный шрифт.

У Lagrange, например, шрифт в preformatted блоке выбирается отдельно.
И опять же насчёт таблиц - есть гейт из wttr.in в гемини, причём с определением локации по geoip.

https://fastpic.org/fullview/124/2024/1005/_4ad72433db4b3240d8111ce2a60e837c....

devl547 ★★★★★
()
Ответ на: комментарий от u5er

Skyjake пояснил.

Сигнализирование об успешном завершении транзакции было проблемой в Gopher. Gemini же сообщает через TLS Shutdown. А для больших файлов и/или нестабильных соединений нужно знать не только размер файла, но и иметь возможность продолжать скачивание не с начала, что уже не имеет смысла для документов. Так что для больших файлов лучше использовать протоколы которые (в т.ч.) для этого предназначены.

Gentooshnik ★★★★★
()
Ответ на: комментарий от InterVi

Интернет больше никогда не будет прежним, пора с этим смириться.

Вот буквально потому что Интернет уже никогда не будет прежним и нужны проекты вроде Gemini.

Gentooshnik ★★★★★
()
Ответ на: комментарий от InterVi

Это правильная оптимизация.

Чо ты как лох. Купить новый айфончик - вот это правильная оптимизация. А всё остальное - контрпродуктивное ретроградство, интересное только старикам и нищебродам.

devl547 ★★★★★
()
Ответ на: комментарий от InterVi

Мне запилить? А то я могу. Но хостить не буду, с меня только разработка микрофреймворка и форумного движка.

С @maxcom пообщайся. :)

dataman ★★★★★
()
Ответ на: комментарий от dataman

Подойдёт любой желающий захостить. Я бы по приколу написал сервер, он не сложный. А вот тянуть проект, модерировать и т.д. — нафиг надо.

InterVi ★★★★★
()
Ответ на: комментарий от debugger

По моему мнению не плохо было бы законодательно обязать все больницы, школы, жеки, аварийки, вокзалы иметь «сайты» капсулы на Gemini. Чтоб гаратнированно любой обладатель компьютера мог получить важную информацию. Вне зависимости от ОС и ресурсов.

А ты не понимаешь, что потребление ресурсов — вещь вторичная, а первичная — представить информацию пользователю в удобном для потребления виде?

В случае критически важной информации первостепенная задача гаратнированно предоставить ее пользователю. Оформление это уже второстепенная задача. Для гос. учреждений надо обслуживать тот сотый процент пользователей у которых 25 летние Пентиум 2. Для чего протокол Gemini идеально подходит.

Это тот случай когда «если надо объяснять, то не надо объяснять». Человеку про доступ к критически важной информации, он про таблички рисовать не удобно.

lbvf50txt
()
Последнее исправление: lbvf50txt (всего исправлений: 3)
Ответ на: комментарий от u5er

И это всё поплывёт сразу как только пользователь поставит не моноширинный шрифт.

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

Gentooshnik ★★★★★
()
Ответ на: комментарий от debugger

а взяли хотя бы CommonMark

В CommonMark (Markdown, собственно) есть inline стили и ссылки.

Gentooshnik ★★★★★
()
Ответ на: комментарий от devl547

Чо ты как лох. Купить новый айфончик - вот это правильная оптимизация. А всё остальное - контрпродуктивное ретроградство, интересное только старикам и нищебродам.

Тут двумя кружками кофе не обойтись, надо железнодорожную цистерну. Вам цистерна кофия от меня.

  • 100 мл = 100 / 1,000,000 = 0.0001 м³ объем чашки кофе.
  • Цистерна объемом 120 м³

ИТОГО: 120/(0.0001) = 1 200 000 чашек кофе.

     __________________
    /                  \   
   |   _ КОФИЙ    _   _ |   
   \                   /
'-(_)(_)------------(_)(_)-'

lbvf50txt
()
Ответ на: комментарий от InterVi

Но вообще да, было бы лучше видеть в gemini весь синтаксис, а не его огрызки.

Gemtext - не подмножество Markdown.

Gentooshnik ★★★★★
()
Ответ на: комментарий от debugger

Во-первых, ты сам делал такие таблицы?

Ага, в org-mode :) Норм удовольствие.

В третьих, если заменять таблицы предформатированным текстом, то вообще зачем всё остальное

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

Gentooshnik ★★★★★
()
Ответ на: комментарий от devl547

У меня через косольный Bombadillo вся псевдографика поломалась. По моему мнению gemini://tilde.cafe/~stack/weather это то как делать не надо. Это попытка реализовать связку HTML+CSS псевдографкой - заведомо провальная.

lbvf50txt
()
Ответ на: комментарий от u5er

Я вот поэтому и говорил выше, что нужна штатная поддержка таблиц.

Как эти таблицы впихнуть в терминал 80 буквенной ширины? Поддержка таблиц это HTML, там уже все реализовано, отточено, оттестировано.

lbvf50txt
()
Ответ на: комментарий от lbvf50txt

Я хз. Они и в браузере-то не влезают, если ширины не хватает. По крайней мере, в гуе можно использовать горизонтальную прокрутку. В туе, я подозреваю, тоже можно сделать горизонтальную прокрутку.

https://0x0.st/XES8.png

u5er ★★
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.