HTML로 내보낼 때 조직 모드가 src 블록을 무시하도록하는 방법이 있습니까?


13

파일을 html로 내보낼 때 제외하려는 소스 블록이 흩어져있는 조직 문서가 있습니다.

src 블록을 무시할 변수 또는 옵션을 설정할 수 있습니까?

아래 표시된 것처럼 noexport를 사용해 보았지만 코드는 여전히 결과 HTML에 나타납니다.

#+BEGIN_SRC json :noexport:
{ ... }
#+END_SRC

감사!


3
:exports none해야합니다.
mutbuerger

2
@ mutbuerger : 당신은 아마 그로부터 대답을 할 수 있습니까? 실제로 선호되는 솔루션입니다. 헤더 인수 기본값과 결합하여 모든 소스 블록의 내보내기를 단 하나의 설정만으로 제어 할 수 있으며 emacs lisp 코드는 없습니다.
티모르

답변:


11

의존하지 않고 org-export-filter-src-block-functions더 많은 유연성을 제공 하는 솔루션 은 :exports헤더 인수를 사용하는 것입니다 (참조 (info "(org) Exporting code blocks")). 인수를 설정하면 :exports none코드 블록이나 결과가 내보내지지 않습니다.

백엔드 특정 규칙을 선호하는 경우 조건부를 인수로 사용할 수 있습니다.

#+begin_src elisp :exports (when (eq org-export-current-backend 'html) "none")
(+ 1 2)
#+end_src

조직 파일의 모든 src 블록을 제외해야하는 경우 허용 된 솔루션이 작동하지만 특정 src 블록 만 제외해야하는 경우이 솔루션이 작동합니다. 추가 기능을 만들지 않고도보다 사용자 정의 할 수 있습니다.
Emacs 사용자

산뜻한! lisp 코드를 헤더 인수 값으로 사용합니까?
JeanPierre

확실하지는 않지만 살펴보면 org-babel-merge-params이것이 분명합니다. 의 경우 :results에도 명시가 (if (stringp value) value (eval value t))어떤 이유에서 ....
mutbuerger

9

조직 문서의 12.15 섹션을 기반으로 합니다.

(defun my-html-filter-src-blocks (text backend info)
  "Remove source blocks from html export."
  (when (org-export-derived-backend-p backend 'html)
    "[removed source block]"))

(add-to-list 'org-export-filter-src-block-functions
         'my-html-filter-src-blocks)

"[제거 된 소스 블록]"을 빈 문자열로 바꾸십시오!


이것은 전 세계적으로도 효과적입니다. 감사!
Grassdog
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.