Julien Dallot <[email protected]> writes: >> #+begin_src emacs-lisp :noweb is test >> #+end_src >> >> interpreted as (:noweb "is test"), simply splicing the value by :keyword >> (unless :keyword is inside "..."). > That looks good to me. Especially if it is already in use. > > There are some edge cases that should be taken care of. > Like, what if the second word starts with a ":"? Then we should treat it as a > normal keyword (since it may be used by some third-party package). But then, > we cannot simply parse a link like > [[::(:id wrong :syntax :regexp foo)]] > as a plist, as this would result in > (:id "wrong" :syntax :regexp "foo") > which is an invalid plist since all properties must have a value (this > problem also applies if we want to give a property the empty string without > "...") > > Then not sure what to do. We could fill the gap with an empty string: > (:id "wrong" :syntax "" :regexp "foo") > or remove the :syntax part altogether: > (:id "wrong" :regexp "foo")
If we continue the analogy with src blocks, #+begin_src emacs-lisp :noweb is :comments :eval yes #+end_src will yield (via org-babel-get-src-block-info) ((:noweb . "is") (:comments) (:eval . "yes")) So, it is an implicit nil, or empty string for the purposes of the link (we should have no notion of nil in there) -- Ihor Radchenko // yantar92, Org mode maintainer, 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>
