Я обдумываю улучшенную индексацию страниц Info с помощью Sphinx. Но для того, чтобы сделать это, мне нужен какой-то способ программного извлечения всех узлов (чтобы затем вставить содержимое каждого узла в базу данных через xmlpipe). Но я не вижу способа сделать это программно, есть ли у вас какие-либо предложения о том, как это сделать?

Это помечено как "Emacs", потому что Emacs можно использовать в качестве браузера Info, и если оригинальная программа Info не может создать такой список, то использование Emacs Lisp для этой цели также будет нормально.


PS. Кто-то с большим количеством респ. Пожалуйста, добавьте тег "информация", это достаточно сложно, чтобы гуглить как есть.


Редактировать, я думаю, что я получаю где-то:

info --subnodes -o ./info.txt

Это почти то, что я хочу, за исключением того, что оно дает слишком много информации (не только список узлов, но также некоторое описание и оформление).


Хорошо, написание этого кажется легче, чем поиск, ну, в конце концов, смысл всего этого усилия - сделать поиск проще, так что, я думаю, никакого вреда не будет! :D

(defun sphinx-info-nodes ()
  (let ((tmp-file (make-temp-file "info")))
    (shell-command (format "info --subnodes -o '%s'" tmp-file))
    (with-temp-buffer
      (insert-file-contents tmp-file)
      (cl-loop while (re-search-forward "^\\*\\s-*\\([^:]+\\):" nil t)
               collect (match-string 1)))))

0