4. Bases实用示例

coffeebean2025年7月22日大约 6 分钟Bases代码实例Bases示例实战

Bases实用示例

本文提供了丰富的 Obsidian Bases 实用示例,帮助您更好地理解和应用 Bases 功能来管理不同类型的信息和项目。

1 项目管理系统

1.1 基础项目追踪

创建一个完整的项目管理 Base:

# 项目管理.base
views:
  - name: "活跃项目"
    filters:
      and:
        - file.hasTag("project")
        - status == "active"
    properties:
      - name
      - status
      - priority
      - deadline
      - progress
      - assignee

  - name: "即将到期"
    filters:
      and:
        - file.hasTag("project")
        - deadline <= today() + "7d"
        - status != "completed"
    properties:
      - name
      - deadline
      - days_remaining: "formula"
      - priority
      - status

  - name: "高优先级"
    filters:
      and:
        - file.hasTag("project")
        - priority >= 8
        - status != "completed"
    properties:
      - name
      - priority
      - deadline
      - assignee
      - progress_bar: "formula"

1.2 项目公式示例

// 计算剩余天数
days_remaining: (deadline - today()).days()

// 进度条显示
progress_bar: progress >= 100 ? "✅ 完成" : 
              progress >= 75 ? "🟢 " + progress + "%" : 
              progress >= 50 ? "🟡 " + progress + "%" : 
              progress >= 25 ? "🟠 " + progress + "%" : 
              "🔴 " + progress + "%"

// 状态优先级
status_icon: status == "completed" ? "✅" : 
             status == "active" ? "🚀" : 
             status == "paused" ? "⏸️" : 
             status == "planning" ? "📋" : "❓"

2 个人任务管理

2.1 每日任务视图

# 任务管理.base
views:
  - name: "今日任务"
    filters:
      and:
        - file.hasTag("task")
        - due_date == today()
    properties:
      - name
      - priority
      - estimated_time
      - category
      - completed: "checkbox"

  - name: "本周任务"
    filters:
      and:
        - file.hasTag("task")
        - due_date >= today()
        - due_date <= today() + "7d"
    properties:
      - name
      - due_date
      - priority
      - time_to_deadline: "formula"
      - category

  - name: "逾期任务"
    filters:
      and:
        - file.hasTag("task")
        - due_date < today()
        - completed != true
    properties:
      - name
      - due_date
      - days_overdue: "formula"
      - priority
      - urgency_level: "formula"

2.2 任务管理公式

// 截止时间倒计时
time_to_deadline: due_date <= today() ? "已过期" : 
                  (due_date - today()).days() + " 天后"

// 逾期天数
days_overdue: (today() - due_date).days()

// 紧急程度
urgency_level: days_overdue > 7 ? "🔥 极紧急" : 
               days_overdue > 3 ? "⚠️ 紧急" : 
               days_overdue > 0 ? "⏰ 超期" : "⭐ 正常"

// 任务时间估算
time_display: estimated_time <= 30 ? estimated_time + "分钟" : 
              estimated_time <= 480 ? (estimated_time / 60).round(1) + "小时" : 
              (estimated_time / 480).round(1) + "天"

3 知识库管理

3.1 笔记分类系统

# 知识库.base
views:
  - name: "最新笔记"
    filters:
      and:
        - file.ctime >= today() - "30d"
        - !file.hasTag("template")
    properties:
      - name
      - tags
      - created: "file.ctime"
      - word_count: "formula"
      - quality_score

  - name: "待完善"
    filters:
      and:
        - file.hasTag("draft")
        - quality_score < 7
    properties:
      - name
      - quality_score
      - last_modified: "file.mtime"
      - improvement_needed: "formula"

  - name: "高质量笔记"
    filters:
      and:
        - quality_score >= 8
        - !file.hasTag("draft")
    properties:
      - name
      - quality_score
      - tags
      - backlink_count: "formula"
      - influence_score: "formula"

