Как хранить текст с картинками?
Публичный постНа первый взгляд вопрос звучит глупо. Но я действительно уже который год пытаюсь найти надежный и универсальный формат текстовых файлов, который еще и картинки бы поддерживал.
Мои основные требования:
- текст и изображения должны быть в одном файле или в чем-то им притворяющемся (веб-сервисы вроде Notion мимо)
- возможность создать, открыть и отредактировать на любой ОС: Windows, Android, iOS, Linux, macOS
- в первую очередь цифровой формат (не для печати)
Остальное - разметка, стили, метаданные - это все необязательно, хотя открытость формата была бы кстати. Пройдемся по некоторым известным опциям:
RTF - Rich Text Document
Я долгое время ошибочно воспринимал этот формат открытым, потому что встречал его на разных системах, и даже на macOS TextEdit использует его по-умолчанию. И если TextEdit'а мало, то как еще один пример "дефолтности": в Xcode стандартный способ добавления своего текста в About window macOS приложения - это прикрепить к ресурсам приложения файл Credits.rtf
. Ну не верилось мне, что Apple будет использовать чужой проприетарный формат в своих инструментах для разработчиков. Хотя, как же я мог забыть про векторные иконки, которые iOS/macOS изначально поддерживал только в формате PDF? В общем, да, RTF - это закрытый формат текстовых документов, принадлежащий Microsoft.
Поначалу казалось, что с RTF все хорошо: формат распространенный, изображения поддерживает. Но с последним возникла загвоздка: эта фича по-разному реализована Microsoft и Apple. На macOS и TextEdit, и Pages игнорируют картинки в RTF и вместо этого предлагают использовать свой собственный формат RTFD.
DOC/DOCX
Если уж начали говорить про проприетарщину, то нельзя не упомянуть DOC/DOCX от тех же Microsoft. Этот формат настолько распространен, что найти редактор/просмотрщик можно практически на любой системе.
Основная проблема в том, что он разрабатывался для создания документов под печать. Отсюда избыточные для моих задач разделение на страницы, поля, отступы, шрифты и т.д. Чтению с экрана это не помогает, а скорее даже мешает.
Вторая проблема заключается в приложениях, которые позволяют работать с DOC. Даже если редактор и умеет открывать DOC, он, скорее всего, требует конвертации в свой собственный формат для внесения изменений. А после придется экспортировать полученный документ обратно в DOC. Конечно же, полная сохранность контента при этом никак не гарантируется.
Ну и все-таки это проприетарный формат, т.е. Microsoft может вносить в него любые изменения в любой момент. Это, конечно, не совсем справедливое замечание в сторону Microsoft. С их степенью поддержки legacy мало кто может сравниться. И все же мне не дает покоя мысль, что файл можно запросто повредить, открыв его каким-то сторонним редактором, которые не успел поддержать изменения.
ODT - OpenDocument Text
В качестве открытой альтернативы DOC существует ODT. Я бы, наверное, даже им пользовался. Поставил везде OpenOffice/LibreOffice и не знал бед. Но, к сожалению, ни тот, ни другой, практически не представлены на iOS (о ситуации на андроиде я просто не в курсе). И, несмотря на открытость формата, нет ни одной внятной сторонней альтернативы. Все-таки сегодня поддержка на мобильных системах почти также важна, как и на десктопных. Ну и это по-прежнему формат для печатных текстов, что не совсем мне подходит.
Markdown
Чудесный формат, который я открыл для себя в первые университетские годы. Идеально подходит для написания текстов с простенькой разметкой. Да, есть проблема с тем, что с момента релиза было придумано множество вариаций Markdown: GFM, Pandoc, ExtraMark и прочие. Для частичного исправления ситуации был создан CommonMark, но все же такое ощущение, что GFM пользуется наибольшей популярностью. Видимо, ванильного Markdown всем нехватает.
И все же каким бы чудесным ни был этот формат, он не поддерживает вложения. Картинки можно добавлять, но их нельзя физически привязать к файлу документа. Можно, конечно, для хранения и передачи заворачивать документ вместе со всеми его вложениями в zip архив или же tarball, но все это дополнительные неудобства. Особенно на мобильных устройствах.
TextBundle
Похоже, не я один грустил из-за проблемы с вложениями. TextBundle был создан уже тогда, когда я только открыл для себя ванильный Markdown. Идея очень простая: TextBundle - это папка, в которой лежит .md
файл с текстом, .json
с небольшим количеством метаданных и папка assets
со всеми вложениями. Благодаря File Packages - фишке эпловских файловых систем - эта папка воспринимается как единый файл.
Я открыл для себя этот формат не так давно, но с тех пор он стал моим основным спобом ведения записей. И случайные черновики, и заметки, которые раньше хранились в Notes - все теперь лежит в облачных хранилищах в виде .textbundle
документов (пользуюсь FSNotes и One Markdown).
Все бы ничего, но как раз из-за того, что формат построен вокруг возможностей файловых систем Apple, я не могу его использовать нормально где-либо еще, кроме macOS и iOS. И даже то, что сам по себе TextBundle полностью открыт, никак исправляет ситуацию.
Была попытка ввести TextPack, который представляет из себя ту же папку, но собранную в zip архив. Тем не менее, т.к. изначальный формат не был популярен где-либо еще кроме экосистемы Apple, то и TextPack был просто проигнорирован. На сайте TextBundle указывается несколько Linux и Windows приложений, которые, по идее, должны переваривать TextPack. Однако, либо эта информация устарела, либо поддержка ограничивается только импортом или экспортом.
В итоге для меня TextBundle пока что работает лишь по причине того, что я практически не пользуюсь Linux, Android или Windows. Но недавно мне захотелось попробовать временно пересесть на андроид смартфон (любопытно, как много всего поменялось со времен Gingerbread). Эксперимент пришлось свернуть, т.к. я не смог найти удобный способ создавать, открывать и редактировать TextBundle документы на нем. Это не невозможно, но приятного в процессе мало.
TextBundle я открыл для себя совсем недавно. А до этого вообще ничего не слышал о нем, пусть он и существует уже десяток лет. Стало любопытно, вдруг есть еще какой-то формат, который бы соответствовал моим требованиям, а мне просто не повезло с ним познакомиться.
А почему именно один файл? Мне нравилась идея текст бандла в FSNotes, но потом я перешел на Obsidian, где картинки просто лежат в одной папке и проблем от этого не почувствовал.
Ошибка заключается в объединении doc и docx в один пункт. Это абсолютно 2 разных формата.
Docx это открытый стандарт в виде XML формата и поэтому он практически одинаково открывается любым редактором.
И на мой взгляд именно он сейчас является реально самым универсальным форматом.
Просто для твоей задачи нужно найти максимально простой редактор (я очень люблю юесплатный мультифплатформенный минималистичный Onlyoffice), выключить отображение полей, разрывов страниц и фигачить по бесконечному белому листу)
Jupyter Notebook с какими-нибудь аддонами, может?
раржпегА нельзя запихнуть в markdown картинку base64 ?
Если нужно в 1 файл - как вариант можно хранить в .mht формате.
Хром в него уже умеет. Как раз сохранит html страничку со всем форматированием и картинками в 1 файл.
Но учтите что картинки с lazy load или под катом надо сначала загрузить (проскролить и убедиться что видны), а потом сохранять
Google Docs от корпорации добра.
После Joplin и мучением в маркдаун остановился на нем.
Confluence + Postgres. Плюсы: кросплатформенно. Минусы: немного сложнее разворачивать, чёт теекстовые файлы.
А пробовал Eagle?
https://ru.eagle.cool/
Не прям то, что тебе нужно, но хранит кучу разных форматов и текст, синхронизирует с облачками. Для каких-то медиаштук (видео, картинки, рефы) это одна из лучших штук, мне кажется
побуду немного ослом из Шрека, но чем не вариант telegra.ph, а ссылки на страницы хранить в избранном телеги.
Может посмотреть в стороне obsidian.md?
Понимаю, что сейчас на волне Цетелькастена он стал популярен, но вроде все что надо в нем есть. Верстка, картинки вставляются в текст, как ссылки, хранятся рядом. В режиме просмотра открываются нормально. Плюс синхронизация через гит бесплатная.