环境
背景信息
目前 macOS 下的 w3m 缺乏 w3mimgdisplay 命令,也缺乏 ueberzug ,所以终端下的图片显示只能依赖终端模拟器本身的图形协议来完成(常见的终端 kitty 和 iTerm2 都自带图形协议)。Newsboat 本身是一个终端下的 RSS 阅读器,主要用于文字阅读;然而我订阅的 RSS 不可避免需要图片预览,比如 xkcd 就是一个纯图片的 feed…
楼主目前思路
先是看到有人搞出了一套能够实现图片预览的 pager,可惜对方使用了 w3m ,所以没法直接拿来用。我依样画葫芦从 kitty 自带的图片预览 icat 出发
kitty +kitten icat
在终端中显示图片#!/usr/bin/env bash
function urldecode() { : "${*//+/ }"; echo -e "${_//%/\\x}"; }
if grep -qE "xkcd" "${1}"; then
# 下载 xkcd 源中的图片,然后用 icat 预览
image=$(grep -E -o "https?://[a-zA-Z0-9./?=_%:-]*.(jpg|png|JPG|PNG)" < "${1}" | tail -1)
cd /private/tmp/
imagepath="${image/https:\///private/tmp}"
imagepath=$(urldecode "$imagepath")
if [[ ! -f "$imagepath" ]]; then
# echo "downloading..."
nohup wget -q -m "$image" &>/dev/null
fi
kitty +kitten icat --hold "${imagepath/jpg/png}"
else
# 其他 feed 改成 less
less "${1}"
fi
这个方法目前的问题是,对于纯文本的条目只能改用less
做 pager ,无法用 newsboat 自带的 pager 了。会多几次按键操作,阅读效率降低。不知道有没有朋友在 macOS 下也折腾过 newsboat ,请支支招。