Intento canalizar la salida de un bloque fuente al siguiente bloque fuente como entrada estándar. Aquí un ejemplo de lo que tengo hasta ahora:
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
Mis problemas con esto son:
Tengo que crear manualmente el resultado del primer bloque presionando
C-c C-c
el resultado debe incluirse en org-buffer (de lo contrario, no se necesita una salida grande)
el resultado debe ser nombrado manualmente
¿Hay una solución alternativa o una mejor manera de hacer esto?
Tuve un caso de uso similar y lancé un exportador simple que me permitió usar json-mode para la fuente / entrada de stdin:
Luego, agregue
(passthrough . t)
a org-babel-list-langauges, y aquí está en acción:fuente
Llame a un bloque src de otro usando referencias "noweb" (ver
(info "(org) Noweb reference syntax")
):fuente
cat
en el shell fue solo un simple ejemplo.Otra forma de resolver este problema es nombrar la entrada como un bloque EJEMPLO o CITA si la entrada es realmente estática. Algo como esto:
o un EJEMPLO si lo prefiere:
luego haga referencia a esos bloques nombrados en el código que desea evaluar; Aquí usamos el ejemplo de CITA:
Como el valor del
some-json
bloque es estático, no hay necesidad de evaluarlo. La evaluación delthe-code
bloque da:fuente