Как я 15 лет делал себе персональную Wiki для программиста
Существует два типа инструментов
- WYSIWYG, например, Google Doc, Word, и т.п.
- Lightweight Markup Language, например, markdown, которые можно писать в любом редакторе.
Программисты предопочтивают второе, потому что пользуются vim, emacs, кучей разных шорткатов.
Пример такой софота, который работает через Markup Languages и предназначен для wiki: Wikipad.
Григорий когда использовал Wikidpad
- 10-15 записей в день
- Текст часто меняется
- С заголовками и параграфами проблема, при чтении не видно вложенность
В итоге Григорий пришел к собственному синтаксису, похожему на markdown. Синтаксис параграфов работает как блоки в pyton. Отступ это вложенный параграф или вложенный список. Максимальная вложенность – 6
Еще разработчики привыкли к дереву файлов(outliner)
Однако, записи программиста это не дерево, а граф. Outliner не умеет это отображать, а поиск по контенту работает лучше чем поиск по outliner.
Плагин
Сейчас Xi существует в виде плагина для раскраски синтаксиса, позволяет кликать на слова. Каждая статья – 1 файл. Outline`а в привычном виде нет, он переехал в начало статьи, сделан в виде ссылок на другие статьи, связанные с темой статьи.
Сейчас плагин работает в VSCode, существует отдельная цветовая схема, в которой много контрастных цветов для более гибкого обозначения типов контента. Отдельные цвета для терминов, уровня вложенности, кода, списков, примеров и т.д. За основу взята темная тема, синтаксис разметки тоже сделан темным, чтобы сливаться с фоном редактора и не мешать во время чтения заметки.
Фичи
- Ссылки в xi поддерживаются через хеши. Т.е. можно сделать ссылку на заголовок другой статьи через якорь
- Термины выделяются пайпом
|
- На очень важные вещи, на которые обязательно нужно обратить внимение, используется вырвиглазный цвет :)
- Все что после вертикальной черты – код
- Списки ничем не отличаются от параграфа, можно использовать любой символ: #, *, ! и т.д.
- Есть аналог тегов
- Поиск работает через regexp по контенту, тегам, заголовкам
Для таблиц и картинок используются Google Drive и Google Sheets.
Выводы
- Развитие базы знаний это серьезная инвестиция, которая нужна не всем
- Окупается, если задачи повторяются
- Хорошо работает, если языков много