3.2 知识库公式

// 字数统计(模拟)
word_count: file.size > 1000 ? "长文" : 
            file.size > 500 ? "中等" : "短文"

// 改进建议
improvement_needed: quality_score < 5 ? "需要重写" : 
                    quality_score < 7 ? "需要完善" : 
                    quality_score < 8 ? "小幅优化" : "优秀"

// 反向链接计数(示例)
backlink_count: file.inlinks.length

// 影响力评分
influence_score: (quality_score * 0.6) + (backlink_count * 0.4)

4 读书管理系统

4.1 阅读追踪

# 读书清单.base
views:
  - name: "当前阅读"
    filters:
      and:
        - file.hasTag("book")
        - reading_status == "reading"
    properties:
      - title
      - author
      - current_page
      - total_pages
      - progress_percentage: "formula"
      - daily_pages: "formula"
      - estimated_completion: "formula"

  - name: "待读书单"
    filters:
      and:
        - file.hasTag("book")
        - reading_status == "to-read"
    properties:
      - title
      - author
      - priority
      - category
      - pages
      - estimated_reading_time: "formula"
      - added_date

  - name: "已完成"
    filters:
      and:
        - file.hasTag("book")
        - reading_status == "completed"
    properties:
      - title
      - author
      - rating
      - completion_date
      - reading_duration: "formula"
      - favorite: "checkbox"

4.2 阅读管理公式

// 阅读进度百分比
progress_percentage: total_pages > 0 ? 
                     (current_page / total_pages * 100).round(1) + "%" : "0%"

// 每日阅读页数(假设)
daily_pages: reading_start_date ? 
             (current_page / (today() - reading_start_date).days()).round(1) : 0

// 预计完成时间
estimated_completion: daily_pages > 0 ? 
                      today() + ((total_pages - current_page) / daily_pages) + "d" : 
                      "未知"

// 阅读时长
reading_duration: completion_date && reading_start_date ? 
                  (completion_date - reading_start_date).days() + " 天" : "进行中"

// 预估阅读时间(每页2分钟)
estimated_reading_time: pages ? (pages * 2 / 60).round(1) + " 小时" : "未知"

5 健康生活管理

5.1 习惯追踪系统

# 生活管理.base
views:
  - name: "今日习惯"
    filters:
      and:
        - file.hasTag("habit")
        - date == today()
    properties:
      - habit_name: "name"
      - completed: "checkbox"
      - target_value
      - actual_value
      - completion_rate: "formula"
      - streak_status: "formula"

  - name: "习惯统计"
    filters:
      and:
        - file.hasTag("habit")
        - date >= today() - "30d"
    properties:
      - habit_name: "name"
      - total_attempts: "formula"
      - success_count: "formula"
      - success_rate: "formula"
      - longest_streak: "formula"
      - current_streak: "formula"

  - name: "健康指标"
    filters:
      and:
        - file.hasTag("health")
        - date >= today() - "7d"
    properties:
      - date
      - weight
      - exercise_minutes
      - sleep_hours
      - mood_score
      - health_trend: "formula"

5.2 健康管理公式

// 完成率计算
completion_rate: target_value > 0 ? 
                 (actual_value / target_value * 100).round(1) + "%" : "0%"

// 连续天数状态
streak_status: completed ? "🔥 继续保持" : "💔 中断了"

// 成功率统计
success_rate: total_attempts > 0 ? 
              (success_count / total_attempts * 100).round(1) + "%" : "0%"

// 健康趋势
health_trend: weight <= target_weight && 
              exercise_minutes >= 30 && 
              sleep_hours >= 7 ? "📈 向好" : 
              "📉 需改善"

// 心情图标
mood_display: mood_score >= 8 ? "😊 很好" : 
              mood_score >= 6 ? "🙂 不错" : 
              mood_score >= 4 ? "😐 一般" : 
              mood_score >= 2 ? "😟 不好" : "😢 很糟"

