할일 트래커를 옵시디언으로 만들어 보기

소개

웹으로 할 일 트래커를 만들었는데 DB를 붙이려고 했으나 어차피 통계를 다시 내야 한다면 이걸 옵시디언으로 해보면 어떨까? 라고 생각하게 되었습니다.

진행 방법

어떤 도구를 사용했고, 어떻게 활용하셨나요?

옵시디언 유저를 위한 오픈클로 + 클로드코드로 AI 에이전트 워크플로우 만들기

옵시디언을 설치하고 cluade code를 사용해 진행해 보았습니다.

하단에는 몇 개의 할 일을 수행했는지 통계가 나와.

Tip: 사용한 프롬프트 전문을 꼭 포함하고, 내용을 짧게 소개해 주세요.

옵시디언에서 사용할 할 일 트래커 페이지를 만들었으면 해. 스픽, 듀오링고, 더캠프, 블로그, 경영학, 수학공부, 프로그래밍공부, 논문스터디, 매일운동하기, 영어스터디, 정보처리기사 항목을 체크해서 기록할 수 있는 페이지야.

Tip: 활용 이미지나 캡처 화면을 꼭 남겨주세요.

한국어 애플리케이션 스크린샷

Tip: 코드 전문은 코드블록에 감싸서 작성해주세요. ( / 을 눌러 '코드 블록'을 선택)

const content = await dv.io.load(dv.current().file.path);
const lines = content.split('\n');

// 날짜 섹션별 통계 수집
const datePattern = /^## (\d{4}-\d{2}-\d{2})$/;
const sections = [];
let current = null;

for (const line of lines) {
  const match = line.match(datePattern);
  if (match) {
    if (current) sections.push(current);
    current = { date: match[1], total: 0, checked: 0 };
  } else if (current) {
    if (line.match(/^- \[.\]/)) {
      current.total++;
      if (line.match(/^- \[x\]/i)) current.checked++;
    }
  }
}
if (current) sections.push(current);

// 전체 합산
const grandTotal = sections.reduce((s, r) => s + r.total, 0);
const grandChecked = sections.reduce((s, r) => s + r.checked, 0);
const grandRate = grandTotal > 0 ? Math.round(grandChecked / grandTotal * 100) : 0;

// 전체 요약
dv.header(3, '전체 요약');
dv.table(
  ['총 할 일', '완료', '미완료', '전체 완료율'],
  [[grandTotal, grandChecked, grandTotal - grandChecked, grandRate + '%']]
);

// 날짜별 상세
dv.header(3, '날짜별 통계');
if (sections.length === 0) {
  dv.paragraph('아직 기록된 날짜가 없습니다.');
} else {
  const rows = sections
    .sort((a, b) => b.date.localeCompare(a.date))
    .map(r => {
      const rate = r.total > 0 ? Math.round(r.checked / r.total * 100) : 0;
      const bar = '█'.repeat(Math.round(rate / 10)) + '░'.repeat(10 - Math.round(rate / 10));
      return [r.date, r.total, r.checked, r.total - r.checked, rate + '%', bar];
    });
  dv.table(['날짜', '전체', '완료', '미완료', '완료율', '진행도'], rows);
}
```

결과와 배운 점

한국사이트 스크린샷

마크다운을 사용해 글쓰는 법을 조금 적용해 보았습니다.

미니 세션을 들었던 경험으로 진행했는데 자꾸 해시태그가 되어서 불편했지만 익숙해 지겠죠?

도움 받은 글 (옵션)

21기 옵시디언 유저를 위한 오픈클로 + 클로드코드로 AI 에이전트 워크플로우 만들기 강의

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요