2025-06-20-16-41

34 阅读1分钟
#+name: 2025-06-20-16-41
#+begin_src emacs-lisp :eval no :noweb yes
  ((lambda (parse-url)
        (lambda (url &rest args)
          (let* ((url (funcall parse-url url))
                 (start (float-time))
                 (timeout 10)
                 (done nil)
                 (hook (lambda () (setq done t)))
                 ;; shr-tag-pre 会自动加空行,影响格式。
                 ;; 这里,我们重新定义其渲染函数。
                 (shr-external-rendering-functions
                  (append
                   shr-external-rendering-functions
                   `((pre . ,(lambda (dom)
                               (let ((shr-folding-mode 'none)
                                   (shr-current-font 'default))
                                 (shr-generic dom)))))))
                 ;; shr-bullet 默认为 "* ", 会呈现为
                 ;; Org Headline, 这里我们改用 "- ".
                 (shr-bullet "- "))
            (add-hook 'eww-after-render-hook hook)
            (eww-browse-url (plist-get url :url))
            (while (and (not done) (< (- (float-time) start) timeout))
              (sit-for 1))
            (remove-hook 'eww-after-render-hook hook)
            (eww-readable 1)
            (if (not done)
                (error "eww browse url %S timeout" (plist-get url :url))
              (when (plist-get url :search-option)
                (org-mode)
                (org-link-search (plist-get url :search-option)))))))
   <<@([[https:///2025-06-20-20-32/]])>>)
#+end_src