Система документації
Маніфест
Налаштування Obsidian
Архітектура системи¶
Загальна ідея
Огляд архітектури
Ось графічне зображення архітектури системи:
flowchart LR
A(Вміст) --> B(Контроль версій)
C(Програмне забезпечення для редагування) --> A
A --> D(Зробити доступним онлайн)
Детальніше:
Огляд архітектури
flowchart LR
A[Obsidian] <--> B{Файли}
B <--> C(Github Desktop)
C <--> D{Github}
B <--> E(MkDocs)
D --> F(Github Pages)
G(Тема: MkDocs-Material) --> E
H(MkDocs-Publisher) --> E
E --> D
- Obsidian: Необов'язковий, але рекомендований мною текстовий редактор для редагування файлів Markdown.
- Файли: Файли Markdown, що містять вміст моєї документації.
- Github Desktop: Інструмент для легкого керування моїми репозиторіями Git.
- Github: Онлайн-сервіс для контролю версій та співпраці.
- Github Pages: Безкоштовний сервіс для публікації мого вебсайту.
- MkDocs: Інструмент для автоматичного створення вебсайту з моїх файлів Markdown.
- MkDocs-Material: Тема для MkDocs, яка забезпечує сучасний та привабливий макет.
- MkDocs-Publisher: Набір плагінів, що спрощує співпрацю з Obsidian та надає додаткову функціональність.
Компоненти детально¶
1. Markdown¶
Markdown як основа
Я використовую формат Markdown для своєї документації. Markdown — це проста мова розмітки, яка дозволяє мені форматувати текст за допомогою простих засобів (наприклад, заголовків, списків, посилань).
Переваги:
- Його легко вивчити та використовувати, що дозволяє мені зосередитися на вмісті.
- Він незалежний від платформи, тому я можу продовжувати роботу на будь-якому пристрої.
- Він ідеально підходить для контролю версій, що дозволяє мені відстежувати та керувати змінами.
- Він є перспективним і не є пропрієтарним, що дає мені впевненість у тому, що моя робота залишиться доступною в довгостроковій перспективі.
2. Obsidian¶
Obsidian як текстовий редактор
Obsidian — це необов'язковий, але рекомендований мною текстовий редактор. Він надає мені такі переваги:
- Я можу зберігати свої дані локально та редагувати їх офлайн, що дає мені гнучкість та контроль.
- Я можу легко пов'язувати файли між собою, що допомагає мені організовувати складну інформацію.
- Я можу позначати файли тегами та легко керувати ними, що надає мені додатковий вимір організації.
- Я можу візуалізувати свої дані, що допомагає мені розпізнавати закономірності та зв'язки.
- Я можу розширювати функціональність Obsidian за допомогою плагінів, що дозволяє мені адаптувати інструмент до моїх конкретних потреб.
3. Git та Github¶
Git для контролю версій
Git — це система контролю версій, яка дозволяє мені відстежувати та керувати змінами в документації. Github — це онлайн-сервіс, який дозволяє мені зберігати мої репозиторії Git та співпрацювати з іншими.
Переваги:
- Контроль версій: Кожна зміна документується і може бути відстежена в будь-який час, що допомагає мені уникати помилок та зберігати загальний огляд.
- Співпраця: Кілька людей можуть одночасно працювати над документацією, що дає мені можливість інтегрувати відгуки та внески від інших.
- Резервне копіювання: Моя документація в безпеці та регулярно резервується, що дає мені впевненість у тому, що моя робота не буде втрачена.
4. Github Desktop¶
Github Desktop як інструмент
Github Desktop — це графічний інтерфейс для Git, який дозволяє мені легко використовувати Git без командного рядка.
Переваги:
- Простота використання, що полегшує мені використання Git.
- Не потрібні знання командного рядка, що заощаджує мені час та зусилля.
- Спрощує мій робочий процес, дозволяючи мені зосередитися на створенні контенту.
5. MkDocs¶
MkDocs як генератор вебсайтів
MkDocs — це генератор статичних сайтів, який перетворює мої файли Markdown на статичний вебсайт.
Переваги:
- Просте створення вебсайту, що дозволяє мені швидко та легко публікувати свою документацію.
- Швидке оновлення, що дозволяє мені бачити зміни в режимі реального часу.
- Послідовний макет, що забезпечує професійний та єдиний вигляд моєї документації.
- Попередній перегляд офлайн, що дозволяє мені перевірити свою документацію перед публікацією.
6. Github Pages¶
Github Pages для хостингу
Github Pages — це безкоштовний сервіс хостингу від Github, який дозволяє мені легко публікувати свій вебсайт онлайн.
Переваги:
- Безкоштовний хостинг, що дозволяє мені публікувати свою документацію без додаткових витрат.
- Проста публікація, що знімає з мене технічну реалізацію публікації.
- Надійність, що дає мені впевненість у тому, що моя документація завжди доступна.
7. MkDocs-Material¶
MkDocs-Material як тема
MkDocs-Material — це тема для MkDocs, яка забезпечує сучасний та привабливий макет.
Переваги:
- Сучасний дизайн, що робить мою документацію професійною та актуальною.
- Налаштовуваність, що дозволяє мені адаптувати макет до моїх конкретних потреб.
- Зручність для користувача, що полегшує мені використання документації.
8. MkDocs-Publisher¶
MkDocs-Publisher як набір плагінів
MkDocs-Publisher — це набір плагінів MkDocs, які спрощують співпрацю з Obsidian та надають додаткові функції.
Переваги:
- Спрощена інтеграція з Obsidian: Автоматичне налаштування синтаксису Markdown Obsidian (Callouts, Wikilinks тощо).
- Розширені метадані: Інтеграція тегів та категорій з Obsidian Frontmatter.
Робочий процес¶
Мій робочий процес
Ось мій типовий робочий процес:
- Я створюю та редагую файли Markdown за допомогою текстового редактора (необов'язково Obsidian).
- Я зберігаю файли Markdown локально.
- Я передаю свої зміни до репозиторію Git за допомогою Github Desktop.
- Я автоматично генерую вебсайт за допомогою MkDocs.
- Я публікую вебсайт за допомогою Github Pages.
Файлова система¶
Структура каталогів
Ось структура каталогів моєї системи:
/docs/ (Тут знаходяться мої файли Markdown)
/site/ (Тут генерується вебсайт)
license (Інформація про ліцензію)
mkdocs.yml (Файл конфігурації для MkDocs)
readme.md (Файл з описом репозиторію)
Альтернативи для створення контенту¶
Альтернативи для створення контенту
Я розумію, що не всі знайомі з Markdown та Git. Тому я пропоную такі альтернативи:
- Wordpress: Вміст може бути створений у Wordpress як сторінка.
- Текстовий файл, файл Word: Вміст може бути створений як текстовий файл, файл Word (або в інших типових форматах).
У цих випадках я можу потім інтегрувати вміст у систему.