| 
					
				 | 
			
			
				@@ -2075,8 +2075,8 @@ Point is at buffer's beginning when BODY is applied." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;; should be added here. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;; As of now, functions operating on headlines, include keywords, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-;; links, macros, src-blocks, tables and tables of contents are 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-;; implemented. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+;; links, macros, references, src-blocks, tables and tables of 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+;; contents are implemented. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;;;; For Headlines 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -2363,6 +2363,56 @@ INFO is a plist holding export options." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (format "%s" value))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+;;;; For References 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+;; `org-export-get-ordinal' associates a sequence number to any object 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+;; or element. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+(defun org-export-get-ordinal (element info &optional within-section predicate) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  "Return ordinal number of an element or object. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ELEMENT is the element or object considered.  INFO is the plist 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+used as a communication channel. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+When optional argument WITHIN-SECTION is non-nil, narrow counting 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+to the section containing ELEMENT. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+Optional argument PREDICATE is a function returning a non-nil 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+value if the current element or object should be counted in.  It 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+accepts one argument: the element or object being considered. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+This argument allows to count only a certain type of objects, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+like inline images, which are a subset of links \(in that case, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+`org-export-inline-image-p' might be an useful predicate\)." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  (let ((counter 0) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        (type (car element)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ;; Determine if search should apply to current section, in 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ;; which case it should be retrieved first, or to full parse 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ;; tree.  As a special case, an element or object without 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ;; a parent headline will also trigger a full search, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ;; notwithstanding WITHIN-SECTION value. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        (data 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         (let ((parse-tree (plist-get info :parse-tree))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           (if within-section 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               (let ((parent (plist-get (plist-get info :inherited-properties) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        :begin))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                 (if (not parent) parse-tree 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   (org-element-map 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    parse-tree 'headline 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    (lambda (el local) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      (when (= (org-element-get-property :begin el) parent) el)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    info 'first-match))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+             parse-tree)))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ;; Increment counter until ELEMENT is found again. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (org-element-map 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     data type 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     (lambda (el local) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       (cond 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ((and (functionp predicate) (funcall predicate el))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ((equal element el) (1+ counter)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        (t (incf counter) nil))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     info 'first-match))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;;;; For Src-Blocks 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 ;; `org-export-handle-code' takes care of line numbering and reference 
			 |