summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Mora Unie Youer <[email protected]>2026-02-04 18:29:56 +0300
committerLibravatar Mora Unie Youer <[email protected]>2026-02-04 18:29:56 +0300
commit3b878003944e5c671b65d5dd135b9ad298681293 (patch)
treec675837fc6fea6c52300ab7863c67600fb618d8a
downloadzk-3b878003944e5c671b65d5dd135b9ad298681293.tar.gz
zk-3b878003944e5c671b65d5dd135b9ad298681293.tar.bz2
zk-3b878003944e5c671b65d5dd135b9ad298681293.tar.lz
zk-3b878003944e5c671b65d5dd135b9ad298681293.tar.xz
zk-3b878003944e5c671b65d5dd135b9ad298681293.tar.zst
zk-3b878003944e5c671b65d5dd135b9ad298681293.zip
feat: initial commit
-rw-r--r--.README.md121
-rw-r--r--.SAMPLE.huge-idea.md23
-rw-r--r--.SAMPLE.invention.md32
-rw-r--r--.SAMPLE.knowledge.md20
-rw-r--r--.SAMPLE.reference.md16
-rw-r--r--.SAMPLE.rethought.md25
-rw-r--r--.SAMPLE.tiny-idea.md19
-rw-r--r--.gitignore2
-rw-r--r--.zk/config.toml210
-rw-r--r--.zk/templates/default.md14
-rw-r--r--.zk/templates/huge-idea.md18
-rw-r--r--.zk/templates/invention.md21
-rw-r--r--.zk/templates/knowledge.md18
-rw-r--r--.zk/templates/reference.md18
-rw-r--r--.zk/templates/rethought.md21
-rw-r--r--.zk/templates/tiny-idea.md21
16 files changed, 599 insertions, 0 deletions
diff --git a/.README.md b/.README.md
new file mode 100644
index 0000000..5bfcad8
--- /dev/null
+++ b/.README.md
@@ -0,0 +1,121 @@
+# Mynd
+
+## Идея
+
+Это хранилище направлено на сохранение всех идей и мыслей, что возникают в моей голове.
+
+## Предыстория
+
+В течение долгого времени я страдал проблемой забывания собственных идей и мыслей. На то были
+попытки сделать свою собственную реализацию хранилища, далее попытки использовать Obsidian.
+
+К сожалению, каждый из экспериментов ведения хранилищ до этого проваливался, так как я превращал его
+в личный дневник, который далее вести не хотел вообще.
+
+По этой причине это хранилище отныне является полной свалкой, которую я пытаюсь хоть как-то
+систематизировать.
+
+## Принципы
+
+Для сохранения этого хранилища на долгое время, приняты следующие принципы ведения хранилища знаний:
+
+1. Создаваемые заметки должны быть настолько мелкими, насколько это возможно.
+ > [!TIP]
+ > Если мысль содержит несколько маленьких мыслей, их необходимо разбить на несколько заметок (и
+ > при необходимости связать их между собой).
+
+2. Создаваемые заметки обязательно должны иметь ссылку на другую заметку.
+ > [!NOTE]
+ > Это правило разрешено нарушать лишь определённым заметкам, роль которых в группировке заметок
+ > между собой.
+
+3. Создаваемые заметки должны иметь отметку о том, что её необходимо отсмотреть в конце дня, для
+ качественного отбора заметок.
+
+4. Удалять заметки запрещено.
+ > [!TIP]
+ > Если хочется, чтобы заметка не появлялась в поисках, можно дать ей какой-нибудь тег для
+ > отфильтровки
+
+## Релизация
+
+Для реализации этого хранилища используется проект `zk`, который позволяет управлять файлами
+Markdown как хранилищем.
+
+1. Имена файлов заметок будут генерироваться рандомно и будут иметь формат 8 alphanumeric символов.
+ Это позволит избавиться от ненужной зависимости "название файла - содержимое".
+ > [!TIP]
+ > Указанная реализация хранилища позволяет искать содержимое внутри карточек, что убирает
+ > необходимость в "удобных именах файлов". К тому же фиксированная длина файловых имён позволяет
+ > ссылаться на них удобнее.
+
+2. В начале каждой заметки генерируется Frontmatter, внутри которого заданы ID карточки и дата
+ создания. Это позволяет сохранить данные о карточке в момент её создания, не опираясь на
+ файловую систему.
+
+3. Каждая новосозданная заметка имеет тег #draft, который позволяет зафиксировать, что эту
+ карточку необходимо отсмотреть.
+
+4. Каждая новосозданная заметка имеет ссылку на родительскую заметку. Родительская заметка, в свою
+ очередь тоже должна иметь ссылку на дочернюю заметку. Таким образом создаётся система
+ двухнаправленных связей, где к каждой заметке можно попасть с помощью прямых переходов по
+ ссылкам.
+ > [!TIP]
+ > В момент создания заметка может не иметь ссылку на себя, и тогда с помощью `zk` можно
+ > определить, что она является "сиротой".
+
+ > [!NOTE]
+ > Одно из условий выхода заметки из #review - заметка не является "сиротой". Это гарантирует,
+ > что карточка не затеряется среди массы связей.
+
+### Перечень тегов
+
+- `draft` - заметка является черновиком. Тег снимается с заметки, когда она является законченой.
+- `dead` - заметка, которую я отныне считаю бесполезной.
+
+- `book` - заметка является ссылкой на книгу.
+- `podcast` - заметка является ссылкой на подкаст.
+- `video` - заметка является ссылкой на видеоматериал.
+
+- `snippet` - заметка содержит в себе код, который полезен для раскрытия мысли. С таких заметок
+ снимается ограничение на количество слов, вследствие наличия кода. Однако рекомендуется сохранять
+ минимальность каждой заметки.
+
+- Идейные заметки - используются для высказывания идейный мыслей в моей голове. Подразумевается
+ использование для сохранения проектов, мысль о которых возникла в голове.
+ - `huge idea` - заметка является масштабной идеей. Масштабность её заключается в том, что вся
+ задумка не может быть высказана в рамках одной заметки.
+ Масштабная идея обязана иметь ссылки на связанные малые идеи.
+ Масштабная идея также подразумевается как глобальная мысль, которая не имеет родителя.
+
+ - `tiny idea` - заметка является малой идеей. Может являться как частью масштабной идеи, так и
+ самодостаточной идеей.
+
+- Информационные заметки:
+ - `knowledge` - заметка содержит в себе информацию, которая считается мною как факт, но взята из
+ моей памяти. Создаётся для сохранения мыслительного процесса, с упором на мои знания.
+ Обязана иметь backlink на идейную заметку.
+ Не должна иметь прямые ссылки на заметки, за исключением продолжения мысли.
+
+ - `reference` - заметка содержит в себе информацию, которая считается другим человеком как факт.
+ Является ссылкой на чью-то работу. Может быть ссылкой на книгу, видео или что-то другое.
+ Обязана иметь backlink на идейную заметку.
+ Не должна иметь прямые ссылки на заметки, за исключением продолжения мысли.
+ > [!NOTE]
+ > Только этому виду заметок разрешено иметь ссылки на источники вне хранилища.
+
+- Переосмысленные заметки:
+ - `rethought` - заметка содержит в себе переосмысление информации, которая считается мною или
+ другим человеком как факт.
+ Обязана иметь backlink на информационную заметку.
+
+- Синтезированные заметки:
+ - `invention` - заметка содержит в себе реализацию идеи/информации/переосмысления. Иными
+ словами, эта заметка - продукт моих стараний, без упора в результат чужой работы.
+
+#### Иерархия тегов
+- `huge idea`
+- `tiny idea`
+- `invention`
+- `rethought`
+- `knowledge`, `reference`
diff --git a/.SAMPLE.huge-idea.md b/.SAMPLE.huge-idea.md
new file mode 100644
index 0000000..6285cf4
--- /dev/null
+++ b/.SAMPLE.huge-idea.md
@@ -0,0 +1,23 @@
+---
+id: some_generated_slug
+date: 2026-02-04T15:51:53+0300
+languages: [ru]
+aliases:
+
+reviews:
+- 2026-02-04T15:55:00+0300
+
+tags:
+- huge idea
+---
+Приложение для заучивания информации
+=
+
+Приложение должно помогать заучивать информацию. [^1]
+
+## Down
+- [Какая-то идея для этого приложения](some_link)
+- [Какая-то другая идея для этого приложения](some_link)
+
+## Footnotes
+[^1]: По-крайней мере хотя бы мне
diff --git a/.SAMPLE.invention.md b/.SAMPLE.invention.md
new file mode 100644
index 0000000..76ec4c2
--- /dev/null
+++ b/.SAMPLE.invention.md
@@ -0,0 +1,32 @@
+---
+id: some_generated_slug
+date: 2026-02-04T15:51:53+0300
+languages: [ru]
+aliases:
+
+reviews:
+- 2026-02-04T15:55:00+0300
+
+tags:
+- invention
+---
+Способ выйти из приложения на Python
+=
+
+Some text blah blah
+
+```python
+import os
+
+os.exit(1)
+```
+
+## Up
+- [Какое-то приложение, где это используется](some_link)
+- [Какой-то источник информации, который направил меня на эту реализацию](some_link)
+
+## Down
+- [Какое-то продолжение мысли о выходе из приложения](some_link)
+
+## Related
+- [Что-то похожее на эту проблему](some_link)
diff --git a/.SAMPLE.knowledge.md b/.SAMPLE.knowledge.md
new file mode 100644
index 0000000..5b3d2fd
--- /dev/null
+++ b/.SAMPLE.knowledge.md
@@ -0,0 +1,20 @@
+---
+id: some_generated_slug
+date: 2026-02-04T15:51:53+0300
+languages: [ru]
+aliases:
+
+reviews:
+- 2026-02-04T15:55:00+0300
+
+tags:
+- knowledge
+---
+Питон - лучший язык программирования
+=
+
+Я знаю, что это факт!
+
+## Up
+- [Какой язык программирования лучший?](some_link)
+- [Может Python не такой прям лучший?](some_link)
diff --git a/.SAMPLE.reference.md b/.SAMPLE.reference.md
new file mode 100644
index 0000000..4e71e66
--- /dev/null
+++ b/.SAMPLE.reference.md
@@ -0,0 +1,16 @@
+---
+id: some_generated_slug
+date: 2026-02-04T15:51:53+0300
+languages: [ru]
+aliases:
+
+reviews:
+- 2026-02-04T15:55:00+0300
+
+tags:
+- reference
+---
+Язык Python и его проблемы
+=
+
+[Видосик](some_link)
diff --git a/.SAMPLE.rethought.md b/.SAMPLE.rethought.md
new file mode 100644
index 0000000..cb8e805
--- /dev/null
+++ b/.SAMPLE.rethought.md
@@ -0,0 +1,25 @@
+---
+id: some_generated_slug
+date: 2026-02-04T15:51:53+0300
+languages: [ru]
+aliases:
+
+reviews:
+- 2026-02-04T15:55:00+0300
+
+tags:
+- rethought
+---
+Может Python не такой прям лучший?
+=
+
+Блин, а может он и не такой уж и лучший
+
+## Up
+- [Какой язык программирования лучший?](some_link)
+
+## Down
+- [Питон - лучший язык программирования](some_link)
+- [Причины, почему Python не лучший](some_link)
+- [Язык Python и его проблемы](some_link)
+
diff --git a/.SAMPLE.tiny-idea.md b/.SAMPLE.tiny-idea.md
new file mode 100644
index 0000000..8ca544e
--- /dev/null
+++ b/.SAMPLE.tiny-idea.md
@@ -0,0 +1,19 @@
+---
+id: some_generated_slug
+date: 2026-02-04T15:51:53+0300
+languages: [ru]
+aliases:
+
+reviews:
+- 2026-02-04T15:55:00+0300
+
+tags:
+- tiny idea
+---
+Приложение для заучивания информации
+=
+
+Приложение должно помогать заучивать информацию. [^1]
+
+## Footnotes
+[^1]: По-крайней мере хотя бы мне
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..2df70de
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+# No reason to back it up
+.zk/notebook.db
diff --git a/.zk/config.toml b/.zk/config.toml
new file mode 100644
index 0000000..3a9b19a
--- /dev/null
+++ b/.zk/config.toml
@@ -0,0 +1,210 @@
+# zk configuration file
+#
+# Uncomment the properties you want to customize.
+
+# NOTE SETTINGS
+#
+# Defines the default options used when generating new notes.
+[note]
+
+# Language used when writing notes.
+# This is used to generate slugs or with date formats.
+#language = "en"
+
+# The default title used for new note, if no `--title` flag is provided.
+#default-title = "Untitled"
+
+# Template used to generate a note's filename, without extension.
+#filename = "{{id}}"
+
+# The file extension used for the notes.
+#extension = "md"
+
+# Template used to generate a note's content.
+# If not an absolute path or "~/unix/path", it's relative to .zk/templates/
+template = "default.md"
+
+# Path globs ignored while indexing existing notes.
+#exclude = [
+# "drafts/*",
+# "log.md"
+#]
+
+# Configure random ID generation.
+
+# The charset used for random IDs. You can use:
+# * letters: only letters from a to z.
+# * numbers: 0 to 9
+# * alphanum: letters + numbers
+# * hex: hexadecimal, from a to f and 0 to 9
+# * custom string: will use any character from the provided value
+#id-charset = "alphanum"
+
+# Length of the generated IDs.
+id-length = 6
+
+# Letter case for the random IDs, among lower, upper or mixed.
+# id-case = "lower"
+
+
+# EXTRA VARIABLES
+#
+# A dictionary of variables you can use for any custom values when generating
+# new notes. They are accessible in templates with {{extra.<key>}}
+[extra]
+
+#key = "value"
+
+
+# GROUP OVERRIDES
+#
+# You can override global settings from [note] and [extra] for a particular
+# group of notes by declaring a [group."<name>"] section.
+#
+# Specify the list of directories which will automatically belong to the group
+# with the optional `paths` property.
+#
+# Omitting `paths` is equivalent to providing a single path equal to the name of
+# the group. This can be useful to quickly declare a group by the name of the
+# directory it applies to.
+
+#[group."<NAME>"]
+#paths = ["<DIR1>", "<DIR2>"]
+#[group."<NAME>".note]
+#filename = "{{format-date now}}"
+#[group."<NAME>".extra]
+#key = "value"
+
+
+# MARKDOWN SETTINGS
+[format.markdown]
+
+# Format used to generate links between notes.
+# Either "wiki", "markdown" or a custom template. Default is "markdown".
+#link-format = "wiki"
+# Indicates whether a link's path will be percent-encoded.
+# Defaults to true for "markdown" format and false for "wiki" format.
+link-encode-path = false
+# Indicates whether a link's path file extension will be removed.
+# Defaults to true.
+#link-drop-extension = true
+
+# Enable support for #hashtags.
+hashtags = true
+# Enable support for :colon:separated:tags:.
+colon-tags = false
+# Enable support for Bear's #multi-word tags#
+# Hashtags must be enabled for multi-word tags to work.
+multiword-tags = false
+
+
+# EXTERNAL TOOLS
+[tool]
+
+# Default editor used to open notes. When not set, the EDITOR or VISUAL
+# environment variables are used.
+#editor = "vim"
+
+# Pager used to scroll through long output. If you want to disable paging
+# altogether, set it to an empty string "".
+#pager = "less -FIRX"
+
+# Command used to preview a note during interactive fzf mode.
+# Set it to an empty string "" to disable preview.
+
+# bat is a great tool to render Markdown document with syntax highlighting.
+#https://github.com/sharkdp/bat
+#fzf-preview = "bat -p --color always {-1}"
+
+
+# LSP
+#
+# Configure basic editor integration for LSP-compatible editors.
+# See https://zk-org.github.io/zk/tips/editors-integration.html
+#
+[lsp]
+
+[lsp.diagnostics]
+# Each diagnostic can have for value: none, hint, info, warning, error
+
+# Report titles of wiki-links as hints.
+#wiki-title = "hint"
+# Warn for dead links between notes.
+dead-link = "error"
+# Warn when a note links to itself.
+#self-link = "warning"
+# Report missing backlinks
+#missing-backlink = { level = "hint", position = "bottom" }
+
+
+[lsp.completion]
+# Customize the completion pop-up of your LSP client.
+
+# Show the note title in the completion pop-up, or fallback on its path if empty.
+#note-label = "{{title-or-path}}"
+# Filter out the completion pop-up using the note title or its path.
+#note-filter-text = "{{title}} {{path}}"
+# Show the note filename without extension as detail.
+#note-detail = "{{filename-stem}}"
+
+
+# NAMED FILTERS
+#
+# A named filter is a set of note filtering options used frequently together.
+#
+[filter]
+
+# Matches the notes created the last two weeks. For example:
+# $ zk list recents --limit 15
+# $ zk edit recents --interactive
+#recents = "--sort created- --created-after 'last two weeks'"
+
+
+# COMMAND ALIASES
+#
+# Aliases are user commands called with `zk <alias> [<flags>] [<args>]`.
+#
+# The alias will be executed with `$SHELL -c`, please refer to your shell's
+# man page to see the available syntax. In most shells:
+# * $@ can be used to expand all the provided flags and arguments
+# * you can pipe commands together with the usual | character
+#
+[alias]
+# Here are a few aliases to get you started.
+
+# Shortcut to a command.
+#ls = "zk list $@"
+
+# Default flags for an existing command.
+#list = "zk list --quiet $@"
+
+# Edit the last modified note.
+#editlast = "zk edit --limit 1 --sort modified- $@"
+
+# Edit the notes selected interactively among the notes created the last two weeks.
+# This alias doesn't take any argument, so we don't use $@.
+#recent = "zk edit --sort created- --created-after 'last two weeks' --interactive"
+
+# Print paths separated with colons for the notes found with the given
+# arguments. This can be useful to expand a complex search query into a flag
+# taking only paths. For example:
+# zk list --link-to "`zk path -m potatoe`"
+#path = "zk list --quiet --format {{path}} --delimiter , $@"
+
+# Show a random note.
+#lucky = "zk list --quiet --format full --sort random --limit 1"
+
+# Returns the Git history for the notes found with the given arguments.
+# Note the use of a pipe and the location of $@.
+#hist = "zk list --format path --delimiter0 --quiet $@ | xargs -t -0 git log --patch --"
+
+# Edit this configuration file.
+conf = '$EDITOR "$ZK_NOTEBOOK_DIR/.zk/config.toml"'
+
+# Creation commands
+huge-idea = 'zk new --no-input --template="huge-idea.md"'
+tiny-idea = 'zk new --no-input --template="tiny-idea.md"'
+invention = 'zk new --no-input --template="invention.md"'
+rethought = 'zk new --no-input --template="rethought.md"'
+reference = 'zk new --no-input --template="reference.md"'
+knowledge = 'zk new --no-input --template="knowledge.md"'
diff --git a/.zk/templates/default.md b/.zk/templates/default.md
new file mode 100644
index 0000000..90a496c
--- /dev/null
+++ b/.zk/templates/default.md
@@ -0,0 +1,14 @@
+---
+id: {{id}}
+date: {{format-date now "%FT%T%z"}}
+languages: []
+aliases:
+
+reviews:
+
+tags:
+- draft
+---
+# {{title}}
+
+{{content}}
diff --git a/.zk/templates/huge-idea.md b/.zk/templates/huge-idea.md
new file mode 100644
index 0000000..b32ed6a
--- /dev/null
+++ b/.zk/templates/huge-idea.md
@@ -0,0 +1,18 @@
+---
+id: {{id}}
+date: {{format-date now "%FT%T%z"}}
+languages: []
+aliases:
+
+reviews:
+
+tags:
+- draft
+- huge idea
+---
+# {{title}}
+
+{{content}}
+
+## Down
+-
diff --git a/.zk/templates/invention.md b/.zk/templates/invention.md
new file mode 100644
index 0000000..b80298f
--- /dev/null
+++ b/.zk/templates/invention.md
@@ -0,0 +1,21 @@
+---
+id: {{id}}
+date: {{format-date now "%FT%T%z"}}
+languages: []
+aliases:
+
+reviews:
+
+tags:
+- draft
+- invention
+---
+# {{title}}
+
+{{content}}
+
+## Up
+-
+
+## Down
+-
diff --git a/.zk/templates/knowledge.md b/.zk/templates/knowledge.md
new file mode 100644
index 0000000..ac399cd
--- /dev/null
+++ b/.zk/templates/knowledge.md
@@ -0,0 +1,18 @@
+---
+id: {{id}}
+date: {{format-date now "%FT%T%z"}}
+languages: []
+aliases:
+
+reviews:
+
+tags:
+- draft
+- knowledge
+---
+# {{title}}
+
+{{content}}
+
+## Up
+-
diff --git a/.zk/templates/reference.md b/.zk/templates/reference.md
new file mode 100644
index 0000000..9117fb9
--- /dev/null
+++ b/.zk/templates/reference.md
@@ -0,0 +1,18 @@
+---
+id: {{id}}
+date: {{format-date now "%FT%T%z"}}
+languages: []
+aliases:
+
+reviews:
+
+tags:
+- draft
+- reference
+---
+# {{title}}
+
+{{content}}
+
+## Up
+-
diff --git a/.zk/templates/rethought.md b/.zk/templates/rethought.md
new file mode 100644
index 0000000..09ca9a3
--- /dev/null
+++ b/.zk/templates/rethought.md
@@ -0,0 +1,21 @@
+---
+id: {{id}}
+date: {{format-date now "%FT%T%z"}}
+languages: []
+aliases:
+
+reviews:
+
+tags:
+- draft
+- rethought
+---
+# {{title}}
+
+{{content}}
+
+## Up
+-
+
+## Down
+-
diff --git a/.zk/templates/tiny-idea.md b/.zk/templates/tiny-idea.md
new file mode 100644
index 0000000..834db7c
--- /dev/null
+++ b/.zk/templates/tiny-idea.md
@@ -0,0 +1,21 @@
+---
+id: {{id}}
+date: {{format-date now "%FT%T%z"}}
+languages: []
+aliases:
+
+reviews:
+
+tags:
+- draft
+- tiny idea
+---
+# {{title}}
+
+{{content}}
+
+## Up
+-
+
+## Down
+-