New Study Session
<%* /* ========================================== ๐ฟ STUDY NOOK โ NEW STUDY SESSION ๐ Cozy Academic Journal ========================================== */
// ๐ธ STEP 1 โ Choose a class
const classes = [ "Calculus III", "Statics", "Statistics", "MATLAB", "ME 287 Design", "Other" ];
const studyClass = await tp.system.suggester( classes, classes, false, "๐ What did you study?" );
if (!studyClass) { new Notice("๐ฑ Study session cancelled."); return; }
// โ STEP 2 โ Enter study duration
const minutesInput = await tp.system.prompt( "โ How many minutes did you study?", "25" );
if (minutesInput === null) { new Notice("Study session cancelled."); return; }
const minutes = Number(minutesInput);
if (!Number.isFinite(minutes) || minutes โค 0) { new Notice("Please enter a positive number of minutes."); return; }
// ๐ท STEP 3 โ Record an accomplishment
const accomplishment = await tp.system.prompt( "๐ธ What did you accomplish today?", "" );
if (accomplishment === null) { new Notice("Study session cancelled."); return; }
// ๐ฏ๏ธ STEP 4 โ Generate dates and pretty filename
const date = tp.date.now("YYYY-MM-DD"); const prettyDate = tp.date.now("MMMM D, YYYY"); const time = tp.date.now("HH:mm");
const folder = "study nook/School/Study Sessions";
const baseName = ๐ฟ ${studyClass} โ ${prettyDate};
let sessionName = baseName; let sessionNumber = 2;
// ๐ธ Automatically number multiple sessions // for the same class on the same day.
while (
app.vault.getAbstractFileByPath(
${folder}/${sessionName}.md
)
) {
sessionName =
${baseName} (Session ${sessionNumber});
sessionNumber++;
}
// ๐ STEP 5 โ Save in our Study Nook folder
await tp.file.move(
${folder}/${sessionName}
);
// ๐ STEP 6 โ Create journal entry
const yamlClass = JSON.stringify(studyClass); const yamlAccomplishment = JSON.stringify(accomplishment || "");
const journalText = `โ type: study-session date: ${date} time: "${time}" class: ${yamlClass} minutes: ${minutes} accomplishment: ${yamlAccomplishment}
๐ ${studyClass} โ ${prettyDate}
A little progress is still progress. ๐ฟ
๐ธ What I Accomplished
${accomplishment || "A little studying today!"}
๐ฏ๏ธ Session Length: ${minutes} minutes
Another little page in my study journal. ๐๐ท `;
// ๐ฟ STEP 7 โ Write the completed entry
tR = journalText.trimStart();
new Notice("๐ธ Study session added to your journal!"); %>