org src 블록에 중첩 된 noweb

Sep 06 2020

다음 코드 블록이 있습니다.

블록 1은 한 줄입니다. 이것은 MWE입니다. 실제로 블록 1에는 여러 줄이 있습니다.

#+name: block1
#+begin_src python :noweb no :exports none
print("Block 1")
#+end_src

MWE를 위해 블록 2도 축소되었습니다.

#+name: block2
#+begin_src python :noweb no :exports none
<<block1>>
print("Block 2")
#+end_src

이것은 myfunc의 골격을 보여줍니다. myfunc에 대한 개요를 제공하기 위해이 골격을 포함하고 싶습니다.

#+name: block3
#+begin_src python :noweb no :exports code
def myfunc(x):
    <<block2>>
#+end_src

마지막으로 myfunc의 전체 사양을 보여줍니다.

#+begin_src python :noweb yes :exports code
<<block3>>
#+end_src

내보낼 때 예상되는 모습

def myfunc(x):
    print("Block 1")
    print("Block 2")

실제 모습

def myfunc(x):
    <<block1>>
    print("Block 2")

: noweb yes를 사용할 때 중첩 된 블록이 완전히 확장되도록하려면 어떻게해야합니까?

답변

mankoff Sep 06 2020 at 18:28

귀하의 예제는 모든 헤더를 설정 :noweb yes하고 마지막 블록에만 :tangle yes.

더 간단한 예 :

  1. 파일 상단에 다음을 추가하십시오. #+PROPERTY: header-args :noweb yes :tangle no :exports code
  2. 코드 블록에서 모든 헤더 인수를 제거하십시오.
  3. :tangle yes"전체 사양"에 헤더를 추가합니다 .