6 财务管理系统

6.1 支出追踪

# 财务管理.base
views:
  - name: "本月支出"
    filters:
      and:
        - file.hasTag("expense")
        - date >= today().startOf("month")
    properties:
      - description: "name"
      - amount
      - category
      - date
      - payment_method
      - necessity: "formula"

  - name: "分类统计"
    filters:
      and:
        - file.hasTag("expense")
        - date >= today().startOf("month")
    group_by: "category"
    properties:
      - category
      - total_amount: "formula"
      - transaction_count: "formula"
      - average_amount: "formula"
      - budget_status: "formula"

  - name: "大额支出"
    filters:
      and:
        - file.hasTag("expense")
        - amount >= 1000
    properties:
      - description: "name"
      - amount
      - date
      - category
      - justification
      - impact_level: "formula"

6.2 财务管理公式

// 支出必要性评估
necessity: category == "食物" || category == "住房" || category == "交通" ? 
           "🟢 必需" : 
           category == "娱乐" || category == "购物" ? 
           "🟡 可选" : "🔴 奢侈"

// 预算状态
budget_status: total_amount <= budget_limit ? 
               "✅ 预算内" : 
               total_amount <= budget_limit * 1.1 ? 
               "⚠️ 接近预算" : "🚫 超预算"

// 影响程度
impact_level: amount >= 5000 ? "💰 重大支出" : 
              amount >= 1000 ? "💳 较大支出" : 
              amount >= 500 ? "💵 中等支出" : "💶 小额支出"

// 平均金额
average_amount: total_amount / transaction_count

// 月度对比
month_comparison: total_amount > last_month_total ? 
                  "📈 增加 " + ((total_amount - last_month_total) / last_month_total * 100).round(1) + "%" : 
                  "📉 减少 " + ((last_month_total - total_amount) / last_month_total * 100).round(1) + "%"

7 学习进度管理

7.1 课程学习追踪

# 学习管理.base
views:
  - name: "当前课程"
    filters:
      and:
        - file.hasTag("course")
        - status == "learning"
    properties:
      - course_name: "name"
      - instructor
      - completed_lessons
      - total_lessons
      - progress_bar: "formula"
      - estimated_completion: "formula"
      - difficulty_level

  - name: "学习计划"
    filters:
      and:
        - file.hasTag("learning")
        - planned_date >= today()
        - planned_date <= today() + "7d"
    properties:
      - topic: "name"
      - planned_date
      - estimated_duration
      - priority
      - prerequisites
      - learning_status: "formula"

  - name: "知识掌握度"
    filters:
      and:
        - file.hasTag("topic")
        - mastery_level > 0
    properties:
      - topic: "name"
      - mastery_level
      - last_reviewed
      - review_needed: "formula"
      - practice_count
      - confidence_score

7.2 学习管理公式

// 学习进度条
progress_bar: total_lessons > 0 ? 
              "█".repeat((completed_lessons / total_lessons * 10).round()) + 
              "░".repeat(10 - (completed_lessons / total_lessons * 10).round()) + 
              " " + (completed_lessons / total_lessons * 100).round() + "%" : 
              "未开始"

// 预计完成时间
estimated_completion: lessons_per_week > 0 ? 
                      today() + ((total_lessons - completed_lessons) / lessons_per_week * 7) + "d" : 
                      "未知"

// 学习状态
learning_status: planned_date == today() ? "🔥 今日学习" : 
                 planned_date == today() + "1d" ? "📅 明日计划" : 
                 planned_date < today() ? "⏰ 已逾期" : "📋 未来计划"

// 复习提醒
review_needed: mastery_level < 8 && 
               (today() - last_reviewed).days() > 
               (mastery_level <= 5 ? 3 : mastery_level <= 7 ? 7 : 14) ? 
               "🔔 需要复习" : "✅ 掌握良好"

