diff --git a/.emacs.d/init.el b/.emacs.d/init.el index fba7e77..f4ab3bf 100644 --- a/.emacs.d/init.el +++ b/.emacs.d/init.el @@ -2000,14 +2000,19 @@ Returns ( . ) or nil." "RET" 'plantuml-preview) (use-package subed - :straight (:host github :repo "rndusr/subed" :files ("subed/*.el") :build (:not native-compile)) - :mode (rx (| "srt" "vtt" "ass") eos)) + :straight (:host github :repo "rndusr/subed" :files ("subed/*.el") + :build (:not native-compile)) + :config + (general-define-key + :keymaps '(subed-mode-map subed-vtt-mode-map) + :states '(normal) + "gp" #'subed-mpv-toggle-pause)) (use-package langtool :straight t :commands (langtool-check) :config - (setq langtool-language-tool-server-jar "/home/pavel/bin/LanguageTool-5.4/languagetool-server.jar") + (setq langtool-language-tool-server-jar "/home/pavel/bin/LanguageTool-5.7/languagetool-server.jar") (setq langtool-mother-tongue "ru") (setq langtool-default-language "en-US")) @@ -3267,9 +3272,8 @@ Returns ( . ) or nil." (general-define-key :keymaps 'bibtex-mode-map "M-RET" 'org-ref-bibtex-hydra/body) - ;; (add-to-list 'orhc-candidate-formats - ;; '("online" . " |${=key=}| ${title} ${url}")) - ) + (setq bibtex-completion-display-formats + '((t . "${author:36} ${title:*} ${note:10} ${year:4} ${=has-pdf=:1}${=type=:7}")))) (defun my/org-ref-select-bibliograhy () (interactive) @@ -4341,7 +4345,7 @@ Returns ( . ) or nil." (let ((dom (with-temp-buffer (insert dom-string) (libxml-parse-html-region (point-min) (point-max))))) - (let (title sitename content) + (let (title sitename content (i 0)) (dolist (child (dom-children (car (dom-by-id dom "readability-page-1")))) (when (listp child) (cond @@ -4351,16 +4355,18 @@ Returns ( . ) or nil." (setq sitename (dom-text child))) ((eq (car child) 'div) (setq content child))))) - (dom-search - content - (lambda (el) - (when (listp el) - (pcase (car el) - ('h2 (setf (car el) 'h1)) - ('h3 (setf (car el) 'h2)) - ('h4 (setf (car el) 'h3)) - ('h5 (setf (car el) 'h4)) - ('h6 (setf (car el) 'h5)))))) + (while (and + (not (dom-by-tag content 'h1)) + (dom-search + content + (lambda (el) + (when (listp el) + (pcase (car el) + ('h2 (setf (car el) 'h1)) + ('h3 (setf (car el) 'h2)) + ('h4 (setf (car el) 'h3)) + ('h5 (setf (car el) 'h4)) + ('h6 (setf (car el) 'h5)))))))) `((title . ,title) (sitename . ,sitename) (content . ,(with-temp-buffer @@ -4439,6 +4445,10 @@ Returns ( . ) or nil." (setq my/elfeed-pdf-dir (expand-file-name "~/.elfeed/pdf/")) (defun my/elfeed-open-pdf (entry overwrite) + "Open the current elfeed ENTRY with a pdf viewer. + +If OVERWRITE is non-nil, do the rendering even if the resulting +PDF already exists." (interactive (list elfeed-show-entry current-prefix-arg)) (let ((authors (mapcar (lambda (m) (plist-get m :name)) (elfeed-meta entry :authors))) (feed-title (elfeed-feed-title (elfeed-entry-feed entry))) diff --git a/Emacs.org b/Emacs.org index 1563da6..bcb4a2a 100644 --- a/Emacs.org +++ b/Emacs.org @@ -2956,8 +2956,13 @@ A major mode to work with subtitles. #+begin_src emacs-lisp (use-package subed - :straight (:host github :repo "rndusr/subed" :files ("subed/*.el") :build (:not native-compile)) - :mode (rx (| "srt" "vtt" "ass") eos)) + :straight (:host github :repo "rndusr/subed" :files ("subed/*.el") + :build (:not native-compile)) + :config + (general-define-key + :keymaps '(subed-mode-map subed-vtt-mode-map) + :states '(normal) + "gp" #'subed-mpv-toggle-pause)) #+end_src *** LanguageTool LanguageTool is a great offline spell checker. For some reason, the download link is nowhere to be found on the home page, so it is listed in the references as well. @@ -2970,7 +2975,7 @@ References: :straight t :commands (langtool-check) :config - (setq langtool-language-tool-server-jar "/home/pavel/bin/LanguageTool-5.4/languagetool-server.jar") + (setq langtool-language-tool-server-jar "/home/pavel/bin/LanguageTool-5.7/languagetool-server.jar") (setq langtool-mother-tongue "ru") (setq langtool-default-language "en-US")) @@ -4646,9 +4651,8 @@ As of now, this package loads Helm on start. To avoid this, I have to exclude He (general-define-key :keymaps 'bibtex-mode-map "M-RET" 'org-ref-bibtex-hydra/body) - ;; (add-to-list 'orhc-candidate-formats - ;; '("online" . " |${=key=}| ${title} ${url}")) - ) + (setq bibtex-completion-display-formats + '((t . "${author:36} ${title:*} ${note:10} ${year:4} ${=has-pdf=:1}${=type=:7}")))) (defun my/org-ref-select-bibliograhy () (interactive) @@ -6349,7 +6353,7 @@ Second, for some reason the header enumeration starts with =

=, so this also (let ((dom (with-temp-buffer (insert dom-string) (libxml-parse-html-region (point-min) (point-max))))) - (let (title sitename content) + (let (title sitename content (i 0)) (dolist (child (dom-children (car (dom-by-id dom "readability-page-1")))) (when (listp child) (cond @@ -6359,16 +6363,18 @@ Second, for some reason the header enumeration starts with =

=, so this also (setq sitename (dom-text child))) ((eq (car child) 'div) (setq content child))))) - (dom-search - content - (lambda (el) - (when (listp el) - (pcase (car el) - ('h2 (setf (car el) 'h1)) - ('h3 (setf (car el) 'h2)) - ('h4 (setf (car el) 'h3)) - ('h5 (setf (car el) 'h4)) - ('h6 (setf (car el) 'h5)))))) + (while (and + (not (dom-by-tag content 'h1)) + (dom-search + content + (lambda (el) + (when (listp el) + (pcase (car el) + ('h2 (setf (car el) 'h1)) + ('h3 (setf (car el) 'h2)) + ('h4 (setf (car el) 'h3)) + ('h5 (setf (car el) 'h4)) + ('h6 (setf (car el) 'h5)))))))) `((title . ,title) (sitename . ,sitename) (content . ,(with-temp-buffer @@ -6456,12 +6462,14 @@ And putting all of this together to get a PDF representation of an arbitrary URL **** Rendering elfeed entries as PDFs This also goes really well with elfeed, because for these RSS feeds that have a well-formed HTML part there's even no need to invoke =rdrview=, we can just feed the HTML to =pandoc=. -TODO escape title - #+begin_src emacs-lisp (setq my/elfeed-pdf-dir (expand-file-name "~/.elfeed/pdf/")) (defun my/elfeed-open-pdf (entry overwrite) + "Open the current elfeed ENTRY with a pdf viewer. + +If OVERWRITE is non-nil, do the rendering even if the resulting +PDF already exists." (interactive (list elfeed-show-entry current-prefix-arg)) (let ((authors (mapcar (lambda (m) (plist-get m :name)) (elfeed-meta entry :authors))) (feed-title (elfeed-feed-title (elfeed-entry-feed entry)))