* Org mode version 9.7-pre (9.7-pre-n/a-g093879
@ 2024-02-05 1:42 Jason May
2024-02-07 17:09 ` Ihor Radchenko
0 siblings, 1 reply; 4+ messages in thread
From: Jason May @ 2024-02-05 1:42 UTC (permalink / raw)
To: emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 144776 bytes --]
Extraneous content (e.g. blank lines) in the PROPERTIES drawer
cause =org-entry-get= to return nil without indication of any problem.
Desired behavior: =org-entry-get= should be forgiving.
It should ignore blank PROPERTIES lines, or any line with invalid
syntax.
A message to the *Warnings* buffer might be appropriate.
Example:
In an org-mode buffer, create an heading with a PROPERTIES drawer.
Include a =:CREATED:= entry in PROPERTIES, but also include a blank
line,
either above or below the PROPERTIES line. Then execute this function:
(org-entry-get (point) "CREATED")
The function will return nil instead of the expected value.
Emacs : GNU Emacs 29.1 (build 1, aarch64-apple-darwin22.5.0, Carbon
Version 169 AppKit 2299.6)
of 2023-08-08
Package: Org mode version 9.7-pre (9.7-pre-n/a-g093879
@ /Users/jmay/.emacs.d/elpaca/builds/org/)
current state:
==============
(setq
org-link-elisp-confirm-function 'yes-or-no-p
org-directory
"/Users/jmay/Library/CloudStorage/Dropbox/Documents/Notes"
org-after-todo-state-change-hook '(org-checklist)
org-bibtex-headline-format-function 'org-bibtex-headline-format-default
org-download-file-format-function 'org-download-file-format-default
org-log-into-drawer t
org-startup-folded 'content
org-agenda-files
'("/Users/jmay/Library/CloudStorage/Dropbox/Documents/Notes/journal/2023.org"
"/Users/jmay/Dropbox/Documents/Notes/00-todo.org"
"/Users/jmay/Dropbox/Documents/Notes/rpg/ccs-combat-
mechanics.org"
"/Users/jmay/Dropbox/Documents/Notes/rpg/ashkarth/00-TO-BE-FILED.org"
"/Users/jmay/Dropbox/Documents/Notes/emacs-todo.org"
"/Users/jmay/Dropbox/Documents/Notes/projects/schoolistry_journal.org"
"/Users/jmay/Dropbox/Documents/Notes/journal/2022.org")
org-journal-dir
"/Users/jmay/Library/CloudStorage/Dropbox/Documents/Notes/journal/"
org-journal-date-format "%Y-%m-%d %a"
org-capture-templates '(("t" "TODO" entry
(file+headline "~/Dropbox/Documents/Notes/00-
todo.org" "Tasks")
"* TODO %?\n %i\n %a")
("e" "Emacs TODO" entry
(file+headline
"~/Dropbox/Documents/Notes/emacs-todo.org" "Emacs TODO")
"* TODO %?\n %i\n")
("j" "Journal" entry (file+olp+datetree
("~/Notes/journal.org") "* %?\n%i\n")
("s" "Schoolistry Journal" entry
(file+olp+datetree
"~/Dropbox/Documents/Notes/projects/schoolistry-journal.org")
"* %? :schoolistry:\n%i\n")
)
)
org-roam-node-display-template "${hierarchy:20} ${title:60}
${tags:20} ${backlinkscount:6}"
org-persist-after-read-hook '(org-element--cache-persist-after-read)
org-refile-targets '((nil :maxlevel . 3) (org-agenda-files :maxlevel .
2))
org-export-before-parsing-hook '(org-attach-expand-links)
org-cycle-tab-first-hook '(org-babel-hide-result-toggle-maybe org-
babel-header-arg-expand)
org-download-method 'attach
org-roam-find-file-hook '(org-roam-buffer--setup-redisplay-h org-roam--
register-completion-functions-h
org-roam--replace-roam-links-on-save-h
org-roam-db-autosync--setup-update-on-save-h)
org-refile-use-outline-path 'file
org-archive-hook '(org-attach-archive-delete-maybe)
org-odt-format-inlinetask-function 'org-odt-format-inlinetask-default-
function
org-font-lock-hook '(org-inlinetask-fontify)
org-ascii-format-drawer-function #[771 "\207" [] 4 "\n\n(fn NAME
CONTENTS WIDTH)"]
org-cycle-hook '(org-inlinetask-hide-tasks org-cycle-hide-archived-
subtrees org-cycle-show-empty-lines
org-cycle-optimize-window-after-visibility-change org-
cycle-display-inline-images)
org-persist-before-read-hook '(org-element--cache-persist-before-read)
org-image-actual-width '(300)
org-mode-hook '(#[0 "\b\205\301 \205\302\303\301
!\304P!\305!\205\306!\262\207"
[org-ctags-enabled-p buffer-file-name expand-file-
name file-name-directory "/TAGS"
file-exists-p visit-tags-table]
3]
#[0
"\305\306 >\203\307\n\310\311#\210\307
\312\313#\210\307 \314\315#\210\306
>\203,\307\n\316\317#\210\307\n\320\321#\210\322 >\203>\307
\323\324#\210\307 \325\324#\210\326
>\203P\307\n\327\317#\210\307\n\330\321#\210\331
>\203_\332\311\f\333BC\334#\210\335 >\203k\332\311\336\334#\210\337
>\203w\332\311\340\334#\210\341\342\343\344#\207"
[org-mouse-context-menu-function
org-mouse-features
org-mouse-map
org-mode-map
org-outline-regexp
org-mouse-context-menu
context-menu
org-defkey
[mouse-3]
nil
[mouse-3]
org-mouse-show-context-menu
[down-mouse-1]
org-mouse-down-mouse
[C-drag-mouse-1]
org-mouse-move-tree
[C-down-mouse-1]
org-mouse-move-tree-start
yank-link
[S-mouse-2]
org-mouse-yank-link
[drag-mouse-3]
move-tree
[drag-mouse-3]
[down-mouse-3]
activate-stars
font-lock-add-keywords
(0
`(face
org-link mouse-face highlight keymap ,org-mouse-map)
'prepend)
t
activate-bullets
(("^[ ]*\\([-+*]\\|[0-9]+[.)]\\) +"
(1
`(face org-link keymap ,org-mouse-map mouse-face highlight)
'prepend)
)
)
activate-checkboxes
(("^[ ]*\\(?:[-+*]\\|[0-9]+[.)]\\)[
]+\\(?:\\[@\\(?:start:\\)?[0-9]+\\][ ]*\\)?\\(\\[[- X]\\]\\)"
(1
`(face nil keymap ,org-mouse-map mouse-face highlight)
prepend)
)
)
advice-add org-open-at-point :around org--
mouse-open-at-point]
4]
er/add-org-mode-expansions org-superstar-mode (closure
(t) nil (org-autolist-mode))
org-tempo-setup reveal-mode org-indent-mode
#[0 "\300\301\302\303\304$\207"
[add-hook change-major-mode-hook org-fold-show-all
append local] 5]
#[0 "\300\301\302\303\304$\207"
[add-hook change-major-mode-hook org-babel-show-
result-all append local] 5]
org-babel-result-hide-spec org-babel-hide-all-hashes
#[0 "\301\211\207" [imenu-create-index-function org-
imenu-get-tree] 2])
org-babel-load-languages '((emacs-lisp . t) (sql . t) (shell . t)
(restclient . t))
org-mairix-gnus-select-display-group-function 'org-mairix-gnus-select-
display-group-function-gg
org-roam-ref-annotation-function 'org-roam-ref-read--annotation
org-roam-directory
"/Users/jmay/Library/CloudStorage/Dropbox/Documents/Notes"
org-journal-after-entry-create-hook '(my/org-insert-entry-id-and-
timestamp)
org-latex-format-drawer-function #[514 "\207" [] 3 "\n\n(fn _
CONTENTS)"]
org-roam-db-node-include-function #[0 "\300\207" [t] 1]
org-download-abbreviate-filename-function 'file-relative-name
org-latex-format-headline-function 'org-latex-format-headline-default-
function
org-confirm-shell-link-function 'yes-or-no-p
org-reveal-start-hook '(org-decrypt-entry)
org-download-annotate-function 'org-download-annotate-default
org-html-format-drawer-function #[514 "\207" [] 3 "\n\n(fn NAME
CONTENTS)"]
outline-isearch-open-invisible-function 'outline-isearch-open-invisible
org-checklist-export-function 'org-export-as-ascii
org-agenda-sorting-strategy '((agenda habit-down time-up priority-down
category-keep)
(todo priority-down category-down) (tags
priority-down category-keep)
(search category-keep))
org-startup-indented t
org-fold-catch-invisible-edits 'show-and-error
org-odt-format-headline-function 'org-odt-format-headline-default-
function
org-use-speed-commands t
org-agenda-mode-hook '(#[0
"\302\303 \304\305#\210\303 \306\307#\210\303
\310\311#\210\303 \312\313#\210\303 \314\315#\207"
[org-mouse-context-menu-function
org-agenda-mode-
map
org-mouse-agenda-
context-menu
org-defkey
[mouse-3]
org-mouse-show-
context-menu
[down-mouse-3]
org-mouse-move-
tree-start
[C-mouse-4]
org-agenda-earlier
[C-mouse-5]
org-agenda-later
[drag-mouse-3]
#[257
"\300!\211\301\267\202\302\303!\207\304\303!\207\305\207"
[org-mouse-get-
gesture
#s(hash-table
size
2
test
eq
rehash-size
1.5
rehash-threshold
0.8125
purecopy
t
data
(:left 9 :right 13)
)
org-agenda-earlier
1 org-agenda-later nil]
4 "\n\n(fn
EVENT)" "e"]
]
4]
)
org-roam-capture-preface-hook '(org-roam-dailies--override-capture-
time-h
org-roam-capture--try-capture-to-ref-h)
org-agenda-before-write-hook '(org-agenda-add-entry-text)
org-capture-prepare-finalize-hook '(org-roam-capture--install-finalize-
h)
org-src-preserve-indentation t
org-archive-file-header-format nil
org-roam-preview-function 'org-roam-preview-default-function
org-src-mode-hook '(org-src-babel-configure-edit-buffer org-src-mode-
configure-edit-buffer)
org-roam-db-autosync-mode t
org-confirm-elisp-link-function 'yes-or-no-p
org-cycle-separator-lines 0
org-superstar-headline-bullets-list '("✱" "✖" "✶" "✷" "✚" "◆" "▶" "○")
org-log-buffer-setup-hook '(org-roam-log--setup)
org-safe-remote-resources '("\\`https://fniessen\\.github\\.io/org-
html-themes/org/theme-readtheorg\\.setup\\'")
org-hide-leading-stars t
org-id-link-to-org-use-id t
org-roam-capture-new-node-hook '(org-roam-capture--insert-captured-ref-
h org-roam--insert-timestamp)
org-support-shift-select t
org-structure-template-alist '(("el" . "src emacs-lisp") ("a" . "export
ascii") ("c" . "center")
("C" . "comment") ("e" . "example") ("E"
. "export")
("h" . "export html") ("l" . "export
latex") ("q" . "quote")
("s" . "src") ("v" . "verse"))
org-speed-command-hook '(org-speed-command-activate org-babel-speed-
command-activate)
org-html-format-inlinetask-function 'org-html-format-inlinetask-
default-function
org-ascii-format-inlinetask-function 'org-ascii-format-inlinetask-
default
org-journal-mode-hook '(turn-on-visual-line-mode org-journal-default-
enable-encryption)
org-priority-default 67
org-journal-time-format ""
org-odt-format-drawer-function #[514 "\207" [] 3 "\n\n(fn NAME
CONTENTS)"]
org-confirm-babel-evaluate nil
org-fold-core-isearch-open-function 'org-fold-core--isearch-reveal
org-export-with-smart-quotes t
org-journal-created-property-timestamp-format "%Y-%m-%d"
org-latex-format-inlinetask-function 'org-latex-format-inlinetask-
default-function
org-persist-before-write-hook '(org-element--cache-persist-before-
write)
org-tab-first-hook '(org-babel-hide-result-toggle-maybe org-babel-
header-arg-expand)
org-texinfo-format-headline-function 'org-texinfo-format-headline-
default-function
org-link-shell-confirm-function 'yes-or-no-p
org-babel-pre-tangle-hook '(save-buffer)
org-journal-file-type 'monthly
org-roam-completion-everywhere t
org-agenda-loop-over-headlines-in-active-region nil
org-attach-id-dir
"/Users/jmay/Library/CloudStorage/Dropbox/Documents/Notes/attachments"
org-mairix-display-hook 'org-mairix-gnus-display-results
org-fold-reveal-start-hook '(org-decrypt-entry)
org-occur-hook '(org-first-headline-recenter)
org-roam-log-setup-hook '(org-roam--register-completion-functions-h)
org-metadown-hook '(org-babel-pop-to-session-maybe)
org-roam-node-annotation-function 'org-roam-node-read--annotation
org-link-parameters '(("mairix" :follow org-mairix-open :store org-
mairix-store-gnus-link)
("cite" :follow org-bibtex-goto-citation)
("eww" :follow org-eww-open :store org-eww-store-
link)
("rmail" :follow org-rmail-open :store org-rmail-
store-link)
("mhe" :follow org-mhe-open :store org-mhe-store-
link)
("irc" :follow org-irc-visit :store org-irc-
store-link :export org-irc-export)
("info" :follow org-info-open :export org-info-
export :store org-info-store-link
:insert-description org-info-description-as-
command)
("gnus" :follow org-gnus-open :store org-gnus-
store-link)
("docview" :follow org-docview-open :export org-
docview-export :store
org-docview-store-link)
("bibtex" :follow org-bibtex-open :store org-
bibtex-store-link)
("bbdb" :follow org-bbdb-open :export org-bbdb-
export :complete
org-bbdb-complete-link :store org-bbdb-store-
link)
("w3m" :store org-w3m-store-link)
("doi" :follow org-link-doi-open :export org-
link-doi-export)
("message" :follow org-mac-link-mail-open)
("x-devonthink-item" :follow org-mac-link-
devonthink-item-open)
("mac-evernote" :follow org-mac-link-evernote-
note-open)
("mac-outlook" :follow org-mac-link-outlook-
message-open)
("acrobat" :follow org-mac-link-acrobat-open)
("skim" :follow org-mac-link-skim-open)
("addressbook" :follow org-mac-link-addressbook-
item-open)
("x-together-item" :follow org-mac-link-together-
item-open)
("roam" :follow org-roam-link-follow-link)
("attachment" :follow org-attach-follow :complete
org-attach-complete-link)
("id" :follow org-roam-id-open :complete org-id-
complete-link) ("file+sys")
("file+emacs") ("shell" :follow org-link--open-
shell)
("news" :follow
#[514 "\301\300\302Q\"\207" ["news" browse-url
":"] 6 "\n\n(fn URL ARG)"])
("mailto" :follow
#[514 "\301\300\302Q\"\207" ["mailto" browse-url
":"] 6 "\n\n(fn URL ARG)"])
("https" :follow
#[514 "\301\300\302Q\"\207" ["https" browse-url
":"] 6 "\n\n(fn URL ARG)"])
("http" :follow
#[514 "\301\300\302Q\"\207" ["http" browse-url
":"] 6 "\n\n(fn URL ARG)"])
("ftp" :follow
#[514 "\301\300\302Q\"\207" ["ftp" browse-url
":"] 6 "\n\n(fn URL ARG)"])
("help" :follow org-link--open-help :store org-
link--store-help)
("file" :complete org-link-complete-file)
("elisp" :follow org-link--open-elisp))
org-journal-prefix-key "C-c y"
org-roam-ui-browser-function 'browse-url
org-html-format-headline-function 'org-html-format-headline-default-
function
org-roam-capture-templates '(("d" "default Notes" plain "%?" :target
(file+head "%<%Y%m%d%H%M%S>-${slug}.org"
"#+title: ${title}\n")
:unnarrowed t)
("g" "gaming /rpg" plain "%?" :target
(file+head "rpg/%<%Y%m%d%H%M%S>-
${slug}.org" "#+title: ${title}\n")
:unnarrowed t)
("a" "ashkarth /rpg/ashkarth" plain "%?"
:target
(file+head "rpg/ashkarth/%<%Y%m%d%H%M%S>-
${slug}.org"
"#+title: ${title}\n#+filetags:
:ashkarth:\n")
:unnarrowed t)
("t" "thylea /rpg/odyssey" plain "%?"
:target
(file+head "rpg/odyssey/%<%Y%m%d%H%M%S>-
${slug}.org"
"#+title: ${title}\n#+filetags:
:thylea:\n")
:unnarrowed t)
("m" "milliard /rpg/milliard" plain "%?"
:target
(file+head "rpg/milliard/%<%Y%m%d%H%M%S>-
${slug}.org"
"#+title: ${title}\n#+filetags:
:milliard:\n")
:unnarrowed t)
("p" "projects /projects" plain "%?"
:target
(file+head "projects/${slug}.org"
"#+title: ${title}\n#+filetags:
:project:\n")
:unnarrowed t)
)
org-metaup-hook '(org-babel-load-in-session-maybe)
org-refile-allow-creating-parent-nodes 'confirm
org-blank-before-new-entry '((heading) (plain-list-item))
org-imenu-depth 5
org-download-link-format-function 'org-download-link-format-function-
default
org-outline-path-complete-in-steps nil
org-special-ctrl-a/e t
org-tab-before-tab-emulation-hook '(org-tempo-complete-tag)
org-reverse-note-order t
org-texinfo-format-inlinetask-function 'org-texinfo-format-inlinetask-
default-function
org-roam-indirect-buffer-hook '(org-roam--register-completion-
functions-h)
org-id-locations-file-relative t
org-expiry-handler-function 'org-toggle-archive-tag
org-journal-file-format "%Y-%m.org"
org-texinfo-format-drawer-function #[514 "\207" [] 3 "\n\n(fn NAME
CONTENTS)"]
)
[-- Attachment #2: Type: text/html, Size: 149348 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Org mode version 9.7-pre (9.7-pre-n/a-g093879
2024-02-05 1:42 Org mode version 9.7-pre (9.7-pre-n/a-g093879 Jason May
@ 2024-02-07 17:09 ` Ihor Radchenko
2024-02-08 4:00 ` Jason May
0 siblings, 1 reply; 4+ messages in thread
From: Ihor Radchenko @ 2024-02-07 17:09 UTC (permalink / raw)
To: Jason May; +Cc: emacs-orgmode
Jason May <jmay@pobox.com> writes:
> Extraneous content (e.g. blank lines) in the PROPERTIES drawer
> cause =org-entry-get= to return nil without indication of any problem.
>
> Desired behavior: =org-entry-get= should be forgiving.
> It should ignore blank PROPERTIES lines, or any line with invalid
> syntax.
> A message to the *Warnings* buffer might be appropriate.
Blank lines in properties might be an ok change.
I am not so sure about invalid syntax.
Consider
:PROPERTIES:
:PROP1: val1
:PROP2: this line was
accidentally modified
:END:
Property drawer not being recognized is more likely to be noticed
compared to `org-entry-get' returning incomplete "this line was".
In any case, M-x org-lint will report problems with property drawers.
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Org mode version 9.7-pre (9.7-pre-n/a-g093879
2024-02-07 17:09 ` Ihor Radchenko
@ 2024-02-08 4:00 ` Jason May
2024-02-08 15:31 ` Ihor Radchenko
0 siblings, 1 reply; 4+ messages in thread
From: Jason May @ 2024-02-08 4:00 UTC (permalink / raw)
To: Ihor Radchenko; +Cc: emacs-orgmode
[-- Attachment #1: Type: text/plain, Size: 1651 bytes --]
I think you're right.
This request was prompted by an issue encounted in org-journal, and it
probably exists in org-roam and other similar packages.
Ignoring blank lines sounds like a reasonable approach.
For more significant syntax violations such as your example, perhaps
org-entry-get and other functions should raise errors instead of
silently returning nil?
I'm going to investigate how it might be possible to initiate an org-
lint if an exception situation was to arise in org-journal.
On February 7, 2024, Ihor Radchenko <yantar92@posteo.net> wrote:
> Jason May <jmay@pobox.com> writes:
>
> > Extraneous content (e.g. blank lines) in the PROPERTIES drawer
> > cause =org-entry-get= to return nil without indication of any
> problem.
> >
> > Desired behavior: =org-entry-get= should be forgiving.
> > It should ignore blank PROPERTIES lines, or any line with invalid
> > syntax.
> > A message to the *Warnings* buffer might be appropriate.
>
> Blank lines in properties might be an ok change.
> I am not so sure about invalid syntax.
>
> Consider
>
> :PROPERTIES:
> :PROP1: val1
> :PROP2: this line was
> accidentally modified
> :END:
>
> Property drawer not being recognized is more likely to be noticed
> compared to `org-entry-get' returning incomplete "this line was".
>
> In any case, M-x org-lint will report problems with property drawers.
>
> --
> Ihor Radchenko // yantar92,
> Org mode contributor,
> Learn more about Org mode at <https://orgmode.org/>.
> Support Org development at <https://liberapay.com/org-mode>,
> or support my work at <https://liberapay.com/yantar92>
[-- Attachment #2: Type: text/html, Size: 4431 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: Org mode version 9.7-pre (9.7-pre-n/a-g093879
2024-02-08 4:00 ` Jason May
@ 2024-02-08 15:31 ` Ihor Radchenko
0 siblings, 0 replies; 4+ messages in thread
From: Ihor Radchenko @ 2024-02-08 15:31 UTC (permalink / raw)
To: Jason May; +Cc: emacs-orgmode
Jason May <jmay@pobox.com> writes:
> This request was prompted by an issue encounted in org-journal, and it
> probably exists in org-roam and other similar packages.
>
> Ignoring blank lines sounds like a reasonable approach.
It is reasonable, but I am not convinced that it is important enough to
make changes to Org mode syntax.
Allowing blank lines may help with certain types of accidental edits - a
small fraction of possible accidental edits. The benefit is very small.
Too small, IMHO.
> For more significant syntax violations such as your example, perhaps
> org-entry-get and other functions should raise errors instead of
> silently returning nil?
That would require org-entry-get to try searching things that /look
like/ malformed property drawer. This will be (1) slower; (2) defeat the
purpose of changes introduced in Org 8.3
https://orgmode.org/worg/org-release-notes.html#orgaf78411
I am not in favor of such change.
> I'm going to investigate how it might be possible to initiate an org-
> lint if an exception situation was to arise in org-journal.
Org syntax is not restrictive. We deliberately allow people to write
arbitrary text that do not follow strict rules and Org still recognizes
such text as generic text with no special meaning. So, Org mode syntax
has no notion of exceptions.
There are of course common mistakes when writing Org markup. That's why
we have org-lint. However, org-lint is always suggestive - it is an
equivalent of compiler warnings.
--
Ihor Radchenko // yantar92,
Org mode contributor,
Learn more about Org mode at <https://orgmode.org/>.
Support Org development at <https://liberapay.com/org-mode>,
or support my work at <https://liberapay.com/yantar92>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-02-08 15:29 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-05 1:42 Org mode version 9.7-pre (9.7-pre-n/a-g093879 Jason May
2024-02-07 17:09 ` Ihor Radchenko
2024-02-08 4:00 ` Jason May
2024-02-08 15:31 ` Ihor Radchenko
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).