> Again, on a given document, you can only guess what is the "last note". > This is not reliable enough to extend the syntax.
I feel that my understand of "note" in context of org is different from yours. Is there a formal definition of "note" in org? If no, there is indeed no reliable way to capture "last note". However, we can formalise the "last note taken" to "last note taken using org-add-note". > This implementation is only tangentially related to a "last note". You > want to introduce some syntax to display the value a given property, > here SUMMARY. But `org-add-note' is not the only way to add a note. org-add-note is the only way I am aware about (except plain text, indeed). That's why I wrote the function saving the last note taken using org-add-note into SUMMARY. The property is only used here for convenient retrieval, not because I implied showing a property value. May I know what are the other ways to add note via interactive function in Org? Best, Ihor Nicolas Goaziou <m...@nicolasgoaziou.fr> writes: > Ihor Radchenko <yanta...@gmail.com> writes: > >> I was mainly referring to org-add-note. The last note taken with >> org-add-note can be found quite reliably. >> >> I am using the following code saving the last note into :SUMMARY: >> property upon exiting the note buffer. Though it may be an overkill, not >> sure how easy would it be to parse the note syntax for notes created by >> org-add-note. > > You cannot reliably. > >> (defvar yant/last-note-taken "" >> "Text of the last note taken.") >> >> (define-advice org-store-log-note (:before (&rest args) >> yant/org-store-last-note) >> "Store the last saved note into `yant/last-note-taken'." >> (let ((txt (buffer-string))) >> (while (string-match "\\`# .*\n[ \t\n]*" txt) >> (setq txt (replace-match "" t t txt))) >> (when (string-match "\\s-+\\'" txt) >> (setq txt (replace-match " " t t txt))) >> (when (string-match "\n" txt) >> (setq txt (replace-match " " t t txt))) >> (if (not (seq-empty-p txt)) >> (setq yant/last-note-taken txt)))) >> >> (define-advice org-store-log-note (:after (&rest args) >> yant/org-save-last-note-into-summary-prop) >> "Save the last saved note into SUMMARY property." >> (when (and (not org-note-abort) (not (seq-empty-p yant/last-note-taken))) >> (if (eq major-mode 'org-agenda-mode) >> (org-with-point-at-org-buffer >> (org-set-property "SUMMARY" (or yant/last-note-taken ""))) >> (org-set-property "SUMMARY" (or yant/last-note-taken ""))) >> (setq yant/last-note-taken nil))) > > This implementation is only tangentially related to a "last note". You > want to introduce some syntax to display the value a given property, > here SUMMARY. But `org-add-note' is not the only way to add a note. > > Again, on a given document, you can only guess what is the "last note". > This is not reliable enough to extend the syntax. > > Regards,