我正在尝试编写一个 elisp 函数来从 org 文件中提取文本。具体来说,我希望能够将 org-table 中的值转换为列表列表,以便我可以在启动时从我的 .emacs 之外的文件中填充 org-feeds-alist。
我的功能如下所示:
(defun·org-config-parse-get-table-rows·(file)
"Return·table·rows·minus·header"
(with-temp-buffer
··(insert-file-contents·file)
··(cddr·(org-element-map·(org-element-parse-buffer)·'(table-row)·'identity))))
(defun·org-config-parse-get-table-cells·(file)
··(org-element-map·(org-config-parse-get-table-rows·file)·'(table-cell)·'identity))
我正在使用下表对其进行测试:
|·Name···········|·Fav·Color·|·Age·|·Sex····|
|----------------+-----------+-----+--------|
|·Jim············|·Blue······|··19·|·Male···|
|·Jane···········|·Green·····|··18·|·Female·|
|·Ort'hlrothl'gr·|·Unkown····|·-29·|·???····|
我能够检索表中单个单元格的文本的最接近的是以下内容:
(car·(last·(car·(org-config-parse-get-table-cells·"test.org"))))
评估为:
#("Jim" 0 3
(:parent
...
给定 org-element-parse-buffer 返回的 org 元素列表,将这些元素的文本提取为字符串的正确方法是什么?
提前致谢。