Wiem, że to trochę mniej ważne, ale mnie to dręczyło. Używam trybu Org dla projektu i raczej często eksportuję do formatu PDF lub HTML i zostawia mój katalog zaśmiecony plikami PDF, Tex i HTML. Czy istnieje sposób na eksportowanie w trybie Org do innej lokalizacji, być może podkatalog o nazwie ./exports?Emacs Org-mode - Eksport do innego katalogu?
Odpowiedz
Oprócz wykorzystywania publikacji modyfikując zmienną org-publish-project-alist
jak @ user1248256 zasugerował, można bezpośrednio określić zmienną org-export-publishing-directory
wewnątrz pliku:
#+bind: org-export-publishing-directory "./exports"
* This is a test headline
Some text here. This should be exported to the "./exports" directory.
Po wyeksportowaniu zostanie umieszczony w katalogu "Export", ale tylko jeśli ten katalog istnieje. Jeśli nie istnieje, pojawi się komunikat o błędzie na konsoli.
Dzięki. To bardziej bezpośrednio odpowiada na moje pytanie, jak sądzę. Jest jednak jedna dziwna rzecz. Jeśli wyeksportuję do HTML lub ASCII, plik zostanie przeniesiony do ./exports, ale jeśli wyeksportuję do TEX (lub PDF), pozostanie w bieżącym katalogu. Może to coś w mojej konfiguracji? – tmilktoast
Właściwie to właśnie widziałem dzisiaj, że to pytanie było na liście dyskusyjnej [org-mode mailing list] (http://lists.gnu.org/archive/html/emacs-orgmode/2012-03/msg00264.html) - chyba że to byłeś tym, który opublikowałeś? – cm2
Nie, nie byłem ja. Będę mieć oko na ten wątek. – tmilktoast
Uważam, że można to uzyskać za pomocą org-publish. Dodaj do ciebie plik konfiguracyjny emacs coś takiego:
(setq org-publish-project-alist
'(("html"
:base-directory "~/org/"
:base-extension "org"
:publishing-directory "~/org/exports"
:publishing-function org-publish-org-to-html)
("pdf"
:base-directory "~/org/"
:base-extension "org"
:publishing-directory "~/org/exports"
:publishing-function org-publish-org-to-pdf)
("all" :components ("html" "pdf"))))
Eval tego wyrażenia (lub uruchom ponownie emacs), naciśnij C-c C-e X
w org-mode, a następnie wybierz projekt z listy.
można uzyskać więcej informacji na http://orgmode.org/worg/org-tutorials/org-publish-html-tutorial.html i http://orgmode.org/manual/Publishing.html#Publishing
Możesz również użyć tego rodzaju konfiguracji, aby wyeksportować części pliku trybu org za pomocą właściwości: http://orgmode.org/worg/org-tutorials/org-latex-export.html#sec-9 – cm2
Dzięki. Mam zamiar spróbować tego w końcu. Myślałem o próbach użycia org-publish, ale nie byłem pewien, czy to pasuje do tego, co robiłem. Nadal się uczę. – tmilktoast
To prawdopodobnie nie było to możliwe, gdy sprawa została po raz pierwszy poprosił, ale najprostszym rozwiązaniem byłoby, aby dodać katalog do nieruchomości :EXPORT_FILE_NAME:
:
:PROPERTIES:
:EXPORT_FILE_NAME: exports/<filename>
:END:
Podobnie jak w przyjętym odpowiedzi, katalog musi istnieć aby to zadziałało.
Czy próbowałeś tego? To nie działa dla mnie. Próbuję wyeksportować plik PDF do określonego katalogu na wyższym poziomie. Czytałem gdzie indziej, że jest to tylko dla eksportu subtree, a nie całego pliku. Jest to ciągle aktualne? – Jesse
Oryginalny pytanie dotyczyło eksportu Org-plików, podczas gdy większość odpowiedzi Powyższe rzeczywiście mamy do czynienia z publikowania, która jest inna koncepcja.
Uważam, że najlepszym sposobem na rozwiązanie problemu spowodowanego przez OP jest dodanie następujących do emacs inicjalizacji pliku (.emacs):
(defadvice org-export-output-file-name (before org-add-export-dir activate)
"Modifies org-export to place exported files in a different directory"
(when (not pub-dir)
(setq pub-dir "exported-org-files")
(when (not (file-directory-p pub-dir))
(make-directory pub-dir))))
PS:
Rozumiem 5-letnie pytanie może już nie mieć związku z OP, ale mam nadzieję, że ludzie szukający podobnych rzeczy skorzystają z tej odpowiedzi.
Jest to niewielka modyfikacja fragmentu kodu znalezione w http://rwx.io/blog/2016/03/11/Org-Export-Configurations/
Oryginalny znaleźć rozwiązanie w powyższym blogu pozwala na utworzenie różnych katalogach dla każdego eksportowanego pliku PDF. Jeśli jednak celem jest uniknięcie sytuacji, w której katalog "jest zaśmiecony plikami PDF, Tex i HTML", myślę, że najlepiej jest mieć tylko jeden katalog zawierający wyeksportowane pliki wszystkich formatów, co jest istotą modyfikacji, którą zaoferowałem. powyżej.
Edycja: manualna emacs (https://www.gnu.org/software/emacs/manual/html_node/elisp/Porting-old-advice.html#Porting-old-advice) stwierdza, że mechanizm defadvice
został przedawniony przez nowe advice-add
.Więc tutaj jest snipet kod z takim samym skutkiem, stosując zalecaną advice-add
:
(defun org-export-output-file-name-modified (orig-fun extension &optional subtreep pub-dir)
(unless pub-dir
(setq pub-dir "exported-org-files")
(unless (file-directory-p pub-dir)
(make-directory pub-dir)))
(apply orig-fun extension subtreep pub-dir nil))
(advice-add 'org-export-output-file-name :around #'org-export-output-file-name-modified)
jak wcześniej, to powinno być umieszczone w pliku .emacs.
Zobacz rozwiązanie http://emacacs.stackexchange.com/a/7989/8541 dla czystego rozwiązania, które eksportuje do podfolderu. – Mark