Apakah mungkin untuk org-bable-kusut file org dari baris perintah?

15

Saya ingin mengelola kusut file org saya dengan Makefile. Padahal saya tidak bisa menemukan informasi bagaimana cara mengurai file dari command line.

terlihat payah
sumber

Jawaban:

12

Anda dapat menggunakan sesuatu seperti:

emacs --batch --eval "(require 'org)" --eval '(org-babel-tangle-file "file-to-tangle.org")'

(Kutipan shell itu dimaksudkan untuk Bash, sesuaikan jika Anda menggunakan shell yang berbeda.)

EDIT: Terima kasih kepada @SkydiveMike untuk menunjukkan saya keliru telah menulis org-babel-tanglebukan org-babel-tangle-file.

Omar
sumber
Saya mencobanya dan menerima Wrong type argument: stringp, nilpesan kesalahan, ada saran tentang apa yang mungkin saya lakukan salah?
lookyhooky
1
Saya juga perlu -Lflag untuk menambahkan direktori saat ini ke path load, dan -l file-to-tangle.orguntuk memuat file sebelum mencoba untuk kusut.
lookyhooky
8
emacs --batch -l org foo.org -f org-babel-tangleatau emacs --batch -l org --eval '(org-babel-tangle-file "foo.org")'bekerja untuk saya.
xuchunyang
1
Untuk skrip Bash, ini berguna:emacs --batch -l org --eval "(org-babel-tangle-file \"$1\")"
pentavalentcarbon
1
Untuk kelengkapan, solusi oleh xuchunyang berfungsi (dibandingkan dengan aslinya) karena memiliki file org-babel-tangle (yang menerima argumen FILE) dibandingkan dengan org-babel-tangle yang berfungsi pada buffer saat ini.
SkydiveMike