Re: [O] How to get list item depth within the exporter framework?
On 2015-07-27, at 19:51, Richard Lawrence richard.lawre...@berkeley.edu wrote: Hi Marcin, Marcin Borkowski mb...@mbork.pl writes: as I mentioned, I'm writing a simple exporter. However, I stumbled on something apparently simple. How to get the current list level within org-whatever-item transcoder? I ran into this problem once; the solution I found was to just walk up the AST via org-export-get-parent until you run out of parents. Something like this should work (untested, and probably needs to be tweaked, as my Elisp is a little rusty): (defun find-depth (element) Find the depth of a (list) element during export. (let ((parent (org-export-get-parent element))) (case (org-element-type parent) ('item (1+ (find-depth parent))) ('plain-list (find-depth (org-export-get-parent parent))) (t 1 Hope that helps! Sure it does! I'm ashamed I didn't think about this myself. Here's my take (I assume that ITEM is a plain-list item): --8---cut here---start-8--- (defun org-item-get-level (item) Get the level of ITEM, which should be an item in a plain list. Levels are indexed from 0. (let ((pparent (org-element-property :parent (org-element-property :parent item (if (eq (org-element-type pparent) 'item) (1+ (org-item-get-level pparent)) 0))) --8---cut here---end---8--- It is a bit less general (and probably a bit faster), but for a plain-list item transcoder the generality doesn't matter. Best, Richard Best, -- Marcin Borkowski http://octd.wmi.amu.edu.pl/en/Marcin_Borkowski Faculty of Mathematics and Computer Science Adam Mickiewicz University
Re: [O] How to get list item depth within the exporter framework?
Hi Marcin, Marcin Borkowski mb...@mbork.pl writes: as I mentioned, I'm writing a simple exporter. However, I stumbled on something apparently simple. How to get the current list level within org-whatever-item transcoder? I ran into this problem once; the solution I found was to just walk up the AST via org-export-get-parent until you run out of parents. Something like this should work (untested, and probably needs to be tweaked, as my Elisp is a little rusty): (defun find-depth (element) Find the depth of a (list) element during export. (let ((parent (org-export-get-parent element))) (case (org-element-type parent) ('item (1+ (find-depth parent))) ('plain-list (find-depth (org-export-get-parent parent))) (t 1 Hope that helps! Best, Richard
Re: [O] How to get list item depth within the exporter framework?
On 2015-07-27, at 10:46, Marcin Borkowski mb...@mbork.pl wrote: On 2015-07-27, at 10:17, Marcin Borkowski mb...@mbork.pl wrote: Hi all, as I mentioned, I'm writing a simple exporter. However, I stumbled on something apparently simple. How to get the current list level within org-whatever-item transcoder? By inspecting values of org-whatever-item's arguments, I found out one way: by checking the amount of indentation in :bullet. Is it reliable? Ooops, my bad. Indentation is stripped from :bullet. So, what do I do? Best, -- Marcin Borkowski http://octd.wmi.amu.edu.pl/en/Marcin_Borkowski Faculty of Mathematics and Computer Science Adam Mickiewicz University
Re: [O] How to get list item depth within the exporter framework?
On 2015-07-27, at 10:17, Marcin Borkowski mb...@mbork.pl wrote: Hi all, as I mentioned, I'm writing a simple exporter. However, I stumbled on something apparently simple. How to get the current list level within org-whatever-item transcoder? By inspecting values of org-whatever-item's arguments, I found out one way: by checking the amount of indentation in :bullet. Is it reliable? TIA, Best, -- Marcin Borkowski http://octd.wmi.amu.edu.pl/en/Marcin_Borkowski Faculty of Mathematics and Computer Science Adam Mickiewicz University