shrface - 让 eww, dash-doc, nov, mu4e 有 org 的阅读体验,新版支持利用emacs原生shr引擎将html转org格式

https://github.com/chenyanming/shrface https://www.reddit.com/r/emacs/comments/fyd2o8/new_package_shrface_a_shr_faces_package_org_like/

\

18 个赞

在 eww 和 nov 上用这个,看起来好像效果不错啊。打算试试

效果有点惊艳啊

;;; shrface.el --- Faces for shr -*- lexical-binding: t; -*-

这个描述不是很清楚

让 eww, dash-doc, nov, mu4e 有 org 的阅读体验

比如把 h1 h2 等用 Org Heading 的样式显示的意思吧?根据你的截图猜测


顺便问下,你的 Margin 是怎么来的?

对的,就是给shr继承org样式。你指的是什么margin?

自动折行这个太帅 :+1:

2 个赞

截图里的页边空白。

似乎是這個?

应该不是,应该是个插件的效果,我有时间自己找看看吧。

可能是 olivetti

1 个赞

嗯…有些改 window margin 的插件不知道是不是你想要的。我在用這個:GitHub - joostkremers/visual-fill-column: Emacs mode for wrapping visual-line-mode buffers at fill-column.

就是 olivetti-mode

(with-eval-after-load 'nov
(defun my-nov-font-setup ()
  (setq buffer-face-mode-face '(:family "Fira Code" :height 150))
  (buffer-face-mode)
  (olivetti-mode 1)
  (olivetti-set-width 0.80))
(add-hook 'nov-mode-hook 'my-nov-font-setup))

(with-eval-after-load 'eww
(defun my-eww-font-setup ()
  (setq buffer-face-mode-face '(:family "Fira Code" :height 130))
  (buffer-face-mode)
  (olivetti-mode 1)
  (olivetti-set-width 0.95))
(add-hook 'eww-mode-hook 'my-eww-font-setup))
1 个赞

看中文的电子书,你这个库的自动折行就不太行了

新版更新:shrface version 1.5

好困,但是,能分享给大家还是很兴奋的。我给shrface增加了outline minior mode,现在可以折叠了,但是键绑定需要自己配一下。

(define-key nov-mode-map (kbd "<tab>") 'org-cycle)
(define-key nov-mode-map (kbd "S-<tab>") 'org-shifttab)
(define-key eww-mode-map (kbd "<tab>") 'org-cycle)
(define-key eww-mode-map (kbd "S-<tab>") 'org-shifttab)

欢迎测试~

4 个赞

一直找不到一个很好的将html转成org的方案,网上的唯一的比较靠谱的方案就是用pandoc来转换,但是,转换后发现效果并不理想。其实,可以直接利用emacs的shr来将html转成org,通过shr,可以对每种html的元素个性化转换。

现在shrface 2.6.3 支持html转成org格式!基于Emacs原生shr的转换,无需pandoc。

shrface-html-export-as-org: 将html buffer或者string转成临时org buffer

shrface-html-export-to-org: 将html buffer转成指定org 文件

如果你不喜欢org-web-tools使用pandoc将html转成org(pandoc转换过程会丢失了很多信息,特别代码块是不完整的),可以用shrfaceshrface-html-convert-as-org-stringoverride pandoc引擎:

(advice-add 'org-web-tools--html-to-org-with-pandoc :override 'shrface-html-convert-as-org-string)

但是,基于shr来将html转成org的方案,还是有些地方要改进,例如url的类型判断,图片是否要下载,html的基于每个tag的优化等等。个人精力有限,希望社区的人可以帮忙一起改善!

5 个赞

嵌套的 list 缩进会丢失,请问有办法解决吗?

image

这个挺难弄的,一直没找到方法。

如何配置w3m,在w3m中达到eww的效果,可以支持w3m 吗?

你可以看看另一个项目,inherit-org