20 января 2025 г. (изменено: 20 января 2025 г.)

Канал: @cherkashindev

1 343

Жизнь без Канбан досок в Obisidian 💎

После перехода с Notion на Obsidian я начал упрощать всё, что только можно. Например, в Obsidian нет нативной поддержки канбан-досок. Я попробовал плагин Projects для управления постами, которые перенёс из Notion.

Но у него есть проблема: статусы у новых записей почему-то слетают. Возможно я что-то настроил не так, но мне приходится выставлять их по несколько раз, что, мягко говоря, раздражает.

И тут я задумался: а ведь канбан — это просто набор папок.


Посты  
├── 0.Backlog  
├── 1.Next  
├── 2.InProgress  
└── 3.Done  

Для простых случаев этого более чем достаточно. Иногда самое простое решение оказывается самым удобным.

А ещё мне нравится, что в Obsidian всё — это просто файлы и папки. Это даёт огромную свободу для оптимизаций с помощью скриптов. Например, я попросил ChatGPT написать скрипт, который автоматически переносит готовые посты в папку “3.Done”.

 
#!/bin/bash
 
echo "Moving files with the 'done' tag to the Done folder..."
 
# Paths to the Posts and Done folders
POSTS_FOLDER="$HOME/Documents/Obsidian Vault/Посты"  # Adjust the base path to your Obsidian vault
DONE_FOLDER="$HOME/Documents/Obsidian Vault/Посты/3.Done"
 
# Ensure the Done folder exists
if [ ! -d "$DONE_FOLDER" ]; then
  mkdir -p "$DONE_FOLDER" || {
    echo "Failed to create Done folder: $DONE_FOLDER"
    exit 1
  }
fi
 
# Check if the Posts folder exists
if [ ! -d "$POSTS_FOLDER" ]; then
  echo "Posts folder does not exist: $POSTS_FOLDER"
  exit 1
fi
 
# Process files
echo "Scanning for markdown files with #done tag in $POSTS_FOLDER..."
moved_count=0
for file in "$POSTS_FOLDER"/*.md; do
  # Skip if no markdown files are found
  if [ ! -e "$file" ]; then
    echo "No markdown files found in $POSTS_FOLDER."
    break
  fi
 
  # Check if the file contains the #done tag
  if grep -q "✅ Done" "$file"; then
    mv "$file" "$DONE_FOLDER/" && {
      echo "Moved: $(basename "$file")"
      ((moved_count++))
    } || {
      echo "Failed to move: $(basename "$file")"
    }
  fi
done
 
echo "Finished. Total files moved: $moved_count."
🔥 8 👍 6 5 👎 1