// 学习难度显示
difficulty_display: difficulty_level >= 8 ? "🔴 困难" : 
                     difficulty_level >= 6 ? "🟡 中等" : 
                     difficulty_level >= 4 ? "🟢 简单" : "⭐ 基础"

8 团队协作管理

8.1 团队项目视图

# 团队协作.base
views:
  - name: "团队概览"
    filters:
      and:
        - file.hasTag("team-project")
        - status != "archived"
    properties:
      - project_name: "name"
      - team_members
      - project_lead
      - status
      - deadline
      - team_health: "formula"
      - completion_rate: "formula"

  - name: "个人任务"
    filters:
      and:
        - file.hasTag("task")
        - assignee.contains(this)
    properties:
      - task_name: "name"
      - project
      - priority
      - due_date
      - status
      - blocking_issues: "formula"

  - name: "团队负载"
    group_by: "assignee"
    filters:
      and:
        - file.hasTag("task")
        - status != "completed"
    properties:
      - assignee
      - active_tasks: "formula"
      - overdue_tasks: "formula"
      - workload_status: "formula"

8.2 团队协作公式

// 团队健康度
team_health: completed_tasks > 0 && overdue_tasks == 0 ? "🟢 健康" : 
             overdue_tasks <= total_tasks * 0.1 ? "🟡 注意" : 
             "🔴 风险"

// 完成率
completion_rate: total_tasks > 0 ? 
                 (completed_tasks / total_tasks * 100).round() + "%" : "0%"

// 阻塞问题
blocking_issues: dependencies.filter(dep => dep.status != "completed").length > 0 ? 
                 "🚫 被阻塞" : "✅ 无阻塞"

// 工作负载状态
workload_status: active_tasks <= 3 ? "🟢 轻松" : 
                 active_tasks <= 6 ? "🟡 正常" : 
                 active_tasks <= 10 ? "🟠 繁忙" : "🔴 超负荷"

// 优先级排序
priority_sort: priority == "critical" ? 1 : 
               priority == "high" ? 2 : 
               priority == "medium" ? 3 : 
               priority == "low" ? 4 : 5

9 高级应用技巧

9.1 动态过滤器

// 相对时间过滤
今日创建: file.ctime.date() == today()
本周修改: file.mtime >= today().startOf("week")
本月文件: file.ctime >= today().startOf("month")

// 条件组合
重要且紧急: priority >= 8 && deadline <= today() + "3d"
我的待办: assignee.contains(this) && status != "completed"

9.2 自定义显示

// 状态图标
status_icon: status == "completed" ? "✅" : 
             status == "in-progress" ? "🔄" : 
             status == "blocked" ? "🚫" : 
             status == "pending" ? "⏳" : "❓"

// 截止日期警告
deadline_warning: deadline < today() ? "🔴 已逾期" : 
                  deadline <= today() + "1d" ? "🟡 今明到期" : 
                  deadline <= today() + "3d" ? "🟠 3天内到期" : ""

// 进度可视化
progress_visual: "▓".repeat((progress / 10).round()) + 
                 "░".repeat(10 - (progress / 10).round())

10 最佳实践总结

💡 设计建议

  • 从简单的用例开始,逐步增加复杂性
  • 使用有意义的视图名称和属性名称
  • 合理利用公式增强数据的可读性
  • 定期回顾和优化 Base 结构

📝 维护提醒

  • 保持属性命名的一致性
  • 定期备份重要的 Base 配置
  • 记录复杂公式的含义和用途
  • 与团队成员分享最佳实践

11 扩展学习

学完这些示例后,您可以:

  • 结合其他插件创建更强大的工作流
  • 探索更高级的公式和计算方法
  • 构建适合您特定需求的管理系统
  • 分享和交流您的创新应用
上次编辑于: 2025/7/22 18:00:04
贡献者: coffeebean