Nếu bạn cần mọi thứ để rối vào một tệp duy nhất, bạn có thể sử dụng cách giải quyết cực kỳ khó tin này sử dụng orgmode để biến một bảng thành mã được tạo bằng ngôn ngữ thứ hai (hoặc thứ ba!).
Bảng của bạn (1):
#+tblname: personae-table
| Set | Description | variable | Value |
|-----+--------------------+----------+-------|
| DEP | Fam Med Department | famDep | 23 |
Trình tạo mã của bạn (2):
#+name: python-generate-new-and-set-vars-blocks
#+BEGIN_SRC python :var records=personae-table :exports results :results output verbatim drawer
print("#+name: variables")
print("#+BEGIN_SRC mumps")
print("n " + ",".join(line[3] for line in records))
print("s " +
",".join(
"{}={}".format([line[2], str(line[3])]) for line in records))
print()
print("#+END_SRC")
#+END_SRC
Kết quả của trình tạo của bạn (3):
#+results: python-generate-new-and-set-vars-blocks
:RESULTS:
#+name: variables
#+BEGIN_SRC mumps
n famDep
s famDep=23
#+END_SRC
:END:
Khối giả của bạn biên dịch trước các khối thành rối (4):
#+BEGIN_SRC emacs-lisp :tangle yes :var DUMMY=(progn (org-babel-goto-named-src-block "python-generate-new-and-set-vars-blocks") (org-ctrl-c-ctrl-c))
; run pre-tangle hooks by putting them in the var.
#+END_SRC
Khối đầu ra của bạn làm rối mã được tạo (5):
#+BEGIN_SRC mumps :tangle fixed.m :noweb tangle :padline no
run()
<<variables>>
#+END_SRC
Thực thi đi 4, 1, 2, 3, 5. Tôi không chắc mình nên tự hào hay xấu hổ. Orgmode là tuyệt vời.