¿Cómo evitar que eww trunque las líneas?

Pregunta:

En una Mac, me gustaría usar "texto a voz" para leer contenido web.

Estoy usando el navegador eww.

"Texto a voz" trata los saltos de línea como el final de la oración, por lo que me gustaría mostrar líneas largas, ajustadas si es necesario, pero no truncadas.

He intentado (entre muchas otras cosas) esto en .emacs:

(add-hook 'eww-mode-hook
          (lambda ()
            (set-fill-column 99999)
            (auto-fill-mode 1)))

pero eww todavía rompe las líneas en el ancho del búfer. ¿Puede aconsejarme cómo evitar estos descansos?

Respuesta:

Una pequeña investigación indica que necesitará modificar las diversas shr-fill-* para lograr esto. La variable shr-width puede ser relevante o no en ese punto, pero parece razonable establecerla también.

Si solo desea codificar esto, puede redefinir las funciones de esta manera:

(eval-after-load 'shr
  '(progn (setq shr-width -1)
          (defun shr-fill-text (text) text)
          (defun shr-fill-lines (start end) nil)
          (defun shr-fill-line () nil)))

Si desea un comportamiento que pueda alternar, probablemente recomendaría a las funciones que no hagan nada condicionalmente , en función de alguna variable. p.ej:

(defadvice shr-fill-text (around shr-no-fill-text activate)
  "Do not fill text when `shr-no-fill-mode' is enabled."
  (if (bound-and-true-p shr-no-fill-mode)
      (ad-get-arg 0)
    ad-do-it))

(defadvice shr-fill-lines (around shr-no-fill-lines activate)
  "Do not fill text when `shr-no-fill-mode' is enabled."
  (unless (bound-and-true-p shr-no-fill-mode)
    ad-do-it))

(defadvice shr-fill-line (around shr-no-fill-line activate)
  "Do not fill text when `shr-no-fill-mode' is enabled."
  (unless (bound-and-true-p shr-no-fill-mode)
    ad-do-it))

(define-minor-mode shr-no-fill-mode
  "Global minor mode which prevents `shr' and `eww' from filling text output."
  ;; :lighter (:eval (if (derived-mode-p 'eww-mode) " ShrNoFill"))
  :global t)

(shr-no-fill-mode 1) ;; To enable by default.
                     ;; M-x shr-no-fill-mode to toggle.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım