2013-10-28 3 views
6

Я знаю об w3m Интеграция с Emacs, но я исчерпан, чтобы запустить его на моем W7/x64: здесь существует постоянная ошибка сегментации w3m.Отображение содержимого удаленного HTML в Emacs

Интересно, есть ли альтернативный способ отображения удаленного HTML в Emacs, возможно, предварительно отфильтрованный так, как это делается Readability/GetPocket и т. Д.? Мне не нужна навигация, поэтому очищенное содержимое будет идеально.

Спасибо,

ответ

10

хобота/Emacs 24.4:

  • M-хewwRET(URL)RET

Emacs 24,1 - 24,3:

  • М-хbrowse-url-emacsRET(URL)RET
  • М-хload-libraryRETshrRET
  • М-хshr-render-bufferRET
(defun my-render-url (url) 
    "Render URL as HTML." 
    (interactive "sURL: ") 
    (require 'shr) 
    (let ((buf (save-window-excursion (browse-url-emacs url)))) 
    (shr-render-buffer buf))) 

Edit: или это, что не имеет абсолютно никакой обработки ошибок, но значительно быстрее (что я приписываю просматривать-url-Emacs с помощью URL-извлечения-синхронно, где, как это асинхронный). Не стесняйтесь делать улучшения :)

(defun my-render-url (url) 
    "Render URL as HTML." 
    (declare (obsolete eww "24.4")) 
    (interactive "sURL: ") 
    (require 'shr) 
    (url-retrieve 
    url 
    (lambda (&optional status cbargs) 
    (let ((markup (current-buffer))) 
     (delete-region (point-min) (1+ url-http-end-of-headers)) 
     (shr-render-buffer markup) 
     (kill-buffer markup))))) 
+0

Мне жаль, что я не знал раньше :) Попробуем заархивировать его до 24.1, не должно быть никаких проблем. Благодаря! – zweibaranov

+0

Для текущего кода в багажнике см. [Eww.el] (http://git.savannah.gnu.org/cgit/emacs.git/plain/lisp/net/eww.el?h=trunk), [shr .el] (http://git.savannah.gnu.org/cgit/emacs.git/plain/lisp/net/shr.el?h=trunk) и [shr-color.el] (http: // git.savannah.gnu.org/cgit/emacs.git/plain/lisp/net/shr-color.el?h=trunk) (хотя я не уверен, что это все, что вам нужно, или насколько практичным будет backporting) , – phils

+0

Описанный выше подход работает как шарм для моей установки 24.1. Кажется, «eww.el» должно быть достаточно, чтобы эта функция была включена в мою локальную установку; но в настоящее время он не работает через прокси, но это еще одна история. – zweibaranov

Смежные вопросы