2014-02-15 2 views
2

Мой init.el динамически генерируется из init.org. Я также создаю документацию init.html из файла init.org.Вызов интерактивных функций последовательно в Emacs

Я могу вручную позвонить M-x org-babel-tangle и M-x org-export-as-html без проблем, но мне нужна одна функция, которая делает то и другое.

я написал следующую функцию:

(defun export-init-org() 
    "Generate init.html and init.html from the current init.org file." 
    (interactive) 
    (call-interactively 'org-export-as-html) 
    (call-interactively 'org-babel-tangle)) 

Это не работает. Он создает файл init.html, но не файл init.el. Я попробовал переупорядочить звонки:

(defun export-init-org() 
    "Generate init.html and init.html from the current init.org file." 
    (interactive) 
    (call-interactively 'org-babel-tangle) 
    (call-interactively 'org-export-as-html)) 

Это работает как ожидалось, создаются как init.el, так и init.html. Почему это? Что случилось с моей первой функцией?

ответ

1

У меня нет org-export-as-html в моей организации org. Я подозреваю, что вы используете более старую версию. Однако, я думаю, что то, что вы видите, является следствием побочных эффектов файла org-export-as-html. Если эта функция заставляет Emacs переключать буферы, вы в конечном итоге вызываете org-babel-tangle по результату html, а не в источник org. Это, конечно, не работает. Попробуйте это вместо того, чтобы подтвердить:

(defun export-init-org() 
    "Generate init.html and init.html from the current init.org file." 
    (interactive) 
    (save-excursion ;; restores original buffer after running 
    (call-interactively 'org-export-as-html)) 
    (call-interactively 'org-babel-tangle)) 
+0

Я использую акции орг-режим из Emacs 24.3.1 и орг-экспорт в HTML-определяется в орг-html.el. org-версия - «7.9.3f». Вы порекомендовали бы модернизацию? –

+0

'save-selected-window' исправляет проблему, как описано. Благодаря! Я удивлен, хотя, потому что я не заметил, что буфер меняется при вызове функции. –

+0

Функции экспорта изменены недавно, может быть, версия 8? Вам не нужно обновлять, но пока вы не заметите это, если у вас возникнут проблемы с экспортом. – Tyler

Смежные вопросы