0

最小限の例

:noweb 拡張子 (?) を使用して、読み書き可能なプログラミング手法を使用して、org-mode でプログラムを作成しました。典型的なコードは次のようになります。

* Section

In order to do foo with bar, we define a function ~do_foo~, which initializes object of a class ~BarParser~ with a value of parameter of the type ~bar_t~.

#+name: section_function_blockname
#+begin_src cpp
void do_foo
( bar_t bar
, <<additional_parameter_to_do_foo>>
) {
  BarParser barParser(bar);

  <<section_function_do_fooBody>>
} 
#+end_src

The function will require additional parameter for the purposes of the /FizzBazz/ module. We will discuss them in a [[*Decoding FizzBazz messages][later_section]].

プログラムの内容全体が単一のファイルに保存され、その上部には#+SETUP: theme-readtheorg.setup. HTML は正しく生成されますが、必要なコンテンツは生成されないため、セットアップ ファイルは問題ではありません。

問題

コードを生成するには、 を使用します(org-babel-tangle)。これにより、:tangle パラメータを持つすべてのブロックに期待されるすべてのファイルが生成されます。ファイルには期待どおりのコンテンツが含まれており、コードはコンパイルされ、本来の方法で実行されます。

コードに沿って公開したいドキュメントを生成するには、(org-html-export-to-html). 私が予想していたのは、次のいずれかです。

  1. これ<<tags>>は理想的ではありませんが、少なくとも許容できる期待値に置き換えられます。
  2. これ<<tags>>は、Emacs で組織ファイルを編集するときに、表示されたままのままになります。

ただし、への出力(org-html-export-to-html)はまったく異なり、予期しないものです。すべて<<tags>>が改行文字に置き換えられます。これにより、生成されたコードまたは元の組織ファイルを見ないと理解できない誤ったコンテンツを持つすべてのコードブロックが残り、別のファイルにあるドキュメントの目的を完全に無効にします。一緒に仕事をしているすべての人に Emacs に切り替えて、ドキュメントを閲覧できるようにすることはできません!

質問

上記のように、問題は noweb <> 内の呼び出しによって処理されていること(org-html-export-to-html)です。この問題に関して私が持っている質問は次のとおりです。

(org-html-export-to-html)noweb を取り除かずに、ソースブロックの内容をそのままにしておくにはどうすればよいです<<tags>>か?

4

1 に答える 1