Noweb aninhado em blocos org src
Sep 06 2020
Eu tenho os seguintes blocos de código:
O bloco 1 é apenas uma linha. Este é um MWE. Na realidade, tenho várias linhas no bloco 1.
#+name: block1
#+begin_src python :noweb no :exports none
print("Block 1")
#+end_src
Bloco 2 também foi reduzido por causa do MWE.
#+name: block2
#+begin_src python :noweb no :exports none
<<block1>>
print("Block 2")
#+end_src
Isso mostra um esqueleto de myfunc. Quero incluir este esqueleto para dar uma visão geral do myfunc.
#+name: block3
#+begin_src python :noweb no :exports code
def myfunc(x):
<<block2>>
#+end_src
Finalmente, isso mostra a especificação completa do myfunc.
#+begin_src python :noweb yes :exports code
<<block3>>
#+end_src
Como espero que pareça quando exportado
def myfunc(x):
print("Block 1")
print("Block 2")
O que realmente parece
def myfunc(x):
<<block1>>
print("Block 2")
Como posso fazer com que os blocos aninhados se expandam completamente quando eu uso: noweb yes?
Respostas
mankoff Sep 06 2020 at 18:28
Seu exemplo funcionará se eu definir todos os cabeçalhos com :noweb yese somente o último bloco tiver :tangle yes.
Um exemplo mais simples:
- Adicione isso no topo do arquivo:
#+PROPERTY: header-args :noweb yes :tangle no :exports code - Remova todos os argumentos de cabeçalho dos blocos de código.
- Adicione o
:tangle yescabeçalho à "especificação completa".
O que significa um erro “Não é possível encontrar o símbolo” ou “Não é possível resolver o símbolo”?
George Harrison ficou chateado por suas letras de 'Hurdy Gurdy Man' de Donovan não terem sido usadas