;;; ~/.dotfiles/emacs/.config/doom/+nov.el -*- lexical-binding: t; -*- (require 'justify-kp) ;(setq nov-text-width t) (setq nov-text-width 80) (defun my-nov-window-configuration-change-hook () (my-nov-post-html-render-hook) (remove-hook 'window-configuration-change-hook 'my-nov-window-configuration-change-hook t)) (defun my-nov-post-html-render-hook () (if (get-buffer-window) (let ((max-width (pj-line-width)) buffer-read-only) (save-excursion (goto-char (point-min)) (while (not (eobp)) (when (not (looking-at "^[[:space:]]*$")) (goto-char (line-end-position)) (when (> (shr-pixel-column) max-width) (goto-char (line-beginning-position)) (pj-justify))) (forward-line 1)))) (add-hook 'window-configuration-change-hook 'my-nov-window-configuration-change-hook nil t))) (add-hook 'nov-post-html-render-hook 'my-nov-post-html-render-hook) (add-to-list 'auto-mode-alist '("\\.epub\\'" . nov-mode)) (defun my-nov-font-setup () (face-remap-add-relative 'variable-pitch :family "Liberation Serif" :size 20 :height 1.0)) (add-hook 'nov-mode-hook 'my-nov-font-setup)