From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp1 ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms11 with LMTPS id sOKDFk6Nnl++GgAA0tVLHw (envelope-from ) for ; Sun, 01 Nov 2020 10:26:22 +0000 Received: from aspmx1.migadu.com ([2001:41d0:2:4a6f::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp1 with LMTPS id oHFUEk6Nnl9tVQAAbx9fmQ (envelope-from ) for ; Sun, 01 Nov 2020 10:26:22 +0000 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 7FD389403A6 for ; Sun, 1 Nov 2020 10:26:21 +0000 (UTC) Received: from localhost ([::1]:47690 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1kZAZ1-00062U-4G for larch@yhetil.org; Sun, 01 Nov 2020 05:26:19 -0500 Received: from eggs.gnu.org ([2001:470:142:3::10]:32946) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kZAYe-00062N-RP for emacs-orgmode@gnu.org; Sun, 01 Nov 2020 05:25:56 -0500 Received: from mout.web.de ([212.227.15.3]:35435) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1kZAYc-0004qc-Fs for emacs-orgmode@gnu.org; Sun, 01 Nov 2020 05:25:56 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=web.de; s=dbaedf251592; t=1604226351; bh=PpPw/dxOj6zjGbxYhprWG7LeREun3KHqBv0QuUGtw3A=; h=X-UI-Sender-Class:References:From:To:Cc:Subject:In-reply-to:Date; b=agNGXhFppXhmomGStGQ5KoVM1IWKTxy5wqfqxVLVjXuXrL3s7xyhv5NZpzji2pO+6 00Euz5mTVFcpmy4xU/x8omtyhaGWjhHGhWk2Ue2o9vuiDOk/cK9SzY2n5NT7tu99Ul oLibisFKwIe/4S1HnvSlB8Gx/XQNrlfpmY6x1/tQ= X-UI-Sender-Class: c548c8c5-30a9-4db5-a2e7-cb6cb037b8f9 Received: from fluss ([80.136.28.200]) by smtp.web.de (mrweb005 [213.165.67.108]) with ESMTPSA (Nemesis) id 1M3m9H-1kYtZc0TdT-0012Wo; Sun, 01 Nov 2020 11:25:51 +0100 References: User-agent: mu4e 1.4.13; emacs 27.1 From: "Dr. Arne Babenhauserheide" To: Tom Gillespie Subject: Re: Thoughts on the standardization of Org In-reply-to: Date: Sun, 01 Nov 2020 11:25:47 +0100 Message-ID: <87wnz5e5lg.fsf@web.de> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha256; protocol="application/pgp-signature" X-Provags-ID: V03:K1:99s98bArM7NWsn3FAxRoT+f15KsMWf/JA5PLe6859dw1WycTbpc aEs50+HY6RwZEJ0N0DzQ6KTxHWjDAJSnYgK2NYmFKANYzQ6dkY7q/RMO4BoXZyZ/zZR88nl uOq3JRMpWY79fgfAboo0xsTr6oOIDLDN7gdSiePf7XUTDffH7Akgr3bmum7AyA3Rrmm7z3i sg+HlghRaIJjhfds1CJ8w== X-UI-Out-Filterresults: notjunk:1;V03:K0:0oNLioaseFs=:Dp/A6GiweAJTMrg2ETLbyh +fJFaIWiOBmPtQBaI3Ow51e4XEzJR1x6fzXBJgZ67CXvx4Y+5Enj1+Tr81XYlUyENBg0MMYyY zZKW9p/t+kL4FxQq6y9kN2bwYL6tCc4JTWtEj/abYDQo3MfzmPrv/pKZs2eoyhTzoaM4ybimG 4qVAAmSipCyPUO3LPrbMKjXwsJm2mV2Cqt2QLQoIOv+4eIgxIgMvgDpoSLvFsNDv+4dX4IL7F o1cNleB0WSgDcRQswEsB192uPE6XtTHThBRJ7gxxmBPle36JaKu8ugELUUeV1ArGuy3imF/02 hYsTQ9hsqtErZapDxlBneFjqIAKU1hjVPfgrx/od5+cf+E4XymIAI5AFC43Dvm34joAS7faMD sTGq9dPnJw9Ru2yG3PM9peQT9gFgntCw7lbLiwxPErKfP8bVtJjznuMypSbc3jHhWn8T1tT+f DXvlAvR0CKDE/CZnT9POWxHhLRNqGlXjOLQkMF9r5RaZJB6+9QnDSim6P9mTM/6jBPAb7KXUE RLk+55aRXumhj3CJCRqENU+nRSMcOmoNaVizT93qC8EZUGMFQmfAeqLJMcFmAZeKaXcl0SWke sjGfRRGNAFRRvB5z3EwUDst5179pJ8eBxklw2j0hOh1Uk8+eIxOKtP8VkE13g58i7z8vjKBqn 6JYm0shRWk1DWUvgqi0WVyFp3cX3XhdvQ3eAqFHtX+yu+HQQbJzEPmIVkzdTQIpQ78aJR3v8/ 8wIa/KQ7aRRacLR0PDDX1110b2zUEBKmVWPYkyoEntyD9ksEJ26HMQQ3PCypPKjXeJK/zh+rL I3VDIQytU6+eS2eYDkVDxUSu0iqYgu0a/VPgXp5BwkfTdwkMkQOTi1IMvv/UwpC5c6KaWzx7B 5wsd/KVTYgs5a8PNaaZw== Received-SPF: pass client-ip=212.227.15.3; envelope-from=arne_bab@web.de; helo=mout.web.de X-detected-operating-system: by eggs.gnu.org: First seen = 2020/11/01 05:25:52 X-ACL-Warn: Detected OS = Linux 3.11 and newer [fuzzy] X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Asa Zeren , emacs-orgmode@gnu.org Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: "Emacs-orgmode" X-Scanner: ns3122888.ip-94-23-21.eu Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=web.de header.s=dbaedf251592 header.b=agNGXhFp; dmarc=pass (policy=none) header.from=web.de; spf=pass (aspmx1.migadu.com: domain of emacs-orgmode-bounces@gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=emacs-orgmode-bounces@gnu.org X-Spam-Score: -2.81 X-TUID: EKTxZOtTTDh9 --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable > see discussion on Mauro's thread about > the fact that it is probably just easier to use Emacs directly if you > need to export > to a certain format in a specific way. It is free software after all. I would like to add, that this is pretty easy to do, and also to make independent of the users emacs environment. Here is an example that uses the whole orgmode-babel-latex-html machinery to create derived documents from source-of-truth org-mode files which get exported to a book: https://hg.sr.ht/~arnebab/ews/browse/Hauptdokument/ews30/Makefile.am?rev=3D= b8e3899c6d8b#L121 chargen.tex: chargen.org $(ewstables_SOURCES) kasten-alter-groesse-gewicht.= org ews30setup.el echo yes > $$(tty); Xvfb :3 -screen 0 1024x768x16 & time DISPLAY=3D:3 HOME= =3D@abs_top_srcdir@ @EMACS@ -l "@abs_top_srcdir@/ews30setup.el" --eval '(se= tq vc-follow-symlinks nil)' --eval '(setq org-id-locations-file "@abs_top_b= uilddir@/.org-id-locations")' "$<" -e org-latex-export-to-latex -e kill-ema= cs < $$(tty) >> build.log && rm -f "@abs_top_builddir@/.org-id-locations" Note how this sets the HOME to the sourcedir (so a project-specific .emacs.d setup is used) and loads ews30setup.el at startup for additional customization. Also note the call to Xvfb which avoids showing a graphical Emacs during build. This uses an org-mode file that pulls data from tables in other org-mode files by setting variables for code based on autotools-included datafiles. Here=E2=80=99s an example of pulling the tables into variables: https://hg.sr.ht/~arnebab/ews/browse/Hauptdokument/ews30/chargen.org.in?rev= =3Db8e3899c6d8b#L153 #+begin_src scheme :exports none :results output raw :prologue "(import (sr= fi srfi-1)(ice-9 match)(ice-9 receive))(set! *random-state* (random-state-= from-platform))\n" :tangle chargen.scm :noweb yes :var kernantriebe=3Dtabel= le-kernantriebe :var hautfarbe=3Dtabelle-hautfarbe :var haarfarbe=3Dtabelle= -haarfarbe :var augenfarbe=3Dtabelle-augenfarbe :var darstellung1=3Dtabelle= -darstellung1 :var darstellung2=3Dtabelle-darstellung2 :var kleidung_oben_m= aenner=3Dtabelle-kleidung-fantasy-oben-maenner :var kleidung_unten_maenner= =3Dtabelle-kleidung-fantasy-unten-maenner :var kleidung_oben_frauen=3Dtabel= le-kleidung-fantasy-oben-frauen :var kleidung_unten_frauen=3Dtabelle-kleid= ung-fantasy-unten-frauen :var kleidung_oben_frauen=3Dtabelle-kleidung-fanta= sy-oben-frauen :var kleidung_unten_frauen=3Dtabelle-kleidung-fantasy-unten= -frauen :var namen=3Dtabelle-namen-fantasy-jetzt :var sex=3Dtabelle-sexuali= taet :var stichwort=3Dtabelle-stichwort-fantasy (let () {{{chargen-setup}}} {{{chargen-generic}}} {{{chargen-colors}}} {{{chargen-specifics-fantasy}}} {{{chargen-print-char}}} (chargen-print-char) ) #+end_src Note the {{{=E2=80=A6}}} blocks. Those use literate programming to include blocks defined below, with customized separators: chargen-setup block: https://hg.sr.ht/~arnebab/ews/browse/Hauptdokument/ews= 30/chargen.org.in?rev=3Db8e3899c6d8b#L360 customization of separators: https://hg.sr.ht/~arnebab/ews/browse/Hauptdoku= ment/ews30/chargen.org.in?rev=3Db8e3899c6d8b#L638 # Local Variables: # org-confirm-babel-evaluate: nil # org-export-allow-bind-keywords: t # org-babel-noweb-wrap-start: "{{{" # org-babel-noweb-wrap-end: "}}}" # End: Here=E2=80=99s how it pulls tables: https://hg.sr.ht/~arnebab/ews/browse/Hauptdokument/ews30/chargen.org.in?rev= =3Db8e3899c6d8b#L578 @tabelle_aussehen@ And this is an example of the datafiles that are used as source-of-truth and also directly inluded in the main book as tables: https://hg.sr.ht/~arnebab/ews/browse/Hauptdokument/ews30/tabelle-aussehen.o= rg?rev=3Db8e3899c6d8b#L578 #+tblname: tabelle-hautfarbe | | -5 | direkt | 6 | |------+--------+-------------+----------------| | -3 | blass | rosig | sommersprossig | | -1 | grau | gelblich | elfenbein | | 2 | kupfer | rotbraun | bronze | | 4 | oliv | dunkelbraun | schwarz | | -5/6 | albino | - | fleckig | All this machinery can be invoked without ever seeing Emacs. So yes, the Emacs implementation is the source of truth, and yes, this can be used without requiring people to operate Emacs by simply using Emacs as utility with project-specific setup =E2=80=94 just as you would do= it with a compiler. Best wishes, Arne =2D-=20 Unpolitisch sein hei=C3=9Ft politisch sein ohne es zu merken --=-=-= Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQJEBAEBCAAuFiEE801qEjXQSQPNItXAE++NRSQDw+sFAl+ejS0QHGFybmVfYmFi QHdlYi5kZQAKCRAT741FJAPD6/VtD/9kDHQvYWXytT++92BX70NN7ajGJ3AFaUsG 6G1CPhfiRWSjR8jHT8IrDs0p5V+rWv0nUOLg4jZ9+gxZhVpmlzqy3qgoMCIjQT6W vXfJKQ7yXuKt23BVjhfT38DwAlWFEuzsPHa1qC9FWxgL+E5yblpNbW46/n88qAZ9 W1PKtmC3OS1DItlASwOhOw4/yQy2C0/BfzI4nxhMNUbaBY1B0O1eUyjdhaWbMXQN ZRsEBm0lIAS7A8OF0qB18RrwNP13ImX5n91Kfko8iORUB62gdQSdxR2OmPseT/R+ c0cqitZM3o4H++C2KloVOnIEEKKIb8mVhe4yucfoUVeRr5YAA0A5McF5ilEMWqa8 mMY4U3xtvYxvijemNo0Zr4vprkGTVraYGK167cjyRZKDL6PnxvbpSPUJYuj0iS+r 2lubZBRkULiLsAZSgv1pBhrqchx0DfwlLYAb9BapJM+CHBKdLLKZjLyQFtU69WEN qsS/6LYhDeXaCZHSNJN38aO44lRRPRLOO7G5lRVSiUEqIaH32AbFeVnudc8Nai5H OB67kXxRb4XCmjhKBWGs+iBdBjrDU3zPj7vDxJ9hFJKb39Klk2RY/mj2LfJlk5QR IIBEsvDYQxAb+ctvB5UOyPJifiAiJocnfX4YPqVo31IttEzzOl+1LP3ka8BmhJgH u7UDEYwWPojEBAEBCAAuFiEE3Si95tmHXKvOSosd3M8NswvBBUgFAl+ejS4QHGFy bmVfYmFiQHdlYi5kZQAKCRDczw2zC8EFSESIA/9YR40sgZ30Ykpt5FoJJ7ANgjOH 6UbyFYl0nP8IKLwE9bWxjlhaqGF1zmcZjok5HUlPnhoGheCIXiKLJky1hvH3dEDj vzSD6m5wZ8TwgaU6uembSTSiOgKeO+P977ktohZjgWFYsJxEZHwU24lN5ep4/+T8 3o9hYcvrxqAB7/b/Ew== =MpYv -----END PGP SIGNATURE----- --=-=-=--