Skip to content

Commit

Permalink
refactor: run-hooks -> dolist
Browse files Browse the repository at this point in the history
`run-hook-with-args' (and other `run-hook' functions) does not seem to
be designed to receive a returned value from each function. What I would
need is a way to apply each filter function one by one to the parse
tree (obj). `dolist' can be made do this.
  • Loading branch information
nobiot committed Dec 31, 2024
1 parent b901262 commit 0818c25
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 93 deletions.
32 changes: 10 additions & 22 deletions org-transclusion.el
Original file line number Diff line number Diff line change
Expand Up @@ -1152,22 +1152,13 @@ work to
org-link-search-must-match-exact-headline)))
(with-current-buffer buf
(org-with-wide-buffer
<<<<<<< HEAD
(org-transclusion-content-org-buffer-or-element
(and search-option
(progn
(org-link-search search-option)
t))
plist))))))
=======
(if search-option
(progn
(org-link-search search-option)
(org-transclusion-content-org-filtered
'only-element plist))
(org-transclusion-content-org-filtered
nil plist)))))))
>>>>>>> 915600c (refactor content-org-filtered)

(defvar org-transclusion-content-filter-org-functions '())

Expand All @@ -1177,20 +1168,13 @@ work to
(add-hook 'org-transclusion-content-filter-org-functions
#'org-transclusion-content-filter-org-expand-links-function)

<<<<<<< HEAD
(defun org-transclusion-content-org-buffer-or-element (only-element plist)
"Return a list of payload for transclusion.
This function assumes the point is at the beginning of the org
element to transclude.
=======
(make-obsolete 'org-transclusion-content-org-buffer-or-element
'org-transclusion-content-org-filtered "1.4.0")
'org-transclusion-content-org-filtered "1.4.1")

(defun org-transclusion-content-org-filtered (only-element plist)
"Return the playload list for transclusion.
"Return a list of payload for transclusion.
This function assumes the point is at the beginning of the org
element to transclude.-
>>>>>>> 915600c (refactor content-org-filtered)
The payload is a plist that consists of the following properties:
- :src-content
Expand Down Expand Up @@ -1243,12 +1227,16 @@ property controls the filter applied to the transclusion."
#'org-transclusion-content-filter-org-first-section
nil nil org-element-all-elements nil)))
;; Apply other filters
(run-hook-with-args 'org-transclusion-content-filter-org-functions obj plist)
(dolist (fn org-transclusion-content-filter-org-functions)
(let ((obj-returned (funcall fn obj plist)))
;; If nil is returned, do not change the org-content (obj)
(when obj-returned (setq obj obj-returned))))
obj)

(defun org-transclusion-content-filter-org-expand-links-function (obj plist)
(when-let ((expand-links (plist-get plist :expand-links)))
(org-element-map obj 'link #'org-transclusion-content-filter-org-expand-links)))
(when (plist-get plist :expand-links)
(org-element-map obj 'link #'org-transclusion-content-filter-org-expand-links)
obj))

(defun org-transclusion-content-filter-org-expand-links (link)
"Convert LINK to an absolute filename.
Expand Down Expand Up @@ -1289,7 +1277,7 @@ is non-nil."
(when-let ((only-contents (plist-get plist :only-contents)))
(org-element-map obj org-element-all-elements
#'org-transclusion-content-filter-org-only-contents
nil nil '(section) nil)))
nil nil 'section nil)))

(defun org-transclusion-content-filter-org-only-contents (data)
"Exclude headlines from DATA to include only contents."
Expand Down
73 changes: 2 additions & 71 deletions test/test-2.0.org
Original file line number Diff line number Diff line change
Expand Up @@ -28,76 +28,7 @@ t/nil will be dropped after remove-at-point

** test

* Bertrand Russell - Wikipedia
:ref:
:link: https://en.wikipedia.org/wiki/Bertrand_Russell
:END:

*Bertrand Arthur William Russell, 3rd Earl Russell* OM FRS[65] (18 May 1872 – 2 February 1970) was a British polymath ande writer. He was born in Monmouthshire into one of the most prominent aristocratic families in the United Kingdom.

#+transclude: [[file:bertrand-russell.org::*Bertrand Russell - Wikipedia]] :level 1

#+begin_export nil
As an academic, he worked in philosophy, mathematics, and logic. His work has had a considerable influence on mathematics, logic, set theory, linguistics, artificial intelligence, cognitive science, computer science (see type theory and type system) and various areas of analytic philosophy, especially logic, philosophy of mathematics, philosophy of language, epistemology and metaphysics.
#+end_export

#+begin_src elisp
If an integer $n$ is greater than 2, then the equation $a^n + b^n = c^n$
has no solutions in non-zero integers $a$, $b$, and $c$.
This is live-sync'ed
#+end_src

Russell was also a public intellectual, historian, social critic, political activist, and Nobel laureate.[66][67] Throughout his life, Russell considered himself a liberal, a socialist and a pacifist, although he later wrote he had "never been any of these things, in any profound sense".[68] This is live sync. As you can see, the edit on the left (transclusion) is copied over to the right (source)

Below is an example of a LaTex environment

\begin{equation}
x=\sqrt{b}
\end{equation}

: fixed width element
: Second line


\begin{align*}
2x - 5y &= 8 \\
3x + 9y &= -12
\end{align*}

** H2
:ref:
:data: data
:END:

#+begin_example
Russell is one of the early 20th century's most prominent logicians,[67] and one of the founders of analytic philosophy, along with his predecessor Gottlob Frege, his friend and colleague G. E. Moore and his student and protégé Ludwig Wittgenstein.
#+end_example

#+begin_verse
Great clouds overhead
Tiny black birds rise and fall
Snow covers Emacs

---AlexSchroeder
Verse can be live-synced
#+end_verse

#+begin: dynamic
Russell with Moore led the British "revolt against idealism".[a] Together with his former teacher A. N. Whitehead, Russell wrote Principia Mathematica, a milestone in the development of classical logic, and a major attempt to reduce the whole of mathematics to logic (see Logicism). Russell's article On Denoting has been considered a "paradigm of philosophy".[70]
#+end:

*** H3
This is content of H3


** Test =org-adapt-indentation=

#+begin_example
(setq org-adapt-indentation nil)
(setq org-adapt-indentation t)
#+end_example

#+transclude: [[id:2022-05-30T203553][Bertrand Russell]]
#+transclude: [[id:2022-05-30T203553][Bertrand Russell]] :only-contents

** Paragraph

Expand Down Expand Up @@ -183,7 +114,7 @@ Temporarily set ~org-transclusion-include-first-section~ to nil
#+transclude: [[file:bertrand-russell.org::*On Denoting]] :level 2 :only-contents :exclude-elements "headline drawer"

** test
#+transclude: [[file:bertrand-russell.org::*On Denoting]] :level 2 :only-contents :exclude-elements "headline drawer"
#+transclude: [[file:bertrand-russell.org::*On Denoting]] :level 2 :only-contents :exclude-elements "headline drawer"

* Disable-auto
** *Hadline
Expand Down

0 comments on commit 0818c25

Please sign in to comment.