#+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