Last Sync: 2026-09-22 08:03 (Mobile)
This commit is contained in:
1 parent
9d54c80856
commit
7c649d9617
11 files changed
+5992
-5741
No files matched your search
Binary file not shown.
Binary file not shown.
Vendored
+5
-1
@@ -1 +1,5 @@
|
|||||||
{}
|
{
|
||||||
|
"enabledCssSnippets": [
|
||||||
|
"schedule-style"
|
||||||
|
]
|
||||||
|
}
|
||||||
+73
@@ -0,0 +1,73 @@
|
|||||||
|
/* 오늘 일정 대시보드 전체 스타일 */
|
||||||
|
.today-schedule-table {
|
||||||
|
width: 100%;
|
||||||
|
margin-top: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Dataview 표 디자인 모던화 */
|
||||||
|
.today-schedule-table table.dataview {
|
||||||
|
border-collapse: separate !important;
|
||||||
|
border-spacing: 0;
|
||||||
|
width: 100%;
|
||||||
|
border: 1px solid var(--background-modifier-border);
|
||||||
|
border-radius: 8px;
|
||||||
|
overflow: hidden;
|
||||||
|
font-size: 0.95em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 헤더 스타일 */
|
||||||
|
.today-schedule-table th.dataview {
|
||||||
|
background-color: var(--background-secondary) !important;
|
||||||
|
color: var(--text-normal);
|
||||||
|
font-weight: 600;
|
||||||
|
padding: 10px 12px;
|
||||||
|
border-bottom: 1px solid var(--background-modifier-border);
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 셀 스타일 */
|
||||||
|
.today-schedule-table td.dataview {
|
||||||
|
padding: 10px 12px;
|
||||||
|
border-bottom: 1px solid var(--background-modifier-border);
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 마지막 행 테두리 제거 */
|
||||||
|
.today-schedule-table tr:last-child td.dataview {
|
||||||
|
border-bottom: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 마우스 호버 효과 */
|
||||||
|
.today-schedule-table tr:hover td.dataview {
|
||||||
|
background-color: var(--background-primary-alt);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 한 줄 정렬 및 말줄임 전용 클래스 */
|
||||||
|
.schedule-ellipsis-cell {
|
||||||
|
display: block;
|
||||||
|
white-space: nowrap;
|
||||||
|
overflow: hidden;
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
max-width: 200px; /* 필요에 따라 너비 조절 가능 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 상태 및 우선순위 뱃지 디자인 */
|
||||||
|
.schedule-badge {
|
||||||
|
display: inline-block;
|
||||||
|
padding: 3px 8px;
|
||||||
|
font-size: 0.85em;
|
||||||
|
font-weight: 500;
|
||||||
|
border-radius: 12px;
|
||||||
|
text-align: center;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 상태별 색상 */
|
||||||
|
.badge-todo { background-color: rgba(150, 150, 150, 0.15); color: var(--text-muted); }
|
||||||
|
.badge-doing { background-color: rgba(30, 144, 255, 0.15); color: #1e90ff; }
|
||||||
|
.badge-done { background-color: rgba(46, 139, 87, 0.15); color: #2e8b57; }
|
||||||
|
|
||||||
|
/* 우선순위별 색상 */
|
||||||
|
.badge-high { background-color: rgba(220, 20, 60, 0.15); color: #dc143c; }
|
||||||
|
.badge-medium { background-color: rgba(255, 165, 0, 0.15); color: #ffa500; }
|
||||||
|
.badge-low { background-color: rgba(46, 139, 87, 0.15); color: #2e8b57; }
|
||||||
Vendored
+29
-13
@@ -57,14 +57,28 @@
|
|||||||
"state": {
|
"state": {
|
||||||
"file": "2026년 월력형 메모형 일정(2월).canvas",
|
"file": "2026년 월력형 메모형 일정(2월).canvas",
|
||||||
"viewState": {
|
"viewState": {
|
||||||
"x": 874.3301268577261,
|
"x": 886.5733724817551,
|
||||||
"y": 86010.00080501205,
|
"y": 84933.99294741181,
|
||||||
"zoom": -0.6259324702429971
|
"zoom": -0.5508653041411768
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"icon": "lucide-layout-dashboard",
|
"icon": "lucide-layout-dashboard",
|
||||||
"title": "2026년 월력형 메모형 일정(2월)"
|
"title": "2026년 월력형 메모형 일정(2월)"
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "b53c766f9a91b9e1",
|
||||||
|
"type": "leaf",
|
||||||
|
"state": {
|
||||||
|
"type": "markdown",
|
||||||
|
"state": {
|
||||||
|
"file": "프로젝트/오늘일정목록.md",
|
||||||
|
"mode": "preview",
|
||||||
|
"source": false
|
||||||
|
},
|
||||||
|
"icon": "lucide-file",
|
||||||
|
"title": "오늘일정목록"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"currentTab": 3
|
"currentTab": 3
|
||||||
@@ -83,7 +97,9 @@
|
|||||||
"type": "file-explorer",
|
"type": "file-explorer",
|
||||||
"state": {
|
"state": {
|
||||||
"sortOrder": "alphabetical",
|
"sortOrder": "alphabetical",
|
||||||
"autoReveal": false
|
"autoReveal": false,
|
||||||
|
"showSearch": false,
|
||||||
|
"searchQuery": ""
|
||||||
},
|
},
|
||||||
"icon": "lucide-folder-closed",
|
"icon": "lucide-folder-closed",
|
||||||
"title": "파일 탐색기"
|
"title": "파일 탐색기"
|
||||||
@@ -146,7 +162,7 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "3042a701cc9266d4",
|
"id": "574c8aa5e8acb656",
|
||||||
"type": "leaf",
|
"type": "leaf",
|
||||||
"state": {
|
"state": {
|
||||||
"type": "mk-path-view",
|
"type": "mk-path-view",
|
||||||
@@ -156,7 +172,7 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"currentTab": 1
|
"currentTab": 0
|
||||||
},
|
},
|
||||||
"right": {
|
"right": {
|
||||||
"id": "082cc3168c91951e",
|
"id": "082cc3168c91951e",
|
||||||
@@ -214,7 +230,7 @@
|
|||||||
"state": {
|
"state": {
|
||||||
"type": "file-properties",
|
"type": "file-properties",
|
||||||
"state": {
|
"state": {
|
||||||
"file": "2026년 월력형 메모형 일정(2월).canvas"
|
"file": "프로젝트/오늘일정목록.md"
|
||||||
},
|
},
|
||||||
"icon": "lucide-info",
|
"icon": "lucide-info",
|
||||||
"title": "파일 속성"
|
"title": "파일 속성"
|
||||||
@@ -239,8 +255,13 @@
|
|||||||
},
|
},
|
||||||
"active": "d10ccabf1bbb3538",
|
"active": "d10ccabf1bbb3538",
|
||||||
"lastOpenFiles": [
|
"lastOpenFiles": [
|
||||||
"30연대 26년도 예산.md",
|
"프로젝트/오늘일정목록.md",
|
||||||
|
"프로젝트/일정관리(yaml frontmatter(메타데이터)) 1 1 1.md",
|
||||||
|
"프로젝트/생각정리(idea,Brainstorming)양식(지식아카이빙).md",
|
||||||
"2026년 월력형 메모형 일정(2월).canvas",
|
"2026년 월력형 메모형 일정(2월).canvas",
|
||||||
|
"프로젝트/메모(memo) 양식(회의록,간단기록).md",
|
||||||
|
"프로젝트",
|
||||||
|
"30연대 26년도 예산.md",
|
||||||
"앰프 불용.md",
|
"앰프 불용.md",
|
||||||
"혹서기일과.md",
|
"혹서기일과.md",
|
||||||
"inbox/사이버 보안 진단의 날 시행-1.md",
|
"inbox/사이버 보안 진단의 날 시행-1.md",
|
||||||
@@ -263,10 +284,6 @@
|
|||||||
"총기탄약업무 신원조사.md",
|
"총기탄약업무 신원조사.md",
|
||||||
"튀김실 온도.md",
|
"튀김실 온도.md",
|
||||||
"총기함 5인용 5개.md",
|
"총기함 5인용 5개.md",
|
||||||
"inbox/총기탄약-1.md",
|
|
||||||
"총기관리.md",
|
|
||||||
"앰프 일련번호.md",
|
|
||||||
"육군훈련소 30교육연대 지원과 군수지원부사관 업무 정리.md",
|
|
||||||
"2026년 월력형 메모형 일정(2월) (2).canvas",
|
"2026년 월력형 메모형 일정(2월) (2).canvas",
|
||||||
"Tags",
|
"Tags",
|
||||||
"무제 5.canvas",
|
"무제 5.canvas",
|
||||||
@@ -290,7 +307,6 @@
|
|||||||
"1774062006949.jpg",
|
"1774062006949.jpg",
|
||||||
"1774062005502.jpg",
|
"1774062005502.jpg",
|
||||||
"1774062005196.jpg",
|
"1774062005196.jpg",
|
||||||
"30연대재산현황/재산현황데이터베이스목록화.base",
|
|
||||||
"1772583797342001.png",
|
"1772583797342001.png",
|
||||||
"Resized_1000013476_284516238422615.jpeg",
|
"Resized_1000013476_284516238422615.jpeg",
|
||||||
"temp_1771983504814.-1331654701_423627128632719.png"
|
"temp_1771983504814.-1331654701_423627128632719.png"
|
||||||
|
|||||||
Binary file not shown.
+5727
-5727
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,26 @@
|
|||||||
|
---
|
||||||
|
type: memo
|
||||||
|
date: 2026-09-21
|
||||||
|
meeting_title: [[OOO팀 주간 회의]] # 제목을 노트로 만들면 관리가 쉬움
|
||||||
|
participants: 김철수, 이영희
|
||||||
|
---
|
||||||
|
|
||||||
|
# 📌 OOO 프로젝트 주간 회의록
|
||||||
|
|
||||||
|
## 📢 주요 논점 (Discussion Points)
|
||||||
|
* **배포 일정:** 현재 예상되는 지연 요인(리소스 부족 등)에 대한 구체적 대안 필요.
|
||||||
|
* **UX 방향성:** 사용자 피드백을 종합할 때, '쉬운 접근성'이 최우선 과제임.
|
||||||
|
|
||||||
|
## 🎯 핵심 결정 사항 (Decisions Made)
|
||||||
|
1. A 기능은 다음 주까지 개발팀에서 일시 보류한다. (결정일: 오늘)
|
||||||
|
2. 디자인 시안 B를 기반으로 최종 확정한다.
|
||||||
|
|
||||||
|
## ✅ Action Items (가장 중요!)
|
||||||
|
| 누가(Who) | 무엇을(What) | 언제까지(By When) | 관련 노트/링크 |
|
||||||
|
| :--- | :--- | :--- | :--- |
|
||||||
|
| 김철수 | 리소스 재분배 계획서 초안 작성 | 10/30 (목) | [[생각노트-리소스]] |
|
||||||
|
| 사용자님 | 다음 주까지 경쟁사 A의 기능 분석 완료 | 11/02 (금) | (→ 이 내용을 일정에 추가!) |
|
||||||
|
|
||||||
|
---
|
||||||
|
### ✨ 오늘 떠오른 생각 (Quick Capture)
|
||||||
|
*(회의 중 갑자기 생각이 난 것들은 여기를 활용합니다. 나중에 정리할 '생각' 노트로 옮길 것을 염두에 두세요.)*
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
---
|
||||||
|
type: idea # 이 노트가 '아이디어'임을 식별합니다.
|
||||||
|
source: [[출처노트-OOO]] # 이 생각이 어디서 왔는지 기록 (책, 강의 등)
|
||||||
|
date_captured: 2026-09-21
|
||||||
|
related_topics: [AI, 생산성] # 태그를 사용하여 분류
|
||||||
|
---
|
||||||
|
|
||||||
|
# ✨ 제목: 아이디어의 핵심 요약 (Atomic Idea)
|
||||||
|
|
||||||
|
## 💡 이 아이디어가 의미하는 것 (Concept Definition)
|
||||||
|
이 노트는 '어떤 개념 A'에 대한 나의 해석입니다. 단순 메모가 아닌 **나만의 언어로 재정의**해야 합니다.
|
||||||
|
|
||||||
|
### 🤔 관련 질문 (Self-Questioning)
|
||||||
|
* 이 아이디어의 반대되는 주장은 무엇일까?
|
||||||
|
* 만약 이것을 B라는 상황에 적용한다면 어떻게 변할까?
|
||||||
|
|
||||||
|
---
|
||||||
|
**[연결 네트워크]**
|
||||||
|
1. 이 생각은 [[생각노트-기존개념]]과 연결됩니다. (두 개념이 만나는 지점 탐색)
|
||||||
|
2. 다음 행동 단계: 이 아이디어를 바탕으로 [[일정관리/2024-11-05]]에 검토하기.
|
||||||
|
|
||||||
|
### 📚 참고 자료 및 출처
|
||||||
|
* [링크] 원본 자료 링크를 붙여넣기합니다.
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
```dataviewjs
|
||||||
|
|
||||||
|
const today = moment().format('YYYY-MM-DD');
|
||||||
|
|
||||||
|
const pages = dv.pages('""').where(p => p.type === 'schedule' && (p.start_date || p.startDate) && (p.end_date || p.endDate));
|
||||||
|
|
||||||
|
let results = [];
|
||||||
|
|
||||||
|
for (const page of pages) {
|
||||||
|
const rawStart = page.start_date || page.startDate;
|
||||||
|
const rawEnd = page.end_date || page.endDate;
|
||||||
|
|
||||||
|
const startStr = rawStart.toISODate ? rawStart.toISODate() : String(rawStart).substring(0, 10);
|
||||||
|
const endStr = rawEnd.toISODate ? rawEnd.toISODate() : String(rawEnd).substring(0, 10);
|
||||||
|
|
||||||
|
if (today >= startStr && today <= endStr) {
|
||||||
|
// 연도를 제외하고 월일만 추출 (예: "2026-09-20" -> "09-20")
|
||||||
|
const startShort = startStr.substring(5);
|
||||||
|
const endShort = endStr.substring(5);
|
||||||
|
|
||||||
|
results.push({
|
||||||
|
...page,
|
||||||
|
startStr,
|
||||||
|
endStr,
|
||||||
|
periodText: `${startShort} ~ ${endShort}` // 월일만 담긴 기간 문자열
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
dv.header(2, `🗓️ 오늘 일정 (${today})`);
|
||||||
|
|
||||||
|
if (results.length === 0) {
|
||||||
|
dv.paragraph("오늘은 등록된 일정이 없습니다.");
|
||||||
|
} else {
|
||||||
|
const getBadgeClass = (val, type) => {
|
||||||
|
if (!val) return "";
|
||||||
|
let lower = String(val).toLowerCase();
|
||||||
|
let badgeType = "";
|
||||||
|
|
||||||
|
if (type === 'status') {
|
||||||
|
if (lower.includes('todo') || lower.includes('대기')) badgeType = 'badge-todo';
|
||||||
|
else if (lower.includes('진행') || lower.includes('doing')) badgeType = 'badge-doing';
|
||||||
|
else if (lower.includes('완료') || lower.includes('done')) badgeType = 'badge-done';
|
||||||
|
else badgeType = 'badge-todo';
|
||||||
|
} else if (type === 'priority') {
|
||||||
|
if (lower.includes('high') || lower.includes('상') || lower.includes('중요')) badgeType = 'badge-high';
|
||||||
|
else if (lower.includes('mid') || lower.includes('중')) badgeType = 'badge-medium';
|
||||||
|
else badgeType = 'badge-low';
|
||||||
|
}
|
||||||
|
return `<span class="schedule-badge ${badgeType}">${val}</span>`;
|
||||||
|
};
|
||||||
|
|
||||||
|
const truncateText = (text, limit = 20) => {
|
||||||
|
if (!text) return "";
|
||||||
|
let str = String(text);
|
||||||
|
return str.length > limit ? str.substring(0, limit) + "..." : str;
|
||||||
|
};
|
||||||
|
|
||||||
|
const tableData = results.map(p => {
|
||||||
|
let rawProject = p.project || "";
|
||||||
|
let rawTitle = p.file.name;
|
||||||
|
|
||||||
|
let displayProject = truncateText(rawProject, 20);
|
||||||
|
let displayTitle = truncateText(rawTitle, 20);
|
||||||
|
|
||||||
|
let projectHtml = `<span class="schedule-ellipsis-cell">${displayProject}</span>`;
|
||||||
|
let titleLinkHtml = `<span class="schedule-ellipsis-cell">[[${p.file.path}|${displayTitle}]]</span>`;
|
||||||
|
|
||||||
|
return [
|
||||||
|
projectHtml,
|
||||||
|
titleLinkHtml,
|
||||||
|
getBadgeClass(p.priority || p.importance, 'priority'),
|
||||||
|
getBadgeClass(p.status, 'status'),
|
||||||
|
p.periodText // 연도가 빠진 월일 기간 표시
|
||||||
|
];
|
||||||
|
});
|
||||||
|
|
||||||
|
dv.table(["프로젝트", "일정명", "중요도", "진행상황", "기간"], tableData);
|
||||||
|
|
||||||
|
// CSS 클래스 적용
|
||||||
|
const lastTable = dv.container.querySelector("table");
|
||||||
|
if (lastTable) {
|
||||||
|
let wrapper = lastTable.parentElement;
|
||||||
|
if (wrapper) wrapper.addClass("today-schedule-table");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
---
|
||||||
|
type: schedule
|
||||||
|
project: 전투장비지휘검열
|
||||||
|
start_date: 2026-09-20
|
||||||
|
end_date: 2026-09-29
|
||||||
|
status: To Do
|
||||||
|
priority: High
|
||||||
|
related_project:
|
||||||
|
- - 프로젝트 A
|
||||||
|
---
|
||||||
|
|
||||||
|
### 📅 주요 일정 내용 (Event Details)
|
||||||
|
* **일정 목표:** [이 일정을 통해 달성하려는 구체적인 결과]
|
||||||
|
* **주요 활동:** (1) 오늘 오전 회의 준비, (2) 리서치 자료 수집 등
|
||||||
|
* **진행 상황:** 진행 중입니다. 50% 완료됨.
|
||||||
|
|
||||||
|
**📌 관련 생각/아이디어 연결:**
|
||||||
|
이 일정과 관련된 브레인스토밍 내용은 [[생각노트-OOO]]를 참고하세요.
|
||||||
|
|
||||||
|
---
|
||||||
|
<!-- 이 부분은 Dataview가 자동으로 채우는 영역으로 간주합니다. -->
|
||||||
Reference in new issue
Block a user