2016-06-26 5 views
0

orgmode에 코드 블록이있는 경우 :exports both 옵션을 사용하여 해당 코드를 내보낼 수 있습니다. html 내보내기에서 orgmode의 코드 블록 평가에 레이블을 지정하는 방법은 무엇입니까?

#+begin_src cpp -n :includes <iostream> :exports both 
std::cout << "Hello there"; 
#+end_src 

#+RESULTS: 
: Hello there 

I는 (C-c C-e h o) HTML로 내보낼

는 결과 블록은 코드 블록을 따른다. 그러나 두 번째 블록이 첫 번째 레이블의 결과라고 단순하게 더 명확하게 표시하고 싶습니다.

내가 지금 같은 위를 수정하는 경우

:
#+begin_src cpp -n :includes <iostream> :exports both 
std::cout << "Hello there"; 
#+end_src 

Output: 

#+RESULTS: 
: Hello there 

는 라벨 "출력 :"나타나지만 결과 블록은 두 번 표시 - 한 번 라벨 전에 한 번 후. 더 나쁜 것은 orgmode ( C-c C-c) 내에서 코드를 실행하면 두 번째 결과 블록이 텍스트 레이블 "Output :"앞에 놓입니다. 나는 이것이 수출에서도 일어나고 있다고 생각한다.

또한 html로 내보낼 때 결과 블록이 examplepre 태그에 배치된다는 사실을 알았습니다. 나는 같은과 CSS를 수정할 수 있다고 생각 :

pre.example::before { content: "Output:"; } 

하지만 불행히도, 이것은이 pre 블록 내부의 텍스트를 배치, 나는 줄 바꿈을 추가 할 수 없습니다.

orgmode 자체 또는 css를 통해 결과 블록에 텍스트 레이블을 추가하는 간단한 방법이 있습니까? 가능하다면 자바 스크립트를 피하고 싶습니다.

답변

1

이 합리적으로 최근의 조직에서 작동합니다 : 내`.emacs` 파일에이 코드를 넣으면

#+name: foo 
    #+begin_src cpp -n :includes <iostream> :exports both 
    std::cout << "Hello there"; 
    #+end_src 

    Output: 

    #+RESULTS: foo 
    : Hello there 
0

는이 같은 이것에 대한 파생 백엔드를 사용할 수 있습니다

(defun my-results (fixed-width contents info) 
    "Transform a results block to make it more visible." 
    (let ((results (org-element-property :results fixed-width)) 
    (format (elt (plist-get info :back-end) 2)) 
    (value (org-element-property :value fixed-width))) 
    (cond 
    ((eq 'html format) 
     (format "<pre>Output:<br> %s</pre>" value))))) 


(org-export-define-derived-backend 'my-html 'html 
    :translate-alist '((fixed-width . my-results))) 

(browse-url (org-export-to-file 'my-html (concat (file-name-base (buffer-file-name)) ".html"))) 
+0

을, I 'Symbol의 함수 정의가 무효이다 : org-export-define-derived-backend '이라는 에러 메시지를 얻는다. 나는 org 모드 버전이'8.2.something '이라는 사실 때문에 그럴 수 있다고 생각했기 때문에 나는'8.3.4'로 업그레이드했다. 업그레이드 후에도이 오류가 발생합니다. –

+0

ox.el에 정의해야합니다. 어쩌면 코드 위에 'ox'를 추가해야 할 수도 있습니다. –

+0

'ox.el'에 추가했을 때 작동하지 않았습니다. –