Add a section on "Buffer properties" with tools to handle those.
This commit is contained in:
parent
dee56252fc
commit
0da38f0834
54
README.org
54
README.org
@ -2965,6 +2965,60 @@ to add =HTML+CSS+JS= for ~mhtml-mode~:
|
|||||||
)
|
)
|
||||||
#+end_src
|
#+end_src
|
||||||
|
|
||||||
|
*** [[info:org#In-buffer Settings][Buffer properties]]
|
||||||
|
:PROPERTIES:
|
||||||
|
:CUSTOM_ID: sec:buffer-properties
|
||||||
|
:END:
|
||||||
|
|
||||||
|
#+caption[Buffer properties]:
|
||||||
|
#+caption: Buffer properties.
|
||||||
|
#+name: lst:buffer-properties
|
||||||
|
#+begin_src emacs-lisp -n
|
||||||
|
(with-eval-after-load 'org
|
||||||
|
(defconst prop-comments-link-re
|
||||||
|
"\\( :comments link$\\)\\|\\( *$\\)"
|
||||||
|
"Regexp to find \"#+property:\" \":comments link\".")
|
||||||
|
|
||||||
|
|
||||||
|
(defconst prop-ha-re-template
|
||||||
|
(format "\\(?:^[[:blank:]]*#\\+%s:[[:blank:]]+%s:%s\\+*\\)+"
|
||||||
|
"property" "header-args" "%s")
|
||||||
|
"Regexp template to find `#+property:' header-args:any-language.")
|
||||||
|
|
||||||
|
(defconst prop-emacs-lisp-ha-re
|
||||||
|
(format prop-ha-re-template "emacs-lisp")
|
||||||
|
"Regexp to find `#+property:' Emacs Lisp header arguments.")
|
||||||
|
|
||||||
|
(defconst prop-python-ha-re
|
||||||
|
(format prop-ha-re-template "python")
|
||||||
|
"Regexp to find `#+property:' Python header arguments.")
|
||||||
|
|
||||||
|
(defun prop-python-link-comments-toggle ()
|
||||||
|
(interactive)
|
||||||
|
(save-excursion
|
||||||
|
(goto-char (point-min))
|
||||||
|
(if (re-search-forward prop-python-ha-re nil 'noerror)
|
||||||
|
(if (re-search-forward prop-comments-link-re nil t)
|
||||||
|
(if (match-string 1)
|
||||||
|
(replace-match " ")
|
||||||
|
(replace-match " :comments link"))
|
||||||
|
(user-error "Found no python link comment"))
|
||||||
|
(user-error "Found no python header arguments property")))
|
||||||
|
(move-beginning-of-line 1)
|
||||||
|
(org-ctrl-c-ctrl-c))
|
||||||
|
|
||||||
|
(defun org-get-buffer-properties ()
|
||||||
|
"Get all properties in buffer."
|
||||||
|
(org-element-map (org-element-parse-buffer) 'keyword
|
||||||
|
(lambda (el)
|
||||||
|
(and ;; Use (upcase "property"), else it fails.
|
||||||
|
(string= (org-element-property :key el) "PROPERTY")
|
||||||
|
(let* ((strings (split-string (org-element-property :value el)))
|
||||||
|
(value (string-join (cdr strings) " "))
|
||||||
|
(name (car strings)))
|
||||||
|
(cons name value)))))))
|
||||||
|
#+end_src
|
||||||
|
|
||||||
*** [[info:org#Column View][Column View (info)]] and [[info:org#Property Syntax][Property Syntax (info)]]
|
*** [[info:org#Column View][Column View (info)]] and [[info:org#Property Syntax][Property Syntax (info)]]
|
||||||
:PROPERTIES:
|
:PROPERTIES:
|
||||||
:CUSTOM_ID: sec:using-properties
|
:CUSTOM_ID: sec:using-properties
|
||||||
|
Loading…
Reference in New Issue
Block a user