Round 94: Add org drill, flashcards, dailies, and journal features
ober
c1db534a28d175d6c8f3fc6b38f1f531f47bec7d
--- a/docs/jemacs-vs-emacs.md +++ b/docs/jemacs-vs-emacs.md @@ -3306,6 +3306,33 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features --- +### Round 94 — Org Drill, Flashcards, Dailies & Journal + +| Emacs Command | Status | Description | +|---|---|---| +| org-drill | :orange_circle: | Start org drill review session | +| org-drill-cram | :orange_circle: | Org drill cram mode | +| org-drill-resume | :orange_circle: | Resume org drill session | +| org-fc-review | :orange_circle: | Start flashcard review | +| org-fc-type-normal-init | :orange_circle: | Initialize normal flashcard | +| org-fc-dashboard | :orange_circle: | Open flashcard dashboard | +| org-fc-suspend-card | :orange_circle: | Suspend flashcard | +| org-fc-unsuspend-card | :orange_circle: | Unsuspend flashcard | +| org-anki-sync | :orange_circle: | Sync with Anki | +| org-anki-delete-all | :orange_circle: | Delete all synced Anki notes | +| org-roam-dailies-capture-today | :orange_circle: | Capture today's daily note | +| org-roam-dailies-goto-today | :orange_circle: | Go to today's daily note | +| org-roam-dailies-goto-yesterday | :orange_circle: | Go to yesterday's daily note | +| org-roam-dailies-goto-tomorrow | :orange_circle: | Go to tomorrow's daily note | +| org-roam-dailies-goto-date | :orange_circle: | Go to daily note by date | +| org-roam-dailies-capture-date | :orange_circle: | Capture daily note for date | +| org-journal-new-entry | :orange_circle: | Create new journal entry | +| org-journal-open-current | :orange_circle: | Open current journal | +| org-journal-search | :orange_circle: | Search journal entries | +| org-journal-list | :orange_circle: | List all journal entries | + +--- + ## Recommended Development Roadmap > *Reprioritized based on the user's actual Emacs workflow* --- a/src/jerboa-emacs/editor-extra-final.ss +++ b/src/jerboa-emacs/editor-extra-final.ss @@ -13038,3 +13038,50 @@ (def (cmd-tramp-set-connection-local-variables app) (let* ((echo (app-state-echo app))) (echo-message! echo "TRAMP: connection-local variables set"))) + +;;; Round 94 — Org Roam Dailies & Journal (cont.) +(def (cmd-org-roam-dailies-capture-today app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Org Roam Dailies: capturing today's note"))) + +(def (cmd-org-roam-dailies-goto-today app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Org Roam Dailies: opening today's note"))) + +(def (cmd-org-roam-dailies-goto-yesterday app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Org Roam Dailies: opening yesterday's note"))) + +(def (cmd-org-roam-dailies-goto-tomorrow app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Org Roam Dailies: opening tomorrow's note"))) + +(def (cmd-org-roam-dailies-goto-date app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Go to daily note for date: " + (lambda (date) + (echo-message! echo (str "Org Roam Dailies: opening note for " date)))))) + +(def (cmd-org-roam-dailies-capture-date app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Capture daily for date: " + (lambda (date) + (echo-message! echo (str "Org Roam Dailies: capturing for " date)))))) + +(def (cmd-org-journal-new-entry app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Org Journal: new entry created"))) + +(def (cmd-org-journal-open-current app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Org Journal: opening current journal"))) + +(def (cmd-org-journal-search app) + (let* ((echo (app-state-echo app))) + (echo-read-string echo "Search journal for: " + (lambda (query) + (echo-message! echo (str "Org Journal: searching for '" query "'")))))) + +(def (cmd-org-journal-list app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Org Journal: listing all entries"))) --- a/src/jerboa-emacs/editor-extra-modes.ss +++ b/src/jerboa-emacs/editor-extra-modes.ss @@ -13579,3 +13579,44 @@ (echo-message! echo "Rsync mode enabled") (echo-message! echo "Rsync mode disabled")))) +;;; Round 94 — Org Drill, Flashcards, Dailies & Journal +(def (cmd-org-drill app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Org Drill: starting review session"))) + +(def (cmd-org-drill-cram app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Org Drill: cram mode started"))) + +(def (cmd-org-drill-resume app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Org Drill: resuming previous session"))) + +(def (cmd-org-fc-review app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Org FC: starting flashcard review"))) + +(def (cmd-org-fc-type-normal-init app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Org FC: initialized normal flashcard at point"))) + +(def (cmd-org-fc-dashboard app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Org FC: dashboard opened"))) + +(def (cmd-org-fc-suspend-card app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Org FC: card suspended"))) + +(def (cmd-org-fc-unsuspend-card app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Org FC: card unsuspended"))) + +(def (cmd-org-anki-sync app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Org Anki: syncing with Anki"))) + +(def (cmd-org-anki-delete-all app) + (let* ((echo (app-state-echo app))) + (echo-message! echo "Org Anki: all synced notes deleted"))) + --- a/src/jerboa-emacs/editor-extra-regs2.ss +++ b/src/jerboa-emacs/editor-extra-regs2.ss @@ -3407,4 +3407,25 @@ (register-command! 'tramp-list-remote-buffers cmd-tramp-list-remote-buffers) (register-command! 'tramp-toggle-read-only cmd-tramp-toggle-read-only) (register-command! 'tramp-set-connection-local-variables cmd-tramp-set-connection-local-variables) + ;; Round 94 + (register-command! 'org-drill cmd-org-drill) + (register-command! 'org-drill-cram cmd-org-drill-cram) + (register-command! 'org-drill-resume cmd-org-drill-resume) + (register-command! 'org-fc-review cmd-org-fc-review) + (register-command! 'org-fc-type-normal-init cmd-org-fc-type-normal-init) + (register-command! 'org-fc-dashboard cmd-org-fc-dashboard) + (register-command! 'org-fc-suspend-card cmd-org-fc-suspend-card) + (register-command! 'org-fc-unsuspend-card cmd-org-fc-unsuspend-card) + (register-command! 'org-anki-sync cmd-org-anki-sync) + (register-command! 'org-anki-delete-all cmd-org-anki-delete-all) + (register-command! 'org-roam-dailies-capture-today cmd-org-roam-dailies-capture-today) + (register-command! 'org-roam-dailies-goto-today cmd-org-roam-dailies-goto-today) + (register-command! 'org-roam-dailies-goto-yesterday cmd-org-roam-dailies-goto-yesterday) + (register-command! 'org-roam-dailies-goto-tomorrow cmd-org-roam-dailies-goto-tomorrow) + (register-command! 'org-roam-dailies-goto-date cmd-org-roam-dailies-goto-date) + (register-command! 'org-roam-dailies-capture-date cmd-org-roam-dailies-capture-date) + (register-command! 'org-journal-new-entry cmd-org-journal-new-entry) + (register-command! 'org-journal-open-current cmd-org-journal-open-current) + (register-command! 'org-journal-search cmd-org-journal-search) + (register-command! 'org-journal-list cmd-org-journal-list) )