J'essaie de diriger la sortie d'un bloc source vers le bloc source suivant en tant qu'entrée standard. Voici un exemple de ce que j'ai jusqu'à présent:
Create stdin data:
#+header: :exports code
#+header: :results output
#+begin_src sh
echo "That goes to the next"
#+end_src
#+name: piped
#+RESULTS:
: That goes to the next
Use "piped" as stdin:
#+header: :exports results
#+header: :stdin piped
#+header: :results output
#+begin_src sh
VALUE=$(cat)
echo "I got:"
echo "$VALUE"
#+end_src
Mes problèmes avec ceci sont:
Je dois créer manuellement le résultat du premier bloc en appuyant sur
C-c C-c
le résultat doit être inclus dans org-buffer (une sortie importante n'est pas nécessaire sinon)
le résultat doit être nommé manuellement
Existe-t-il une solution de contournement ou une meilleure façon de procéder?
J'ai eu un cas d'utilisation similaire et j'ai lancé un simple exportateur qui m'a permis d'utiliser le mode json pour la source / entrée de stdin:
Ensuite, ajoutez
(passthrough . t)
à org-babel-list-langauges, et le voici en action:la source
Appelez un bloc src à partir d'un autre en utilisant des références "noweb" (voir
(info "(org) Noweb reference syntax")
):la source
cat
dans le shell n'était qu'un exemple simple.Une autre façon de résoudre ce problème consiste à nommer l'entrée en tant qu'EXEMPLE ou bloc QUOTE si l'entrée est vraiment statique. Quelque chose comme ça:
ou un EXEMPLE si vous préférez:
référencez ensuite les blocs nommés dans le code que vous souhaitez évaluer; nous utilisons ici l'exemple QUOTE:
La valeur du
some-json
bloc étant statique, il n'est pas nécessaire de l'évaluer. Lethe-code
bloc d' évaluation donne:la source