mdjournal 1.0.15 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/LICENSE +26 -0
  2. package/README.md +290 -164
  3. package/dist/README.md +335 -0
  4. package/dist/client/assets/index-CWshDATd.js +402 -0
  5. package/dist/client/dist/assets/index-CWshDATd.js +402 -0
  6. package/dist/client/dist/index.html +1 -1
  7. package/dist/client/index.html +1 -1
  8. package/dist/docs/api-reference.html +2295 -0
  9. package/dist/docs/config-spec.md +322 -0
  10. package/dist/docs/extension-spec.md +676 -0
  11. package/dist/docs/index.md +261 -0
  12. package/dist/docs/integration-spec.md +518 -0
  13. package/dist/docs/markdown-format-spec.md +779 -0
  14. package/dist/docs/openapi.yaml +1009 -0
  15. package/dist/docs/requirements.md +837 -0
  16. package/dist/docs/screenshot.png +0 -0
  17. package/dist/packages/contract/mdjournal/domains/CalendarApi.d.ts +19 -0
  18. package/dist/packages/contract/mdjournal/domains/CalendarApi.d.ts.map +1 -0
  19. package/dist/packages/contract/mdjournal/domains/CalendarApi.js +7 -0
  20. package/dist/packages/contract/mdjournal/domains/CalendarApi.js.map +1 -0
  21. package/dist/packages/contract/mdjournal/domains/ConfigApi.d.ts +29 -0
  22. package/dist/packages/contract/mdjournal/domains/ConfigApi.d.ts.map +1 -0
  23. package/dist/packages/contract/mdjournal/domains/ConfigApi.js +7 -0
  24. package/dist/packages/contract/mdjournal/domains/ConfigApi.js.map +1 -0
  25. package/dist/packages/contract/mdjournal/domains/GitApi.d.ts +14 -0
  26. package/dist/packages/contract/mdjournal/domains/GitApi.d.ts.map +1 -0
  27. package/dist/packages/contract/mdjournal/domains/GitApi.js +7 -0
  28. package/dist/packages/contract/mdjournal/domains/GitApi.js.map +1 -0
  29. package/dist/packages/contract/mdjournal/domains/ReportApi.d.ts +24 -0
  30. package/dist/packages/contract/mdjournal/domains/ReportApi.d.ts.map +1 -0
  31. package/dist/packages/contract/mdjournal/domains/ReportApi.js +7 -0
  32. package/dist/packages/contract/mdjournal/domains/ReportApi.js.map +1 -0
  33. package/dist/packages/contract/mdjournal/domains/index.d.ts +24 -0
  34. package/dist/packages/contract/mdjournal/domains/index.d.ts.map +1 -0
  35. package/dist/packages/contract/mdjournal/domains/index.js +7 -0
  36. package/dist/packages/contract/mdjournal/domains/index.js.map +1 -0
  37. package/dist/packages/contract/mdjournal/errors/index.d.ts +19 -0
  38. package/dist/packages/contract/mdjournal/errors/index.d.ts.map +1 -0
  39. package/dist/packages/contract/mdjournal/errors/index.js +29 -0
  40. package/dist/packages/contract/mdjournal/errors/index.js.map +1 -0
  41. package/dist/packages/contract/mdjournal/index.d.ts +8 -0
  42. package/dist/packages/contract/mdjournal/index.d.ts.map +1 -0
  43. package/dist/packages/contract/mdjournal/index.js +8 -0
  44. package/dist/packages/contract/mdjournal/index.js.map +1 -0
  45. package/dist/packages/contract/mdjournal/schemas/index.d.ts +7 -0
  46. package/dist/packages/contract/mdjournal/schemas/index.d.ts.map +1 -0
  47. package/dist/packages/contract/mdjournal/schemas/index.js +7 -0
  48. package/dist/packages/contract/mdjournal/schemas/index.js.map +1 -0
  49. package/dist/packages/contract/mdjournal/schemas/types.d.ts +357 -0
  50. package/dist/packages/contract/mdjournal/schemas/types.d.ts.map +1 -0
  51. package/dist/packages/contract/mdjournal/schemas/types.js +7 -0
  52. package/dist/packages/contract/mdjournal/schemas/types.js.map +1 -0
  53. package/dist/packages/contract/mdjournal/schemas/validators.d.ts +1576 -0
  54. package/dist/packages/contract/mdjournal/schemas/validators.d.ts.map +1 -0
  55. package/dist/packages/contract/mdjournal/schemas/validators.js +952 -0
  56. package/dist/packages/contract/mdjournal/schemas/validators.js.map +1 -0
  57. package/dist/server/src/cli.d.ts.map +1 -0
  58. package/dist/server/src/cli.js.map +1 -0
  59. package/dist/server/src/index.d.ts.map +1 -0
  60. package/dist/{index.js → server/src/index.js} +21 -11
  61. package/dist/server/src/index.js.map +1 -0
  62. package/dist/server/src/mdjournal/domains/CalendarDomain.d.ts +19 -0
  63. package/dist/server/src/mdjournal/domains/CalendarDomain.d.ts.map +1 -0
  64. package/dist/server/src/mdjournal/domains/CalendarDomain.js +88 -0
  65. package/dist/server/src/mdjournal/domains/CalendarDomain.js.map +1 -0
  66. package/dist/server/src/mdjournal/domains/CalendarDomain.test.d.ts +2 -0
  67. package/dist/server/src/mdjournal/domains/CalendarDomain.test.d.ts.map +1 -0
  68. package/dist/server/src/mdjournal/domains/CalendarDomain.test.js +111 -0
  69. package/dist/server/src/mdjournal/domains/CalendarDomain.test.js.map +1 -0
  70. package/dist/server/src/mdjournal/domains/ConfigDomain.d.ts +27 -0
  71. package/dist/server/src/mdjournal/domains/ConfigDomain.d.ts.map +1 -0
  72. package/dist/server/src/mdjournal/domains/ConfigDomain.js +59 -0
  73. package/dist/server/src/mdjournal/domains/ConfigDomain.js.map +1 -0
  74. package/dist/server/src/mdjournal/domains/ConfigDomain.test.d.ts +2 -0
  75. package/dist/server/src/mdjournal/domains/ConfigDomain.test.d.ts.map +1 -0
  76. package/dist/server/src/mdjournal/domains/ConfigDomain.test.js +177 -0
  77. package/dist/server/src/mdjournal/domains/ConfigDomain.test.js.map +1 -0
  78. package/dist/server/src/mdjournal/domains/GitDomain.d.ts +15 -0
  79. package/dist/server/src/mdjournal/domains/GitDomain.d.ts.map +1 -0
  80. package/dist/server/src/mdjournal/domains/GitDomain.js +16 -0
  81. package/dist/server/src/mdjournal/domains/GitDomain.js.map +1 -0
  82. package/dist/server/src/mdjournal/domains/GitDomain.test.d.ts +2 -0
  83. package/dist/server/src/mdjournal/domains/GitDomain.test.d.ts.map +1 -0
  84. package/dist/server/src/mdjournal/domains/GitDomain.test.js +112 -0
  85. package/dist/server/src/mdjournal/domains/GitDomain.test.js.map +1 -0
  86. package/dist/server/src/mdjournal/domains/ReportDomain.d.ts +23 -0
  87. package/dist/server/src/mdjournal/domains/ReportDomain.d.ts.map +1 -0
  88. package/dist/server/src/mdjournal/domains/ReportDomain.js +117 -0
  89. package/dist/server/src/mdjournal/domains/ReportDomain.js.map +1 -0
  90. package/dist/server/src/mdjournal/domains/ReportDomain.test.d.ts +2 -0
  91. package/dist/server/src/mdjournal/domains/ReportDomain.test.d.ts.map +1 -0
  92. package/dist/server/src/mdjournal/domains/ReportDomain.test.js +207 -0
  93. package/dist/server/src/mdjournal/domains/ReportDomain.test.js.map +1 -0
  94. package/dist/server/src/mdjournal/domains/errors.d.ts +17 -0
  95. package/dist/server/src/mdjournal/domains/errors.d.ts.map +1 -0
  96. package/dist/server/src/mdjournal/domains/errors.js +27 -0
  97. package/dist/server/src/mdjournal/domains/errors.js.map +1 -0
  98. package/dist/server/src/mdjournal/domains/index.d.ts +15 -0
  99. package/dist/server/src/mdjournal/domains/index.d.ts.map +1 -0
  100. package/dist/server/src/mdjournal/domains/index.js +11 -0
  101. package/dist/server/src/mdjournal/domains/index.js.map +1 -0
  102. package/dist/server/src/mdjournal/index.d.ts +17 -0
  103. package/dist/server/src/mdjournal/index.d.ts.map +1 -0
  104. package/dist/server/src/mdjournal/index.js +34 -0
  105. package/dist/server/src/mdjournal/index.js.map +1 -0
  106. package/dist/server/src/mdjournal/routes.generated.d.ts +28 -0
  107. package/dist/server/src/mdjournal/routes.generated.d.ts.map +1 -0
  108. package/dist/server/src/mdjournal/routes.generated.js +403 -0
  109. package/dist/server/src/mdjournal/routes.generated.js.map +1 -0
  110. package/dist/server/src/types/index.d.ts.map +1 -0
  111. package/dist/server/src/types/index.js.map +1 -0
  112. package/dist/server/src/utils/configValidator.d.ts.map +1 -0
  113. package/dist/server/src/utils/configValidator.js.map +1 -0
  114. package/dist/server/src/utils/configValidator.test.d.ts +2 -0
  115. package/dist/server/src/utils/configValidator.test.d.ts.map +1 -0
  116. package/dist/server/src/utils/configValidator.test.js +359 -0
  117. package/dist/server/src/utils/configValidator.test.js.map +1 -0
  118. package/dist/server/src/utils/fileManager.d.ts.map +1 -0
  119. package/dist/server/src/utils/fileManager.js.map +1 -0
  120. package/dist/server/src/utils/git.d.ts.map +1 -0
  121. package/dist/server/src/utils/git.js.map +1 -0
  122. package/dist/server/src/utils/index.d.ts.map +1 -0
  123. package/dist/server/src/utils/index.js.map +1 -0
  124. package/dist/server/src/utils/markdown.d.ts.map +1 -0
  125. package/dist/server/src/utils/markdown.js.map +1 -0
  126. package/dist/server/src/utils/markdown.test.d.ts +2 -0
  127. package/dist/server/src/utils/markdown.test.d.ts.map +1 -0
  128. package/dist/server/src/utils/markdown.test.js +291 -0
  129. package/dist/server/src/utils/markdown.test.js.map +1 -0
  130. package/dist/server/src/utils/slack.d.ts.map +1 -0
  131. package/dist/server/src/utils/slack.js.map +1 -0
  132. package/dist/server/src/utils/validator.d.ts.map +1 -0
  133. package/dist/server/src/utils/validator.js.map +1 -0
  134. package/dist/server/src/utils/validator.test.d.ts +2 -0
  135. package/dist/server/src/utils/validator.test.d.ts.map +1 -0
  136. package/dist/server/src/utils/validator.test.js +307 -0
  137. package/dist/server/src/utils/validator.test.js.map +1 -0
  138. package/package.json +37 -15
  139. package/dist/cli.d.ts.map +0 -1
  140. package/dist/cli.js.map +0 -1
  141. package/dist/client/assets/index-DlkkIyB6.js +0 -402
  142. package/dist/client/dist/assets/index-DlkkIyB6.js +0 -402
  143. package/dist/index.d.ts.map +0 -1
  144. package/dist/index.js.map +0 -1
  145. package/dist/routes/calendar.d.ts +0 -8
  146. package/dist/routes/calendar.d.ts.map +0 -1
  147. package/dist/routes/calendar.js +0 -115
  148. package/dist/routes/calendar.js.map +0 -1
  149. package/dist/routes/config.d.ts +0 -11
  150. package/dist/routes/config.d.ts.map +0 -1
  151. package/dist/routes/config.js +0 -120
  152. package/dist/routes/config.js.map +0 -1
  153. package/dist/routes/gcal.d.ts +0 -10
  154. package/dist/routes/gcal.d.ts.map +0 -1
  155. package/dist/routes/gcal.js +0 -100
  156. package/dist/routes/gcal.js.map +0 -1
  157. package/dist/routes/git.d.ts +0 -8
  158. package/dist/routes/git.d.ts.map +0 -1
  159. package/dist/routes/git.js +0 -28
  160. package/dist/routes/git.js.map +0 -1
  161. package/dist/routes/index.d.ts +0 -9
  162. package/dist/routes/index.d.ts.map +0 -1
  163. package/dist/routes/index.js +0 -9
  164. package/dist/routes/index.js.map +0 -1
  165. package/dist/routes/reports.d.ts +0 -10
  166. package/dist/routes/reports.d.ts.map +0 -1
  167. package/dist/routes/reports.js +0 -175
  168. package/dist/routes/reports.js.map +0 -1
  169. package/dist/types/index.d.ts.map +0 -1
  170. package/dist/types/index.js.map +0 -1
  171. package/dist/utils/configValidator.d.ts.map +0 -1
  172. package/dist/utils/configValidator.js.map +0 -1
  173. package/dist/utils/fileManager.d.ts.map +0 -1
  174. package/dist/utils/fileManager.js.map +0 -1
  175. package/dist/utils/git.d.ts.map +0 -1
  176. package/dist/utils/git.js.map +0 -1
  177. package/dist/utils/index.d.ts.map +0 -1
  178. package/dist/utils/index.js.map +0 -1
  179. package/dist/utils/markdown.d.ts.map +0 -1
  180. package/dist/utils/markdown.js.map +0 -1
  181. package/dist/utils/slack.d.ts.map +0 -1
  182. package/dist/utils/slack.js.map +0 -1
  183. package/dist/utils/validator.d.ts.map +0 -1
  184. package/dist/utils/validator.js.map +0 -1
  185. /package/dist/{cli.d.ts → server/src/cli.d.ts} +0 -0
  186. /package/dist/{cli.js → server/src/cli.js} +0 -0
  187. /package/dist/{index.d.ts → server/src/index.d.ts} +0 -0
  188. /package/dist/{types → server/src/types}/index.d.ts +0 -0
  189. /package/dist/{types → server/src/types}/index.js +0 -0
  190. /package/dist/{utils → server/src/utils}/configValidator.d.ts +0 -0
  191. /package/dist/{utils → server/src/utils}/configValidator.js +0 -0
  192. /package/dist/{utils → server/src/utils}/fileManager.d.ts +0 -0
  193. /package/dist/{utils → server/src/utils}/fileManager.js +0 -0
  194. /package/dist/{utils → server/src/utils}/git.d.ts +0 -0
  195. /package/dist/{utils → server/src/utils}/git.js +0 -0
  196. /package/dist/{utils → server/src/utils}/index.d.ts +0 -0
  197. /package/dist/{utils → server/src/utils}/index.js +0 -0
  198. /package/dist/{utils → server/src/utils}/markdown.d.ts +0 -0
  199. /package/dist/{utils → server/src/utils}/markdown.js +0 -0
  200. /package/dist/{utils → server/src/utils}/slack.d.ts +0 -0
  201. /package/dist/{utils → server/src/utils}/slack.js +0 -0
  202. /package/dist/{utils → server/src/utils}/validator.d.ts +0 -0
  203. /package/dist/{utils → server/src/utils}/validator.js +0 -0
