Когда я показал своё приложение другу и упомянул, что оно поддерживает экспорт в формате MD, он сразу спросил: «А что это?».
У меня не было времени объяснить тогда, и вопрос повис в воздухе. Так что вот моя попытка дать ответ на него и объяснить, почему Markdown используется в TrackLab.
Причина довольно проста. До начала разработки я пытался выяснить, сработает ли моя теория или нет. Для этой цели я использовал Obsidian. Obsidian использует MD. Вот и всё.
Это кратко для любителей TL;DR. Подробности далее.
Об Obsidian
Obsidian это приложение для заметок, которое хранит их локально в открытом текстовом формате Markdown. Это означает, что вы полностью контроллируете свои файлы и можете редактировать их в помощью любого текстового редактора.
О MD
Но что же такое MD? Это простой текст, где вы можете использовать специальные символы для форматирования. Например:
# Заголовок 1
## Заголовок 2
**Жирный текст**, ==выделенный текст==, *наклонный текст*, ~~перечёркнутый текст~~
- элемент списка 1
- элемент списка 2
> Цитата
- [x] задача 1
- [ ] задача 2
Вот как это будет выглядеть:

Довольно просто. Конечно, вы можете создавать файлы MD в обычном блокноте, но, чтобы увидеть форматирование, вам потребуется просмотрщик, подобный Obsidian.
MD много используется программистами для написания документации, файлов readme, истории изменений и других документов. Он популярен из-за своей простоты редактирования и отслеживания изменений в Git. MD также хорош для писателей. Они могут сфокусироваться на тексте с минимальным форматированием (заголовки, жирный/наклонный текст — что ещё нужно, чтобы написать книгу?).
Почему он используется в TrackLab
Чтобы проверить теорию, вам не нужно начинать разработку сразу. Для начала, следует собрать данные и выполнить некоторые расчёты без использования приложения. Если вам кажется, что это может сработать, значит пришло время начать кодить.
Итак я просто начал отслеживать свою активность в файлах MD. Я собрал большое количество данных и знал, что однажды мне придётся импортировать их в приложение. Вот почему эти данные должны были храниться в простом и открытом формате. Кроме того, я уже использовал Obsidian для своих заметок, так что все мои данные были в одном месте.
Создать таблицу в MD очень просто:
| Заголовок 1 | Заголовок 2 |
| ----------- | ----------- |
| Ячейка 1 | Ячейка 2 |
| Ячейка 3 | Ячейка 4 |

Так и была создана первая таблица, где я отслеживал все свои активности.
Альтернативы
Существуют форматы, специализирующиеся на табличных данных, такие как xlsx (Microsoft Excel) или odt (LibreOffice Calc), но они довольно тяжёлые и их трудно распарсить. Кроме того, мне не нужны формулы или любые другие их функции.
Как насчёт CSV формата и ему подобных? Они также представляют собой обычный текст, но они, напротив, слишком просты. Мне необходимо сохранять дополнительную информацию, такую как версия приложения и дата. Возможно, понадобится добавить что-то ещё.
Будущее
На данный момент Markdown предоставляет мне простор для экспериментов, но TrackLab будет развиваться и также будет меняться его формат данных. Для полных бэкапов (не только активностей) м
