Noweb annidato nei blocchi org src
Sep 06 2020
Ho i seguenti blocchi di codice:
Il blocco 1 è solo una riga. Questo è un MWE. In realtà, ho diverse righe nel blocco 1.
#+name: block1
#+begin_src python :noweb no :exports none
print("Block 1")
#+end_src
Anche il blocco 2 è stato ridotto per il bene di MWE.
#+name: block2
#+begin_src python :noweb no :exports none
<<block1>>
print("Block 2")
#+end_src
Questo mostra uno scheletro di myfunc. Voglio includere questo scheletro per dare una panoramica di myfunc.
#+name: block3
#+begin_src python :noweb no :exports code
def myfunc(x):
<<block2>>
#+end_src
Infine, questo mostra le specifiche complete di myfunc.
#+begin_src python :noweb yes :exports code
<<block3>>
#+end_src
Come mi aspetto che appaia una volta esportato
def myfunc(x):
print("Block 1")
print("Block 2")
Come appare effettivamente
def myfunc(x):
<<block1>>
print("Block 2")
Come posso far espandere completamente i blocchi nidificati quando uso: noweb yes?
Risposte
mankoff Sep 06 2020 at 18:28
Il tuo esempio funziona se imposto tutte le intestazioni con :noweb yese solo l'ultimo blocco ha :tangle yes.
Un esempio più semplice:
- Aggiungi questo all'inizio del file:
#+PROPERTY: header-args :noweb yes :tangle no :exports code - Rimuove tutti gli argomenti dell'intestazione dai blocchi di codice.
- Aggiungi
:tangle yesintestazione alla "specifica completa".