| .idea | ||
| assets | ||
| mhj | ||
| .gitignore | ||
| example.test.env | ||
| main.py | ||
| pyproject.toml | ||
| README.md | ||
| requirements.txt | ||
Mental Health Journal
UA
Це мій особистий CLI застосунок для керування моїм журналом станів психічного здоров'я.
Суть застосунку в керуванні файлами у форматі Markdown, у яких я описую свій стан кілька разів на день з часовими
мітками.
Специфікація
Специфікація досить проста, бо одною з цілей застосунку є простота.
Структура файлів
Структура файлів виглядає наступним чином:
» tree mental_health_journal
mental_health_journal
└── logs
└── 2024
└── 2
├── 18.md
├── 19.md
├── 20.md
├── 21.md
└── 22.md
4 directories, 5 files
Також використовується система контролю версій, git. За допомогою нього можна дуже легко робити бекапи всіх записів.
Форматування Markdown файлів
Форматування файлів максимально просте та при цьому легке для оброблення комп'ютером.
# 2024.02.01
**07:02** Відчуваю сильну тривожність. Тремор рук.
> "Давно не відпочивав. Зараз працюю над багатьма проєктами та хвилююся за дипломний проєкт."
#Використовується лише в першому рядку файлу та позначає дату запису.**{час}**Позначає час запису, зазвичай короткий опис стану.> "Додатковий текст."Будь-яка додаткова інформація з більшим описом ситуації, думками тощо.
Можливості застосунку
Застосунок дозволяє автоматизувати таки дії як:
- Автоматичне відкриття актуального файлу для запису у редакторі визначеному у змінній середовища
EDITORабоvim, якщо такої нема. - Копіювання потрібного дня в буфер обміну.
- Автоматичні коміти змін в записах. Автоматичний
pullтаpushза бажанням. - Експортувати звіт за квартал у форматі
.odt(застаріла), або в.pdf.
Системні вимоги
Працює на Linux з Wayland та наступними залежностями:
wl-clipboardgitvimbashpandoctectonic
Я використовую застосунок встановивши його через pipx, тому що використовую Arch Linux, проте ви можете знайти інший
шлях, особливо, якщо використовуєте інший дистрибутив.
Встановлення на Arch Linux
# Залежності
pacman -Sy wl-clipboard git vim bash pandoc python-pipx
pipx ensurepath
# Застосунок mhj
pipx install https://codeberg.org/foresle/mhj/releases/download/1.11.0/mhj-1.11.0-py3-none-any.whl
Кастомізація шаблону pandoc
# Створіть reference файл
pandoc -o custom-reference.odt --print-default-data-file reference.odt
# Тепер відкрийте custom-reference.odt в Libre Office Writer та замініть стилі як вам подобається
# Після чого скопіюйте цей файл як reference.odt в теку шаблонів pandoc
# Дізнайтеся шлях цієї теки
pandoc --version
# Швидше всього ця тека ще не створена, створіть неї
mkdir -p *шлях_до_теки*
# Далі скопіюйте туди вище згаданий файл
Зміна титульної сторінки (тільки в PDF)
Для того аби змінити вигляд титульної сторінки є такі змінні в конфігураційному файлі:
EXPORT_TITLEEXPORT_SUBTITLEEXPORT_AUTO_SUBTITLE(bool)EXPORT_AUTHOREXPORT_LANG(в форматіuk_UA)EXPORT_TOC(bool)EXPORT_MAIN_FONTEXPORT_SANS_FONTEXPORT_MONO_FONTEXPORT_SET_DATE
Використання push та pull
Доволі зручно синхронізувати нотатки між різними комп'ютерами використовуючи віддалений репозиторій. Для автоматизації завантаження і відправки використовуйте прапорці --pull та --push, або відредагуйте конфігураційний файл і додайти змінні ALWAYS_PULL та ALWAYS_PUSH. Перед використанням цих функцій налаштуйте віддалений репозиторій:
Приклад налаштування віддаленого репозиторію:
git remote add origin ssh://git@codeberg.org/<username>/journal.git
git <push/pull> -u origin journal
Зверніть увагу, що нотатки зберігаються у незашифрованому вигляді. Завантажуйте їх на хостинг якому ви довіряєте, або не зберігайте там чутливих даних. Безпека передусім, я вас поперпедив!
Авторські права
Ця програма створена для мене, проте ви можете запропонувати доповнити її тощо. Авторські права на код належать мені. Логотип застосунку розробила моя дівчина, авторські права належать їй.