Минимальный пример
Я написал программу в режиме org, используя грамотную технику программирования с расширением: noweb (?). Типичный фрагмент кода выглядит так:
* 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. У файлов есть содержимое, которое я ожидаю от них, и код компилируется и запускается должным образом.
Чтобы сгенерировать документацию, я хотел бы опубликовать sh вместе с кодом, я использую (org-html-export-to-html)
. Я ожидал, что либо:
-
<<tags>>
будет заменено их ожидаемым значением, что не было бы идеальным, но, по крайней мере, приемлемым, либо <<tags>>
останется нетронутым в том виде, в каком они представлены, при редактировании org-файла с помощью Emacs.
Однако вывод (org-html-export-to-html)
совершенно другой и неожиданный - все <<tags>>
заменяются с символом новой строки. Это оставляет мне все блоки кода с неправильным содержанием, которое невозможно понять, не глядя на сгенерированный код или исходный org-файл, что полностью противоречит цели документации, находящейся в отдельном файле. Я не могу заставить всех, с кем я работаю, переключиться на Emacs, чтобы они могли просматривать документацию!
Вопрос
Как указано выше, проблема в том, что noweb <> обрабатывается каким-то вызовом внутри (org-html-export-to-html)
. В связи с этой проблемой у меня возникает следующий вопрос:
Как я могу заставить (org-html-export-to-html)
оставить содержимое исходных блоков таким, как оно есть, не удаляя noweb <<tags>>
?