Грамотное программирование с использованием org-babel

Я нахожусь в грамотной программе, используя org-babel. Мой источник структурирован так,

-imports
-utility fns
-game structure
 - detailed explanations

Это нормальная структура кода, что я хотел бы сделать, это перевести объяснения утилиты fns до конца, чтобы она не отображалась сначала в сгенерированном PDF файле. Теперь это можно сделать с помощью расширения noweb, но проблема в том, что у вас есть много маленьких функций для каждого из них, которые я должен добавить src_block с уникальным именем, прокручиванием вниз по файлу и добавлением ссылки на это в файле, который действительно раздражает, Есть ли способ назвать все src_blocks в разделе? скажем, весь код в этом разделе переходит в блок A.

Ответы

Ответ 1

Вы можете дать несколько кусков с тем же именем. Например, я создаю файл .emacs с org-клубом и в верхней части файла org, у меня есть шаблон-шаблон, который выглядит примерно так:

#+begin_src emacs-lisp :tangle "/path/to/.emacs" :comments both :noweb tangle
<<generated-file-warning>
<<includes>>
<<definitions>>
<<settings>>
<<generated-file-warning>
#+end_src

Под этим, у меня есть схема с исходными блоками, например:

* extensions
** yasnippet

#+name: early-includes
#+begin_src emacs-lisp
(require 'yasnippet)
(yas/initialize)
#+end_src

#+name: settings
#+begin_src emacs-lisp
(yas/load/directory "/path/to/my/snippets")
#+end_src

Примечание. для более старых версий org-mode, вам может потребоваться использовать #+srcname: вместо #+name:

Вы также можете создать свойство с именем noweb-ref, которое применяет одно и то же имя ко всем исходным блокам в поддереве.