Noweb anidado en bloques org src
Sep 06 2020
Tengo los siguientes bloques de código:
El bloque 1 es solo una línea. Este es un MWE. En realidad, tengo varias líneas en el bloque 1.
#+name: block1
#+begin_src python :noweb no :exports none
print("Block 1")
#+end_src
El bloque 2 también se ha reducido por el bien de MWE.
#+name: block2
#+begin_src python :noweb no :exports none
<<block1>>
print("Block 2")
#+end_src
Esto muestra un esqueleto de myfunc. Quiero incluir este esqueleto para dar una descripción general de myfunc.
#+name: block3
#+begin_src python :noweb no :exports code
def myfunc(x):
<<block2>>
#+end_src
Finalmente, esto muestra la especificación completa de myfunc.
#+begin_src python :noweb yes :exports code
<<block3>>
#+end_src
Cómo espero que se vea al exportar
def myfunc(x):
print("Block 1")
print("Block 2")
Lo que realmente parece
def myfunc(x):
<<block1>>
print("Block 2")
¿Cómo puedo hacer que los bloques anidados se expandan completamente cuando uso: noweb yes?
Respuestas
mankoff Sep 06 2020 at 18:28
Su ejemplo funciona si configuro todos los encabezados con :noweb yesy luego solo el último bloque tiene :tangle yes.
Un ejemplo más simple:
- Agregue esto en la parte superior del archivo:
#+PROPERTY: header-args :noweb yes :tangle no :exports code - Elimine todos los argumentos de encabezado de los bloques de código.
- Agregue
:tangle yesencabezado a la "especificación completa".