babel: greatly simplified block exportation

This commit is contained in:
Eric Schulte 2010-02-09 09:50:38 -07:00
parent 7c686465b5
commit db1fe2a619
2 changed files with 11 additions and 19 deletions

View File

@ -73,20 +73,10 @@ results - just like none only the block is run on export ensuring
none ----- do not display either code or results upon export"
(interactive)
(message "org-babel-exp processing...")
(flet ((cond-progress-marker () (when (and progress-marker (< progress-marker (point)))
progress-marker)))
(or (and (re-search-backward org-babel-src-block-regexp (cond-progress-marker) t)
(setq progress-marker (match-end 0))
(org-babel-exp-do-export (org-babel-get-src-block-info) 'block))
(save-excursion
(forward-line 0)
(and (org-babel-where-is-src-block-head)
(goto-char (org-babel-where-is-src-block-head))
(org-babel-exp-do-export (org-babel-get-src-block-info) 'block)))
(and (re-search-backward org-block-regexp (cond-progress-marker) t)
(setq progress-marker (match-end 0))
(match-string 0))
(error "Unmatched block [bug in `org-babel-exp-src-blocks']."))))
(when (member (first headers) org-babel-interpreters)
(save-excursion
(goto-char (match-beginning 0))
(org-babel-exp-do-export (org-babel-get-src-block-info) 'block))))
(defun org-babel-exp-inline-src-blocks (start end)
"Process inline src blocks between START and END for export.

View File

@ -183,13 +183,15 @@ specified in BLOCKS which default to the value of
(setq body (save-match-data (org-remove-indentation body))))
(unless (memq type types) (setq types (cons type types)))
(save-match-data (interblock start (match-beginning 0)))
(if (setq func (cadr (assoc type org-export-blocks)))
(progn
(replace-match (save-match-data
(when (setq func (cadr (assoc type org-export-blocks)))
(let ((replacement (save-match-data
(if (memq type org-export-blocks-witheld) ""
(apply func body headers))) t t)
(apply func body headers)))))
(when replacement
(replace-match replacement t t)
(unless preserve-indent
(indent-code-rigidly (match-beginning 0) (match-end 0) indentation))))
(indent-code-rigidly
(match-beginning 0) (match-end 0) indentation)))))
(setq start (match-end 0)))
(interblock start (point-max))))))