org-mode babel纠结可以产生leiningen目录吗?

时间:2013-08-18 17:32:35

标签: clojure org-mode leiningen literate-programming org-babel

我们希望自动生成Leiningen项目树   完全来自组织模式的babel文件。我们希望这样做,以便我们   也可以通过创建漂亮的排版文档   org-latex-export-to-pdf。我们想要的不仅仅是完全识字   从org-mode在Clojure中编程。

以下命令:

$ lein new ex1

生成一个如下所示的树:

ex1
ex1/.gitignore
ex1/doc
ex1/doc/intro.md
ex1/project.clj
ex1/README.md
ex1/resources
ex1/src
ex1/src/ex1
ex1/src/ex1/core.clj
ex1/test
ex1/test/ex1
ex1/test/ex1/core_test.clj

我们想通过跑步来做同样的事情 org-babel-tangle,而不是更多,在我们的组织模式缓冲区中 emacs的。

出现了一个困难:tangle很乐意制作 现有子目录中的文件,如srctest,如果子目录不存在,似乎不愿意生成子目录。这意味着我们必须 通过其他方式创建目录结构 - 除非我们可以 得到tangle为我们做这件事,这就是主题 StackOverflow 问题。

Leiningen创建的目录结构中有六个文件。我可以删除它们并使用BEGIN_SRC块从我的组织文件重新创建它们,如下所示

#+BEGIN_SRC clojure :tangle ./ex1/src/ex1/core.clj
(ns ex1.core)

(defn foo
  "I don't do a whole lot."
  [x]
  (println x "Hello, World!"))
#+END_SRC

特别注意子目录路径的名称

#+BEGIN_SRC clojure :tangle ./ex1/src/ex1/core.clj

如果我们的目录结构已经存在,一切都很好。组织模式的tangle会 创建或更新上述所有六个文件,并在任何现有目录中创建新文件。我们不知道该怎么做 获取tangle来生成目录;它抱怨没有这样的 。目录

如果您想了解更多详情,可以找到所需.org文件的副本here

2 个答案:

答案 0 :(得分:6)

可以在begin_src部分使用以下标题

:mkdirp yes

答案 1 :(得分:0)

FYI现在有一个使用基于组织的项目的lein项目模板:

https://github.com/thi-ng/thing-babel