Я обдумываю улучшенную индексацию страниц 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)))))