From mboxrd@z Thu Jan 1 00:00:00 1970 From: stardiviner Subject: Re: [Discuss] make :tangle header argument respect :dir could save info typing Date: Wed, 20 Mar 2019 13:47:39 +0800 Message-ID: <87o966f66c.fsf@gmail.com> References: <87ftsk9w03.fsf@gmail.com> <87a7id3mf0.fsf@gmail.com> <8736o4h15m.fsf@gmail.com> <87k1hge652.fsf@nicolasgoaziou.fr> <871s3ogfbe.fsf@gmail.com> <87imwy2sd6.fsf@nicolasgoaziou.fr> <87d0n55063.fsf@gmail.com> Reply-To: numbchild@gmail.com Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([209.51.188.92]:39229) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h6U4o-0005zo-Kj for emacs-orgmode@gnu.org; Wed, 20 Mar 2019 01:47:47 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h6U4n-00066l-Dc for emacs-orgmode@gnu.org; Wed, 20 Mar 2019 01:47:46 -0400 Received: from [61.175.244.13] (port=23466 helo=dark.localdomain) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h6U4m-0005yy-Ok for emacs-orgmode@gnu.org; Wed, 20 Mar 2019 01:47:45 -0400 In-reply-to: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: Sean O'Halpin Cc: Org Mode Sean O'Halpin writes: > Hi, > > =:dir= specifies the directory for code execution, i.e. when you hit =C-c C-c= what is the environment in which the code is run? I know currently it specify directory for code execution. I'm saying whether consider extend =:dir= semantic for tangling too. Because the header arguments could becoming very long if I repeat the sub-directory information in executing directory =:dir= and for =:tangle=. Like this: #+begin_src sh :mkdirp yes :dir "data/code/project-name-1" :tangle "data/code/project-name-1/src/project-name/main/App.java" .... #+end_src You see, The "=data/code/project-name-1=" path part is duplicate. And the header arguments is very long. Even though I can put header arguments in ~#+HEADERS:~ line of source block. But still duplicate info inputting, isn't it? > > =:mkdirp= forces creation of the directory for tangle output, i.e. when you =org-babel-tangle= where do you put the output source code? =:mkdirp= already support for auto force create of directory =:dir= now. > > They are quite separate concerns. > > Regards, > Sean > > On Tue, 5 Mar 2019 at 06:03, stardiviner wrote: > > I realized one thing, the combination of ~:mkdir~, ~:dir~, and ~:tangle~ does not work > good enough. Can make ~:tangle~ respect ~:dir~ too. WDYT? > > Here is an example: > > #+begin_src clojure :mkdirp yes :dir "data/code/clj-crawler-demo" :tangle "src/clj_crawler_demo/core.clj" > (ns clj-crawler-demo.core > (:require [clj-http.client :as http]) > (:require [net.cgrand.enlive-html :as html])) > > (html/select > (-> (http/get "https://www.baidu.com") > :body > html/html-snippet) > [:div]) > #+end_src > > Why need this? If ~:tangle~ respect ~:dir~, it will don't need the complete path to > tangled file. And when the source block has other header argument need dir like > ~:file~, this will make ~:tangle~ and other related header arguments shorter. > > If ~:tangle~ does not respect ~:dir~, user need to repeat the path: > > #+begin_src clojure :mkdirp yes :dir "data/code/clj-crawler-demo" :tangle "data/code/clj-crawler-demo/src/clj_crawler_demo/core.clj" > (ns clj-crawler-demo.core > (:require [clj-http.client :as http]) > (:require [net.cgrand.enlive-html :as html])) > > (html/select > (-> (http/get "https://www.baidu.com") > :body > html/html-snippet) > [:div]) > #+end_src > > This is long, I know there is ~#+headers:~ for source block. But reduce info would > be better. I also consider the disadvantage of this change. Some user's existing > source block might be broken. > > Let's level this change for discussion. > > -- > [ stardiviner ] > I try to make every word tell the meaning what I want to express. > > Blog: https://stardiviner.github.io/ > IRC(freenode): stardiviner, Matrix: stardiviner > GPG: F09F650D7D674819892591401B5DF1C95AE89AC3 -- [ stardiviner ] I try to make every word tell the meaning what I want to express. Blog: https://stardiviner.github.io/ IRC(freenode): stardiviner, Matrix: stardiviner GPG: F09F650D7D674819892591401B5DF1C95AE89AC3