package/dist/README.md ADDED
@@ -0,0 +1,335 @@
1
+ # mdJournal
2
+
3
+ **Markdown日報を視覚的に管理するダッシュボードアプリケーション**
4
+
5
+ [![npm version](https://img.shields.io/npm/v/mdjournal.svg)](https://www.npmjs.com/package/mdjournal)
6
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
+
8
+ <p align="center">
9
+ <img src="docs/screenshot.png" alt="mdJournal Screenshot" width="800">
10
+ </p>
11
+
12
+ ## ✨ 特徴
13
+
14
+ - 📅 **カレンダービュー** - 月表示で稼働時間を可視化
15
+ - ⏱️ **タイムライン** - 計画と実績を並べて表示、ドラッグ&ドロップで編集
16
+ - ✅ **TODO管理** - プロジェクト別・ステータス別のタスク管理
17
+ - 📝 **Markdown編集** - 慣れ親しんだMarkdown形式でデータを管理
18
+ - 🔗 **外部連携** - Git commit/push、Slack投稿
19
+
20
+ ---
21
+
22
+ ## 🚀 まずは試してみる
23
+
24
+ ```bash
25
+ # サンプルデータで起動(インストール不要)
26
+ npx mdjournal
27
+
28
+ # ブラウザが自動で開きます(http://localhost:3001)
29
+ ```
30
+
31
+ これだけでサンプル日報を使ってダッシュボードを体験できます。
32
+
33
+ ---
34
+
35
+ ## 📦 セットアップ
36
+
37
+ 自分の日報を管理するためのセットアップ手順です。
38
+
39
+ ### 1. 日報用ディレクトリを作成
40
+
41
+ ```bash
42
+ mkdir my-journal
43
+ cd my-journal
44
+ ```
45
+
46
+ ### 2. 設定ファイルを作成
47
+
48
+ ```yaml
49
+ # mdjournal.config.yaml
50
+ projects: ./config/projects.yaml
51
+ routines: ./config/routines.yaml
52
+ reports: ./data
53
+
54
+ timeline:
55
+ snapMinutes: 15 # ドラッグ時のスナップ単位(分)
56
+ defaultStartHour: 8 # 表示開始時刻
57
+ defaultEndHour: 20 # 表示終了時刻
58
+
59
+ server:
60
+ port: 3001
61
+ ```
62
+
63
+ ### 3. プロジェクト定義を作成
64
+
65
+ ```yaml
66
+ # config/projects.yaml
67
+ projects:
68
+ - code: P01
69
+ name: 社内業務
70
+ color: "#52c41a"
71
+
72
+ - code: P02
73
+ name: プロジェクトA
74
+ color: "#1890ff"
75
+
76
+ - code: P03
77
+ name: プロジェクトB
78
+ color: "#722ed1"
79
+ ```
80
+
81
+ ### 4. ルーチン定義を作成(オプション)
82
+
83
+ 毎週決まった予定がある場合、ルーチンとして登録しておくと便利です。
84
+
85
+ ```yaml
86
+ # config/routines.yaml
87
+ routines:
88
+ weekly:
89
+ monday:
90
+ - time: "09:00"
91
+ project: P01
92
+ task: 週次定例会議
93
+ - time: "10:00"
94
+ project: P02
95
+ task: プロジェクトA 朝会
96
+
97
+ friday:
98
+ - time: "17:00"
99
+ project: P01
100
+ task: 週報作成
101
+ ```
102
+
103
+ ### 5. ディレクトリ構成
104
+
105
+ 最終的にこのような構成になります:
106
+
107
+ ```
108
+ my-journal/
109
+ ├── mdjournal.config.yaml # メイン設定ファイル
110
+ ├── config/
111
+ │ ├── projects.yaml # プロジェクト定義
112
+ │ └── routines.yaml # ルーチン定義
113
+ └── data/ # 日報が保存される場所
114
+ └── 2025/
115
+ └── 01/
116
+ ├── 2025-01-06.md
117
+ └── 2025-01-07.md
118
+ ```
119
+
120
+ ### 6. 起動
121
+
122
+ ```bash
123
+ npx mdjournal ./mdjournal.config.yaml
124
+ ```
125
+
126
+ 日報ファイルはダッシュボードから自動的に作成されます。
127
+
128
+ ---
129
+
130
+ ## 📝 日報の書き方
131
+
132
+ 日報は以下のようなMarkdown形式です。ダッシュボードで編集できますが、テキストエディタで直接編集することもできます。
133
+
134
+ ```markdown
135
+ # [日報] 山田太郎 2025-01-06
136
+
137
+ ## [PLAN]
138
+
139
+ * 08:30 [P01] タスク確認・朝会
140
+ * 09:00 [P02] プロジェクトA 開発
141
+ * 12:00
142
+ * 13:00 [P03] プロジェクトB MTG
143
+ * 15:00 [P02] プロジェクトA 開発
144
+ * 18:00
145
+
146
+ ## [RESULT]
147
+
148
+ * 08:30 [P01] タスク確認・朝会
149
+ * 09:00 [P02] プロジェクトA 開発
150
+ * 12:00
151
+ * 13:00 [P03] プロジェクトB MTG(延長)
152
+ * 16:00 [P02] プロジェクトA 開発
153
+ * 19:00
154
+
155
+ ## [TODO]
156
+
157
+ - [ ] [P01] !!! 重要なタスク @2025-01-10
158
+ - [*] [P01] !! 進行中のタスク
159
+ - [x] [P02] 完了したタスク
160
+ - [-] [P02] 保留中のタスク
161
+
162
+ ## [NOTE]
163
+
164
+ 本日のメモや振り返りをここに記載。
165
+ ```
166
+
167
+ ### タイムライン記法
168
+
169
+ ```
170
+ * HH:MM [プロジェクトコード] タスク内容
171
+ * HH:MM ← 終了時刻のみ(空き時間の終わり)
172
+ ```
173
+
174
+ - `[PLAN]` セクション: 予定
175
+ - `[RESULT]` セクション: 実績
176
+
177
+ ### TODOの書き方
178
+
179
+ ```markdown
180
+ - [{status}] [{project}] {priority}{task} @{deadline}
181
+ ```
182
+
183
+ #### ステータス
184
+
185
+ | マーク | 意味 |
186
+ |--------|------|
187
+ | `[ ]` | 未着手 |
188
+ | `[*]` | 進行中 |
189
+ | `[x]` | 完了 |
190
+ | `[-]` | 保留 |
191
+
192
+ #### 優先度と期日
193
+
194
+ ```markdown
195
+ - [ ] [P01] !!! 優先度:高
196
+ - [ ] [P01] !! 優先度:中
197
+ - [ ] [P01] ! 優先度:低
198
+ - [ ] [P01] タスク @2025-01-10 ← 期日付き
199
+ - [ ] [P01] !!! 緊急タスク @2025-01-10 ← 期日+優先度
200
+ ```
201
+
202
+ ---
203
+
204
+ ## 🔗 外部連携
205
+
206
+ ### Git連携
207
+
208
+ 日報ディレクトリがGitリポジトリの場合、ダッシュボードの保存ボタンから直接commit/pushできます。
209
+
210
+ ```bash
211
+ # 日報ディレクトリをGitリポジトリ化
212
+ cd my-journal
213
+ git init
214
+ git remote add origin <your-repo-url>
215
+ ```
216
+
217
+ ### Slack連携
218
+
219
+ 日報をSlackチャンネルに投稿できます。
220
+
221
+ ```yaml
222
+ # mdjournal.config.yaml に追加
223
+ slack:
224
+ enabled: true
225
+ webhookUrl: ${SLACK_WEBHOOK_URL} # 環境変数から取得
226
+ channel: "#daily_report"
227
+ ```
228
+
229
+ 環境変数の設定:
230
+
231
+ ```bash
232
+ export SLACK_WEBHOOK_URL="https://hooks.slack.com/services/..."
233
+ ```
234
+
235
+ ### 保存ダイアログ
236
+
237
+ 保存ボタンから開くダイアログで、保存範囲を選択できます:
238
+
239
+ 1. **保存のみ** - ローカルファイルに保存
240
+ 2. **Commitまで** - 保存 + Git commit
241
+ 3. **Pushまで** - 保存 + commit + push
242
+ 4. **Slack投稿** - 上記 + Slackに投稿(Slack連携が有効な場合)
243
+
244
+ ---
245
+
246
+ ## 🛠️ CLIコマンド
247
+
248
+ ```bash
249
+ # サーバー起動
250
+ npx mdjournal [config.yaml]
251
+
252
+ # 日報ファイルのバリデーション
253
+ npx mdjournal validate ./data
254
+ npx mdjournal validate ./data --verbose # 詳細表示
255
+ npx mdjournal validate ./data --strict # 厳格モード
256
+
257
+ # 統計情報の再集計(frontmatter更新)
258
+ npx mdjournal stats ./data
259
+ npx mdjournal stats ./data --dry-run # プレビューのみ
260
+
261
+ # 設定ファイルの検証
262
+ npx mdjournal config ./mdjournal.config.yaml
263
+ ```
264
+
265
+ ---
266
+
267
+ ## ⚙️ 設定リファレンス
268
+
269
+ ### タイムライン設定
270
+
271
+ ```yaml
272
+ timeline:
273
+ hourHeight: 60 # 1時間あたりの高さ(px)
274
+ maxHours: 36 # 最大表示時間
275
+ defaultStartHour: 8 # デフォルト開始時刻
276
+ defaultEndHour: 20 # デフォルト終了時刻
277
+ snapMinutes: 15 # スナップ単位(分)
278
+ ```
279
+
280
+ ### プロジェクト定義
281
+
282
+ ```yaml
283
+ # config/projects.yaml
284
+ projects:
285
+ - code: P01 # タイムラインで使用するコード
286
+ name: 社内業務 # 表示名
287
+ fullName: 社内管理・雑務 # フルネーム(オプション)
288
+ color: "#52c41a" # 表示色
289
+ category: internal # カテゴリID(オプション)
290
+ active: true # アクティブフラグ(デフォルト: true)
291
+
292
+ categories: # カテゴリ定義(オプション)
293
+ - id: internal
294
+ name: 社内業務
295
+ color: "#52c41a"
296
+ ```
297
+
298
+ ### ルーチン定義
299
+
300
+ ```yaml
301
+ # config/routines.yaml
302
+ routines:
303
+ # 週次ルーチン
304
+ weekly:
305
+ monday:
306
+ - time: "09:00"
307
+ project: P01
308
+ task: 週次定例
309
+
310
+ # 月次ルーチン
311
+ monthly:
312
+ start_of_month: # 月初
313
+ - project: P01
314
+ task: 経費精算
315
+ end_of_month: # 月末
316
+ - project: P01
317
+ task: 月次レポート
318
+
319
+ # 四半期ルーチン
320
+ quarterly:
321
+ - months: [3, 6, 9, 12]
322
+ tasks:
323
+ - project: P01
324
+ task: 四半期レビュー
325
+ ```
326
+
327
+ ---
328
+
329
+ ## 📄 ライセンス
330
+
331
+ MIT License
332
+
333
+ ---
334
+
335
+ **mdJournal** - Markdownで日報をもっと便利に