普通视图

发现新文章,点击刷新页面。
昨天以前首页

高亮、总结、剪藏-本地优先的浏览器插件

作者 Dayu
2025年3月15日 07:06

Obsidian Web Clipper 是一个最初为 Obsidian 设计的网页剪藏工具,它允许用户快速保存网页内容到 Obsidian 笔记库中。

今天快下班的时候看到 @kepano 发布了新功能,不再限制导出路径,可以保存到电脑中。

所以,现在任何本地优先的笔记软件都能使用 Web Clipper 了

不用 Obsidian 之后,一直眼馋 Web Clipper 的功能,可太开心了!

Web Clipper 适合哪些内容?

我平时储存的内容主要有以下几类:

  • 自己完成的内容,如博客、论文。
  • 高亮的内容和笔记 – 尽量不储存全文。没有重新梳理的内容,大多没必要储存。
  • 值得收藏的内容和链接,.pdf.html

Web Clipper 支持 Markdown 格式导出全文,但偶尔会有排版问题。个人更喜欢 .pdf.html

储存 .html 推荐使用 SingleFile,导出时能够保留双语翻译的结果。储存 .pdf 推荐使用 Just-One-Page-PDF

Web Clipper 很适合收藏「链接」和「高亮内容」。

链接大多为工具性的,配合 AI 总结内容,方便日后检索。

配置 Web Clipper

首先,激活 Interpreter(解释器),绑定大模型 API,并选择自己喜欢的模型。

我试用了 Deepseek Chat 和 GPT-4o mini,GPT-4o mini 的速度要快一倍左右,推荐。

然后,在「常规设置-高级」,将保存行为改为「保存文件」。我还开启了「保存笔记但不打开」。

CleanShot 2025-03-14 at 21.05.38@2x

最后编辑模板,「文件名称」改为了 :

{{ date | date:YYYY-MM-DD}}-{{title}}

「笔记内容」部分的设置如下。一切为日后检索服务,添加了中英两种语言的总结。

### Summary
{{"a summary of the page"}}

{{"Three keywords"}}

{{"a summary of the page, translated to Chinese"}}

{{"a three bullet point summary, translated to Chinese"}}

### Highlights
{{highlights|map: item => item.text|join:"\n\n"}}

解释器上下文:

{{fullHtml}}  

效果如下:

CleanShot 2025-03-14 at 22.27.52@2x

Markdown 文件会默认保存到浏览器默认的 download 文件夹。

我平时会使用 Hazel 配置规则,将 download 中的.md文件自动移动到 DEVONthink 的 Inbox 中。

虽然从 Obsidian 彻底转到了 DEVONthink,但我依旧认可和喜欢 kepano 的理念,也佩服他的很多决策,有舍才有得。

比起用功能绑住用户,Obsidian 更注重插件生态和社群活力,以此增强自己的不可替代性,也是我觉得比较可持续的发展路径。

PIVOT Vol.14 折纸战士

作者 Dayu
2025年3月13日 23:41

本刊物不定期发布,推荐通过 RSS 订阅:https://anotherdayu.com/feed/

IMG_1488.jpg

「Mac App Comparisons – 2025 Update : r/macapps」

这个帖子收录并对比了几个常用 macOS 软件类别,这几个类别中我比较喜欢的是这些:

关联:My App Defaults 2023,这两年我的软件使用习惯还是有挺多变化的。

|

「WordPress 批量导出 Markdown」

评论尸制作的 WordPress 批量导出 Markdown 插件,用于网站备份很实用。

我还会定期用 SiteSucker for macOS 备份 html 格式,好处是可以保留网页样式和图片。

|

「MCG-NKU/NSFC-LaTex」

开源的国家自然科学基金 LaTex 模版。

|

「Keldos-Li/typora-latex-theme」

为中文小论文优化的 Typora 样式,以浙大论文要求为模版,用户也可以自行修改。

cover

|

「公民对话手册」

八条基本的公民对话原则。可能是源于捷克斯洛伐克的公民论坛,但具体由谁提出并不明确。部分中文资料认为是哈维尔提出的,但英文资料并没有相关信息。

  1. 对话的目的是寻求真理,不是为了斗争;
  2. 不做人身攻击;
  3. 保持主题;
  4. 辩论时要用证据;
  5. 不要坚持错误不改;
  6. 要分清对话与只准自己讲话的区别;
  7. 对话要有记录;
  8. 尽量理解对方。

关联:对该领域感兴趣《罗伯特议事规则》也值得一读。

|

「Readest」

挺简洁的电子书阅读器。用起来比 Calibre 简单,但 macOS 版有一些小 Bug,重启过几次。

Readest Banner

|

「What is Model Context Protocol (MCP)? 」

模型上下文协议(Model Context Protocol,MCP)是一种开创性的开放协议,它彻底简化了人工智能与外部工具和数据源的集成方式。与传统API需要为每个服务编写单独集成不同,MCP提供了一个标准化的”连接器”,允许AI模型通过单一协议访问多种工具和服务。

MCP支持实时双向通信,使AI模型能够动态发现和交互工具,既可以查询信息也可以触发操作,类似于为AI应用提供了一个通用的”USB-C端口”,极大提高了开发效率和系统灵活性。

What is MCP?

|

「大学生活质量指北」

一个由Telegram频道发起的资料汇总平台,旨在收集全球各高校在招生过程中通常不会明确说明但实际上对大学生活质量有重要影响的详细信息。

|

「Kami, for Origami」

一个我用不上,但觉得图标很好看的软件。

CleanShot 2025-03-13 at 15.32.19@2x

记得小时候有一本宝可梦折纸书,玩的特别开心,那时候还叫他们宠物小精灵。

cb37a18f1d79321cba2995721ea04faf

不知道现在的孩子还会看 折纸战士 吗?

WordPress Newsletter 插件

作者 Dayu
2025年3月3日 23:11

前几天看到 拾月 开发了一个 RSS to Email 的服务,可以让读者订阅网站的 RSS feeds,0.002 元 / 封。

目前有 5 人民币的免费额度,对大部分博客来说,已经够用很久。

个人感觉这个服务很棒,不用花费额外精力配置,也不用再编辑一遍文本,都是自动化的,特别适合静态博客。

以此为契机,我搜了搜 WordPress 的插件商店,发现了 Newsletter

比起其他类似功能的插件,这个插件的优势是不需要注册,如果我保持 WordPress 版本不变,即使这个插件不更新维护,我依旧能使用。

设置很简单,如果 WordPress 配置过 SMTP 邮件转发,则可以直接下载使用该插件。

我目前使用的是免费版,效果请见链接 。可以展示近期的多篇博客,也可以每封邮件展示一篇博客全文。

CleanShot 2025-03-03 at 14.50.50@2x

试试用邮件订阅本博客吧!

Note: @JeffreyCalm 补充了一下非自建邮件服务(比如Gmail、Outlook)一天用 SMTP 发 200 封左右会被封停,自建的应该没有该限制。

自建邮箱则会有触达率的问题,目前大部分邮件服务商是白名单模式,新且小的 STMP 转发有可能被退信。

PIVOT Vol.13

作者 Dayu
2025年2月27日 22:16

本刊物不定期发布,推荐通过 RSS 订阅:https://anotherdayu.com/feed/

IMG_1488.jpg

「Dokploy」

Vercel 和 Netlify 的替代品,更简单的部署 Docker 应用。

|

「Edouard Klein / falsisign」

很多机构,特别是政府机构,不接受数字签名,而签名扫描的打印件可以。这个开源工具可以让 PDF 文件看起来像打印、签名然后重新扫描过一样。

|

「Shift-Z:键盘上的超级启动按键」

Shift-Z 这个启动键确实挺不错的,用了几天很舒服。

|

JoeanAmier/XHS-Downloader

可以从小红书上下载无水印的作品文件。

|

「Watch to 5K」

这是一个跑步教练软件,帮助用户培养运动习惯,直到能一次性不中断跑5km。

一般会计划每周跑3-4次,散步+跑步交替,一点点加量。2-3个月之后帮助训练者恢复成能单次跑5km的程度。之后还有10km的扩充计划,循序渐进,挺好的。。

| 「Does spatial distribution heterogeneity exist in video games: Evidence from Genshin Impact’s map」

这篇研究论文通过对《原神》游戏地图的空间分布异质性进行定量分析,探讨了虚拟世界中的空间特征。结果表明,虚拟游戏世界确实存在空间分布异质性,但其模式比现实世界更加简单和规整。

关联:PIVOT Vol.9 组会分享什么?一些有趣的科研论文

|

「The Pivot」

发现了一个公共卫生领域的播客也叫 PIVOT,缘分啊。

|

「Gender differences in the relationship between mental health and academic performance among undergraduate students at a medical school in Shanghai: a cross-sectional study」

医学教育学相关研究,探讨性别差异在心理健康与学业表现之间的关系。女大学生心理健康状况不良与学业成绩较差显著相关,SCL-90量表六个维度与学业成绩之间存在剂量依赖关系。相比之下,男性学生中未观察到类似结果。这表明性别在心理健康与学业表现的关系中起着重要作用,需进一步挖掘多维度心理健康对学生学业的影响。

|

「okooo5km/HiPixel」

macOS 原生应用程序,利用AI技术进行图像超分辨率处理。

|

「morriswmz/phd-game」

基于随机事件的文本类游戏引擎,模拟PhD学生的生活经历。

|

「Wittgenstein and Word2vec: Capturing Relational Meaning in Language and Thought」

这篇文章探讨了语言意义的本质,通过比较维特根斯坦的语言游戏理论、Word2vec 自然语言处理模型和细胞生物学中的概念映射,展示了概念间关系性意义的重要性。作者认为,通过在多维空间中测量概念之间的”距离”,我们可以更好地理解和表达意义,这种方法不仅适用于语言,还可能反映了人类思考的基本方式。

编程辅助工具 Roo Code

作者 Dayu
2025年2月27日 00:37

这两个月试了一些 AI 编程辅助工具,比如 Cursor、Windsurf、新版 Github Copilot、Cline 和 Roo Code等。

个人感受:

  • 注重效率:VScode + Roo Code + Claude 3.7 Sonnet 用起来比较舒服,但高频使用价格高。Reddit 里有朋友提到,Windsurf 这类订阅制的软件,为了节省 Token,做了一些优化,没有强制访问整库。Roo Code 和 Cline 则会强制访问,效果更好,但价格也昂贵一些。
  • 不喜欢折腾Windsurf 价格适中,性价比不错。Cursor 效果稍好,但也更贵。
  • 轻度使用CopilotGemini Code Assist 的免费版够用。

我平时仅会用代码完成数据分析项目,偶尔做个小插件。项目的代码量都不大,很少高频编程。

Roo Code 已经很够用。

小技巧

【1】Roo Code 是基于 VS Code 的插件,额外安装 Copilot 后,只需在 API Provider 中选择 VS Code LM API,即可在 Roo Code 中调用 Copilot。如果你拥有 GitHub Student Developer Pack,那么这一套设置将是免费的。

注意:Reddit 的一个帖子 提到这样有账号被关闭的风险。该账号最终恢复了,但风险仍旧存在。

【2】Code、Architect 和 Ask 三个模式可以选择不同的模型,Architect 我选择的是 Deepseek R1,其他两个是 Claude 3.7 Sonnet。

【3】关闭 Roo Code 的 MCP Servers 服务,能减少很多引导词,节省日常使用的 Token。

【4】在 OpenRouter 中开启「Compress prompts and message chains to the context size」,能节省 Token。

【5】Gemini 系列目前不算热门,但性价比不错,效果也挺好。

Source:

黑屏之后

作者 xrspook
2025年2月19日 08:18

当年今日

在小米Civi 1S又出现了在解锁的时候黑屏,必须插上充电头才能重启之后,我又去研究了一番之前我已经研究过,但是隔了好长一段时间都没有结果的事情。那时我觉得已经等不到结果了,或许有一天,我希望HyperOS那边会说,已经修复的那个指纹解锁不知道为什么就会出现黑屏的问题。但实际上,我感觉这个东西从来都没有出现过,因为谁都没办法重现那个黑屏,当你拿着手机去检查,最后出来的结果就是什么问题都查不到,但就是会随机黑屏。通常情况下,维修的人会给你刷一个系统,然后完事,但说不准那个系统什么时候又挂了。我遇到的情况是根本就没有等到HyperOS那边说有修复的补丁。出现指纹解锁的时候出现黑屏,这个状态不仅仅是小米Civi 1S的专属 ,红米K系列或者小米数字系列也有很多同样的遭遇。

这一次当我又去查找黑屏这个问题的时候。发现不久前在小米社区上。小米13Ultra的用户很多都遇到了这个问题,最后都必须重启才能解决。有些人已经把这个重启当作家常便饭,不仅仅是小米13Ultra,小米15,刚刚出的新机也有这种问题。一开始我以为那只是大家在抖音上抹黑小米15所以才这么说的,后来发现,在小米社区上也有很多,如果他们觉得这是抹黑的话,估计管理员会主动删帖,实际上没有。小米15的黑屏更加无语,那是任何场景都可能触发。小米13Ultra可能不插充电线也能长按电源键重启,但小米15就只能先插上充电线,然后才能重启。我不确定小米Civi 1S是不是长按电源键时间足够长了就能重启。以前当我的指纹解锁导致黑屏以后,一开始我是用插充电线重启的,后来某一次我发现,只要长按时间足够长,也可以不插充电线重启。所以这些黑屏到底是什么情况呢?为什么手机的某个核心部件突然就挂掉了?怎么那么脆弱呢?我自己用过7台小米或者红米的手机或平板。除了小米Civi 1S出现黑屏这个状况以外,其它从开始使用到寿终正寝都不会出现在解锁的时候突然黑屏,又或者用着用着就黑屏。红米Note7的确在最后的时候会用着用着就自动关机了,那是因为电池跟主板都已经不行了,不是现在我所遇到的黑屏问题,现在遇到的黑屏问题是手机重启之后发现电池是正常的,手机也没有问题,但你就说不准那个黑屏什么时候会来。

再次遇到黑屏这个问题的时候。我的考虑要不要把我的备用手机跟主用主力手机换一下,把红米Note11 5G换成我的主力手机,那个机子跟小米Civi 1S相比,的确性能不足,但稳定,而且电池的续航也比较好,因为它的CPU很一般,因为它的天线很阉割。慢是会慢一点,但起码不用我每天都为这个黑屏问题担惊受怕。但我真的要放弃小米Civi 1S作为主力手机吗?其实除了这个以外,我还有第二个选择,就是直接换一台新机,然后用换机的方式把所有资料都从小米Civi 1S上挪到新机。小米Civi 1S一旦屏幕点亮,就不会有黑屏的问题,所以哪怕给他们去检查,也不可能检查得出有毛病,所以那台机子理论上如果以旧换新,能换个好价钱,但是我真的要以这种方式告别小米Civi 1S吗?最重要的是,现在的小米手机里,我还没有一款特别心仪的。

说起黑屏问题,是不是都做过小米换机这个操作呢?所以是不是在换机的时候带进了某些信息导致跟系统本身不匹配,所以出现黑屏呢?

小米15黑屏的用户有的说可能是自动光亮度导致的bug,所以我直接关掉了小米Civi 1S的自动光亮度调节。我不知道这个能挺多久,我不知道下一次黑屏会什么时候袭来。

Bearblog 风格点赞按钮

作者 Dayu
2025年2月8日 17:27

** 本文基于 第三夏尔Booooombenji 的 Hugo 插件代码,修改为 WordPress 插件:DayuGuo/bear-style-like-button

功能

在 WordPress 的文章类型页面下方添加两个按钮:「点赞」和「支持」。

  • 「点赞」:参考 Bearblog 点赞风格,以简洁版向上箭头为图标,配上一个轻柔的跳动动画。设置界面支持导出点赞数据。
  • 「支持」:可在 WordPress 插件设置中修改链接,跳转到特定页面。

效果见本文下方,大家可以试试。

安装

本插件可在 Github Releases 中 下载:DayuGuo/bear-style-like-button ,并在 WordPress 后台上传安装。

如有任何疑问可在评论区留言。

近期测试的几个软件

作者 Dayu
2025年1月31日 00:15

近期收到或抽到了一些软件,都挺有趣,放在一起聊聊。

写完才发现 5 个项目的作者都是推友。

Juchats

推友 @Cydiar404 的项目 Juchats,快速访问多种大模型(如下图所示)。整体功能与 POE 类似,价格更便宜,界面更简洁,可以用支付宝直接付款。

目前已经稳定运行一年多,比较贴心的是有个 1.99 美元的日套餐,感兴趣的朋友可以测试一下。

CleanShot 2025-01-30 at 23.27.02@2x

Tooboo

YaoYao 跳绳软件作者 @haozes 的新产品 Tooboo,这次的定位是跑步和徒步旅行,软件风格特别舒服,和 Apple watch 适配的也很好。

支持与 Strava 同步,可以从两步路和 AllTrails 中导入路线。

竞品是 WorkOutDoors,支持得运动项目更全一些,但老项目界面稍微粗糙些。Tooboo 的优势则是设计和交互更现代,更新也更勤快,未来可能添加更多功能。国区买断价 48-68 块,很不错。

IMG_3025

Photoncam

推友 @JuniperPhoton 的作品,用起来很舒服的拍照软件,可以配置 LUT,自带的滤镜也挺不错,玩法多样。

我喜欢它的原因比较个人。平时手机拍照比较习惯用 1:1 的框,Apple camera 没有长期固定 1:1 的设置,拍照前总要多个步骤,这个软件则能固定 1:1。

正好换了 iPhone16,就把 Photoncam 锁在了相机键。想 4:3 的时候再启用 Apple camera。

注:经网友提醒,iPhone 原来可以固定设置,选项名:Preserve Settings。

最近简单修图和加边框也用的它,挺顺手,偶尔精修的时候才用 Darkroom(开的越来越少了)。

IMG_3023

Piecelet

推友 @vanillaCitron 的作品。

Piecelet 是 iOS 版的 NeoDB 浏览器,体验不错,这回在手机上添加书影音记录更方便了。

NeoDB 本就相对小众,愿意花心思为这个网站做软件,还是上架的 iOS 软件,不容易。

比较好奇 Piecelet 的含义。

IMG_3021

SteveFans

@st7evechou 的作品。

SteveFans 能以小组件的形式追踪社交软件的关注数等数据,包括 Youtube、Twitter、Bilibili、Telegram等。

这个软件感觉很适合做自媒体的朋友使用,在创业阶段有个方便浏览数据的小窗口,很方便。

IMG_3022

PIVOT Vol.11 推荐几个macOS软件

作者 Dayu
2025年1月12日 21:34

本刊物不定期发布,推荐通过 RSS 订阅:https://anotherdayu.com/feed/

IMG_1488.jpg

推荐几个最近用着很舒服的 macOS 软件!

Mailmate,朋友推荐的一款 macOS IMAP 电子邮件客户端,日常价格为每 3 个月 10 美元,前几天可以 1 美元购买 3 个月的使用权限(已过期),就试了试,结果非常惊喜。付费期限结束后,会自动转为免费版,似乎也够日常使用(还未测试)。很踏实的设计风格,比 Apple mail 和 Spark 细节好很多。如下图,如果邮件中提到了 attachment,但没有添加附件,还会提醒。

telegram-cloud-photo-size-5-6334830467156657640-x.jpg

Kinopio,一款画板软件,风格比较独特,可以分享页面,并嵌入网页,示例:第一次中距离徒步 Yr Wyddfa。从 Obsidian 转出后,偶有画板需求,但不想再额外使用一个笔记软件,就会用 Excalidraw,但 Excalidraw 稍有些粗糙。Kinopio 则刚刚好,网页版轻量化,还能导出为 Obsidian 的 JSON Canvas file format 格式和 PDF,易于储存和索引。

CleanShot 2025-01-12 at 19.08.38@2x.png

new file menu,为 macOS 右键菜单增加新建文件的功能。类似的软件有很多,但部分在系统更新后失效,这款则比较稳定简单。

Trickster,快速索引近期访问的文件,优点是能索引 Devonthink 等软件内部的文件。

CleanShot 2025-01-12 at 21.17.34@2x.png

codepiper,自动复制 macOS 中的短信验证码,很易用。

Rapidmg,macOS 安装 DMG 文件时的拖拽流程比较累赘,这个软件则省去了该步骤。

FluentRead,Firefox插件,类似于沉浸式翻译,优点是开源,设置界面简洁舒适。缺点是目前没有一键全网页翻译,只有段落翻译快捷键。

Calibre 推荐配置与插件

作者 Jeff
2025年1月12日 13:40

在我的2024年阅读记录中,电子书的阅读量已经占整年阅读量的70%以上,家里的纸质书也逐步二手转让,电子书和阅读笔记就不可避免遇到整理的问题。

阅读笔记我主要是通过阅读器或阅读软件导出并整理到 Obsidian 中,我在 Obsidian 中设计了固定且简洁的阅读笔记模板,保证统一的格式和可检索性,但不会过度保存书籍的原始信息(书籍封面、页数等等感觉没必要)。

对于电子书的整理,这类软件没太多选择,灵活度且支持多平台的也只有 Calibre 能胜任。此外 Calibre-Web 更能通过 Docker 部署到 NAS 或者云主机中,折腾首选。因为我只考虑本地电子书的整理,平时阅读主要依赖墨水屏和微信读书,所以 Calibre-Web 就不折腾了。

Calibre 完全免费,支持中文,可以在 Windows、Mac 和 Linux 系统上运行,支持 TXT、PDF、EPUB、MOBI、DOCX、HTML、Markdown 等等众多格式,支持复杂的条件搜索语法和书籍全文搜索,支持本机建立内容服务器,局域网内使用浏览器访问书库及阅读。

下面介绍一下我使用 Calibre 的一些配置经验和推荐的插件(本文以 MacOS 15.2,Calibre v7.24.0 版本,本地管理方式为例)。

 

配置建议

1. 自定义栏目管理增加状态、阅读进度标记

通过“首选项”》“管理栏目”创建自定义栏目,增加“状态”栏目,用于标识电子书的阅读状态,比如我会使用”在读,已读,搁置,已读2遍,已读3遍“来记录阅读状态。同样的方法,你可以更加精细的记录阅读进度、读后短评等等。

Calibre 推荐配置与插件-雅余

 

2. 优化日期的显示方式

通过“首选项”》“优化调整”对日期的显示方式进行自定义。默认设置“MMM yyyy”实在看着别扭,建议把出版日期修改为 “yyyy-MM”,加入日期和修改日期修改为 “yyyy-MM-dd”。

Calibre 推荐配置与插件-雅余

 

3. 调整界面外观图标主题

默认图标风格太丑,可通过“首选项”》“界面外观”调整图标主题,推荐 Setenove 系列,图标大小设置为中小

Calibre 推荐配置与插件-雅余

 

4. 以中文名称保存书籍至硬盘

Calibre 默认提取书籍保存到硬盘是使用“作者简称/标题/标题 - 作者”作为路径和名称,实在啰嗦。建议按截图勾选,禁止转换为字符和封面单独保存等,保存模板直接设置以标题保存即可。更多的时候提取只是为了分享或者发送到硬件设备中。

Calibre 推荐配置与插件-雅余

 

5. 使用中文路径(禁止 Calibre 翻译文件路径)

多年以前我不愿使用 Calibre 是因为它会自动把中文名称和路径翻译转换为拼音,可读性太差,强迫症受不了。感谢 Cirn09 的 “Calibre-do-not-translate-my-path”(将我的书库从拼音目录切换至非纯英文(中文)命名)这个插件拯救了不少患者。

Calibre 推荐配置与插件-雅余

patch 方案:
通过 Github 下载 Calibre-do-not-translate-my-path

解压下载的包,得到 python-lib.bypy.frozen 文件。

打开 Finder,进入“应用程序” (/Applications),右键点击“Calibre——显示包内容”,进入 Contents/Frameworks/plugins (对应的完整路径是 /Applications/calibre.app/Contents/Frameworks/plugins )。将第 1 步下载包里的 python-lib.bypy.frozen,拷贝覆盖原文件,重新打开 Calibre 即可。

Git 上有其他系统的使用方法,作者也提供了对已建书库的批量处理方法。

 

6. 精选元数据来源

在“首选项”》“插件”中展开“元数据来源”,禁用不需要的元数据来源,减少插件的加载。

Calibre 推荐配置与插件-雅余

在“首选项”》“下载元数据”中勾选不需要的数据源,减少查询元数据时对速度的影响。我仅保留3项,基本能满足中英文书籍查询,通过豆瓣获取封面优先级为最高。

Calibre 推荐配置与插件-雅余

 

7. 禁用在线书店

在“首选项”》“插件”中展开“在线书店”,禁用不需要插件。我还把菜单栏上的快捷入口删除了。基本用不着这个功能。

Calibre 推荐配置与插件-雅余

 

8. 精选设备接口

在“首选项”》“插件”中展开“设备接口”,禁用不需要插件。我仅保留了安卓和 Kindle,其他全部禁用。

Calibre 推荐配置与插件-雅余

 

9. 备份 Calibre 设置项

在“首选项”》“杂项”中,点击“打开 'calibre 配置'文件夹“,可以跳转到 calibre 的配置文件夹,对整个文件夹进行打包备份,以便重装软件等等不时之需。

Calibre 推荐配置与插件-雅余

 

10. 生成书库书目及制作成电子书

Calibre 支持为书库所有书籍制作电子书目,可自定义书目包含的元数据字段信息,支持生成 CSV、EPUB、XML 等多种格式,生成后在书库内直接浏览。建议导出 CSV 格式,方便处理导入其他软件中使用。

Calibre 推荐配置与插件-雅余

 

11. 书库备份

硬盘富余的话,可以考虑定期对整个书库进行备份。我暂时仍保留着原始文件夹整理和 Calibre 整理两种方式。

Calibre 推荐配置与插件-雅余

 

推荐插件

1. Highlights to Obsidian

实现一键同步 Calibre 的批注内容到 Obsidian 中,同步内容包括高亮位置的链接、高亮内容、自己对高亮内容的批注等。通过插件可以自定义同步到 Obsidian 中的模板格式,灵活度很高。该插件可以通过 Calibre 进行搜索安装,也可以通过 Github 下载安装包。

2. Ebook Translator

Ebook Translator 是书伴开发的一款 Calibre 插件,可以将不同格式不同语言的电子书翻译成指定语言(原文译文对照)指定格式的电子书,支持 Google、ChatGPT 和 DeepL 翻译引擎。该插件可以通过 Calibre 进行搜索安装。

3. New Douban Books

实现通过豆瓣获取书籍元数据和封面图片。建议通过 Github 中获取一个较新的安装包,并通过“从文件加载插件”的方式进行安装。

安装插件还是坚持一个原则,能免则免,能精则精,不要贪多。

-

参考资料:
- 阅读批注样样通,我的 Calibre 书籍库管理方法论
- Ebook Translator:用 Calibre 翻译多格式双语对照电子书
- 用Calibre管理图书,还能一键同步批注到Obsidian
- Calibre 不要翻译我的文件路径

将 NeoDB 书影音记录整合到 WordPress 中

作者 Dayu
2024年12月20日 00:08

朋友们,已将该功能整合成一个WordPress插件,可直接看这篇 WordPress 插件-NeoDB Integration 书影音展示页面,更简单易用。

这两篇文章合在一起,是我第一次使用 ChatGPT 协助制作 WordPress 插件的心路历程。

NeoDB 是一个开源免费的书影音收藏社区平台,详情见:NeoDB | 书影音标记 – 豆瓣、GoodReads 和 Google Book 的替代品

本文参考 hcplantern 的 将 NeoDB 记录整合到 Hugo 中 ,实现了将 NeoDB 观影记录添加到 WordPress 页面中,展示页面:NeoDB 书影音

获取 NeoDB Bearer Token

NeoDB API Developer Console 中点击Test Access Token,并 Generate 一个 NeoDB Bearer Token,示例:Th2121_qs-8agMAlSrkE_tzBbcvjsdkjtlCtr9QHX321312312Ytzo8_YmOxjxg

在终端(Terminal)或命令提示符(Command Prompt)中输入以下代码,将 YOUR_TOKEN 替换为 NeoDB Bearer Token。

curl -H "Authorization: Bearer YOUR_TOKEN" https://neodb.social/api/me

设置 Cloudflare worker

注册 Cloudflare worker,点击 Create,创建一个 worker。

最初会展示一个 Hello World 基础案例,点击 Continue to project – Settings – Variables and Secrets。

添加一个环境变量(Environment Variables):

  • Type:text
  • Variable name:NEODB_TOKEN
  • Value:NeoDB Bearer Token,示例:H13121_qs-8agMAlSrkE_tzBbcvjsdkjtlCtr9QHX321312312Ytzo8_YmOxjxg

点击右上角的 Edit code,删除 worker.js 中全部代码,并将 hcplantern 提供的代码(如下)复制黏贴进去。

const myBearer = NEODB_TOKEN; // Assuming 'NEODB_TOKEN' is set in your Cloudflare Worker's environment variables

addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
try {
console.log(myBearer)
const url = new URL(request.url);
const category = url.pathname.substring(1);

// Optionally, handle query parameters (e.g., page number)
const page = url.searchParams.get('page') || '1';
// Available values : wishlist, progress, complete
const type = url.searchParams.get('type') || 'complete';

let dbApiUrl = `https://neodb.social/api/me/shelf/${type}?category=${category}&page=${page}`;
const response = await fetch(dbApiUrl, {
method: 'get',
headers: {
'Accept': 'application/json',
'Authorization': `Bearer ${myBearer}`
}
});

// Check if the response from the API is OK (status code 200-299)
if (!response.ok) {
throw new Error(`API returned status ${response.status}`);
}

// Optionally, modify or just forward the API's response
const data = await response.json();
return new Response(JSON.stringify(data), {
headers: { 'Content-Type': 'application/json' },
status: response.status
});

} catch (error) {
// Handle any errors that occurred during the fetch
return new Response(error.message, { status: 500 });
}
}const myBearer = NEODB_TOKEN; // Assuming 'NEODB_TOKEN' is set in your Cloudflare Worker's environment variables

addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})

async function handleRequest(request) {
try {
console.log(myBearer)
const url = new URL(request.url);
const category = url.pathname.substring(1);

// Optionally, handle query parameters (e.g., page number)
const page = url.searchParams.get('page') || '1';
// Available values : wishlist, progress, complete
const type = url.searchParams.get('type') || 'complete';

let dbApiUrl = `https://neodb.social/api/me/shelf/${type}?category=${category}&page=${page}`;
const response = await fetch(dbApiUrl, {
method: 'get',
headers: {
'Accept': 'application/json',
'Authorization': `Bearer ${myBearer}`
}
});

// Check if the response from the API is OK (status code 200-299)
if (!response.ok) {
throw new Error(`API returned status ${response.status}`);
}

// Optionally, modify or just forward the API's response
const data = await response.json();
return new Response(JSON.stringify(data), {
headers: { 'Content-Type': 'application/json' },
status: response.status
});

} catch (error) {
// Handle any errors that occurred during the fetch
return new Response(error.message, { status: 500 });
}
}

然后点击 Deploy 部署即可。

注意在这一步中,需要复制保留左侧 Preview 下方的网址,示例 https://xyz-hall-ohxu.user.workers.dev/

WordPress Shortcode

在 WordPress 管理后台,导航到“外观” -> “主题编辑器”。

找到并编辑当前主题的 functions.php 文件。

将以下代码添加到 functions.php 文件中。这段代码创建了一个名为 neodb 的短代码。

注意:将代码中的 https://your-worker-url/ 替换为 Cloudflare worker 中的 https://xyz-hall-ohxu.user.workers.dev/

function neodb_shortcode($atts) {
$atts = shortcode_atts(
array(
'category' => 'book',
'type' => 'complete',
),
$atts,
'neodb'
);

$category = $atts['category'];
$type = $atts['type'];

$url = sprintf('https://your-worker-url/%s?type=%s', $category, $type);

$response = wp_remote_get($url);
if (is_wp_error($response)) {
return '数据获取失败';
}

$body = wp_remote_retrieve_body($response);
$data = json_decode($body, true);

if (empty($data['data'])) {
return '没有找到相关数据';
}

ob_start();
?>
<div class="item-gallery">
<?php foreach (array_slice($data['data'], 0, 10) as $value): ?>
<?php $item = $value['item']; ?>
<div class="item-card">
<a class="item-card-upper" href="<?php echo esc_url($item['id']); ?>" target="_blank" rel="noreferrer">
<img class="item-cover" src="<?php echo esc_url($item['cover_image_url']); ?>" alt="<?php echo esc_attr($item['display_title']); ?>">
</a>
<div class="rate">
<?php if (!empty($item['rating'])): ?>
<span><b><?php echo esc_html($item['rating']); ?></b>🌟</span>
<br>
<span class="rating-count"><?php echo esc_html($item['rating_count']); ?>人评分</span>
<?php else: ?>
<span>暂无🌟</span>
<br>
<span class="rating-count"><?php echo esc_html($item['rating_count']); ?>人评分</span>
<?php endif; ?>
</div>
<h3 class="item-title"><?php echo esc_html($item['display_title']); ?></h3>
</div>
<?php endforeach; ?>
</div>
<style>
.item-gallery {
display: flex;
padding: 0 1rem;
overflow-x: scroll;
align-items: baseline;
}
.item-card {
display: flex;
flex-direction: column;
flex: 0 0 17%;
margin: 0 0.5rem 1rem;
border-radius: 5px;
transition: transform 0.2s;
width: 8rem;
}
.item-card:hover {
transform: translateY(-5px);
}
.rate {
text-align: center;
}
.rating-count {
font-size: 0.8rem;
color: grey;
}
.item-cover {
width: 100%;
min-height: 3rem;
border: 2px solid transparent;
}
.item-title {
font-size: 1rem;
text-align: center;
margin: 0;
}
</style>
<?php
return ob_get_clean();
}
add_shortcode('neodb', 'neodb_shortcode');

使用代码

在 WordPress 页面或文章中,使用以下短代码来显示数据:

CleanShot 2024-12-20 at 00.09.10@2x.png

book 可以替换为 movie, tv, podcast, music, game, performance,展示更多数据。

type 可选 wishlist 和 complete,展示想看和看过的内容。

效果示例:https://anotherdayu.com/neodb/

CleanShot 2024-12-19 at 23.56.56@2x.png

另,附上我的 NeoDB主页:https://neodb.social/users/anotherdayu/,和 mastodon 账号:https://mastodon.social/@anotherdayu

博客2024年的最后小迭代

作者 Jeff
2024年12月8日 15:15

利用周末对博客的服务器及程序进行了一次升级。切换了 PHP 的版本,并对 Nginx 和 Memcached 都进行了升级。

此次更新主要还是为了启用 AVIF 格式的图片,AVIF 需要 PHP8 才支持。考虑到 92.9% 的主流浏览器已经支持 AVIF 格式,所以我没有考虑对低版本的浏览器进行兼容,直接整站图片替换为 AVIF 格式,删除了原图。整站图片从压缩前的 1.3GB 直接降到了 700MB,效果显著。

我的方法是使用 XnConvert 软件在本地全量压缩后上传至服务器进行切换,再使用 SQL 命令对 wp_posts 和 wp_postmeta 两个表进行图片后缀更新。主要涉及 wp_posts 表的 post_content, guid, post_mime_type 字段,和 wp_postmeta 表的 meta_value 字段。

切换 PHP 版本后,程序扩展还是 Memcached 搭配 opcache,切换 Redis 感觉没必要。WordPress 插件还是 object-cache 搭配 Autoptimize,目前也只使用这两个插件,其他都删除了,更多依赖在服务器端进行优化。

本次是2024年的最后一次折腾博客啦。

主要更新记录如下:
- PHP 版本切换至 PHP8
- 对 PHP8 进行代码适配
- 升级 Nginx 至最新版
- 升级 Memcached 至最新版
- 整站图片替换为 AVIF 格式
- 其他一些小细节优化

目前使用的自托管服务

作者 Dayu
2024年12月6日 09:52

趁着黑五,新购置了配置高些的 VPS。折腾一番后,整理了目前自托管的服务。

第一个 VPS (Bandwagon)托管了 2 个项目 wordpress(建站) 和 Umami(数据统计),保持全球稳定的线路,和博客的稳定性:

第二个 VPS(Racknerd) 托管了 11 个项目:

  • Freshrss,RSS 阅读器,目前还安装了两个扩展:TranslateTitlesCN(谷歌翻译标题) 和 Auto Refresh(自动刷新)。日常我会使用 Reeder 登录 freshrss 账号阅读。Freshrss 因是网页端的,所以也很适合配合 immersive translate 使用。
  • wewe-rss,生成微信公众号订阅源,实际使用还挺稳定的,最后订阅了 27 个微信公众号。
  • rsshub,为其他网站生成RSS源,自建的更稳定些。
  • RSS-Bridge,订阅部分 rsshub 无法订阅的内容。本想用来订阅 instagram,但不稳定。不过功能确实挺强,便留下观察。与rsshub有很多互补之处,比如 rsshub 如果要订阅 telegram channel 比较复杂,RSS-Bridge 目前则比较简单。经费充裕的话,可以尝试 thefeedreaderbot,使用 webshare 的动态代理 ip,能够躲过 Block.
  • AdGuardHome,DNS 去广告服务,配合浏览器插件uBlock Origin,效果很好。
  • n8n,工作流自动化平台。
  • calibre-web,在线电子书库管理系统。
  • laber,跨越付费墙。
  • FileCodeBox,文件分享。
  • qBittorrent Web UI,BT 下载客户端的 Web 界面,可以远程管理和控制BT下载任务。
  • NextChat,以前叫 ChatGPT-Next-Web,ChatGPT 网页端界面,专门部署给家人使用。

更多自部署软件可参考:awesome-selfhostedTop 3 BEST applications you’ve decided to self-host? 。想轻量级省心的可以试试 YunoHost

个人倾向于将关键的非隐私类文件托管于信誉较好的大平台,如 Dropbox 和 1Password,所以没有使用自托管云盘和密码软件。

Calibre-web 数据库路径和下载权限 500 Internal Server Error 问题

作者 Dayu
2024年11月25日 14:23

最近用 Docker 搭建了 Calibre-Web(书籍管理阅读平台),出现了一些问题,以下是解决方案。

Calibre 数据库路径

先是进入网页界面中,需要填写 Calibre 数据库路径,该路径需要进入 Docker 容器内部,创建数据库,并添加写入权限。

先查看容器内目录结构,并进入 bin。

docker exec -it calibre-web sh

ls /

cd bin

创建一个空的数据库。

calibredb add --empty --with-library /books

如果上面的命令成功,则设置正确的权限。

chmod -R 777 /books

初始化数据库。

calibredb add --empty --with-library /books

退出容器。

exit

OPDS

支持 OPDS 的阅读器,能更方便的下载和阅读 Calibre-web 中的书籍。

OPDS link 的正确格式是:http(s)://username:password@ip/hostname:port/opds

ip/hostname:port,也可以是网站域名。

iOS 中推荐 Cantook

CleanShot 2024-11-25 at 14.15.29@2x.png

下载权限问题

在绑定 OPDS 阅读器的时候,我发现无法正常下载书籍,网页版也有相同问题,但仍可以阅读。报错:500 Internal Server Error。

这部分报错是比较新的问题,在 Github issue 中找到了解决方案。与 PUID/PGID 相关,应使用运行 Docker 的用户的 ID,这样可以确保容器内外的权限一致。

重新回到 docker-compose.yml 中,将这两者都设为 1000,再重启 docker 即可解决。

services:  
  calibre-web:    
    environment:      
      - PUID=1000      
      - PGID=1000

2024年的付费墙

作者 Dayu
2024年11月25日 11:55

免责声明:本文仅用于教育目的。作者不认可或鼓励任何不道德或非法活动。使用此工具的风险由您自行承担。

12ft 是一个帮助用户绕过在线付费墙的插件,2023年被投诉下线之后,这些可以作为替代品:

考虑到工具的稳定性和长期性,我日常使用的是 Webpage archive 、自托管的 Ladder 和 Ublock origin(Firefox版)。

多语言博客WordPress 插件 Polylang

作者 Dayu
2024年11月17日 22:48

我对多语言博客 WordPress 插件有以下几个需求:

  • 保持长期更新;
  • 免费或者不贵的买断制;
  • 中英文界面可同时 SEO 索引;
  • 操作简单易于多语言用户理解;
  • 中英文 RSS Feed 可以分开。

尝试多款插件之后,决定使用 Polylang,需求都能满足,且免费功能就够用。虽然内容需要自己翻译,但我也不是每篇都想翻译成英文,且借助 ChatGPT 并不费劲。

Pro 版(99欧元)可以和 DeepL 深度整合,并支持更多自定义功能。

基础设置跟着 Setup 流程即可。之后每翻译一篇,就会在英文界面展示一篇。

设置完成后的效果:https://anotherdayu.com/en/

Kagi 使用体验和近期更新:翻译、助手和与Perplexity的对比

作者 Dayu
2024年11月17日 10:50

距上次聊 Kagi 已经过去几个月,当时初用不久,分享了一些使用技巧

近期 Kagi 又更新了一些功能,如翻译、助手(Assistant)和一些基础体验优化。

基础体验优化

Kagi 技术团队的响应速度很快,5月份的时候发邮件建议将中文「?」作为快速回答启动器,近期不知不觉中就支持了。

另外,Kagi 有一个贴吧 Kagi Feedback,能提交希望实现的新功能,并还可以勾选 Roadmap 中优先级高的任务,支持得人越多,进度应该会越快。

Translate

翻译功能是这个月新加入的,访问 translate.kagi.com 即可直接使用,界面清爽,由于是基于LLM的翻译工具,速度不及谷歌翻译。

大多数情况它的体验不错,但对科研相关专业词汇的识别,Kagi Translate 的效果就有些一般,经常出错。希望未来会有针对性的优化。

有一个小技巧:将翻译界面下面的 Kagi Translate 书签移动到书签栏,后续在希望翻译的网页上点击该书签,即可跳转到 Kagi Translate 界面得到网页翻译结果。

CleanShot 2024-11-17 at 10.20.50@2x.png

Assistant

9月份 Kagi 公布了 Assistant,需要 Ultimate Plan 的用户才能免费使用。家庭组用户可以将单个用户升级为 Ultimate Plan,该用户需每月额外支付 15 美元。

Kagi Assistant 与 Perplexity 的功能接近,并可以访问 Claude 和 ChatGPT。实际体验略逊于 Perplexity,但差距不大。毕竟是刚出的功能,值得期待。

15 美元比 Poe 的月费要便宜一些,界面舒适度要优于 Poe。日常使用中我是能把 Poe 每月 token 用光的,Kagi 似乎目前还没有限制,我就使劲用吧。

CleanShot 2024-11-17 at 09.39.30@2x.png

个人体验

Kagi 我目前是 Ultimate Plan,Perplexity 也购买了会员。

未开启 Kagi Assistant 之前,我的使用体验是:

  • 需要快速概览的用 Perplexity,它给的信息会具体易懂一些,日常快搜常用。
  • 需要精确性和真实性的用 Kagi,先看「快速回答」里的概要,然后往下翻精确信息源。
  • 专业性越强,越想了解得深入,越会选择 Kagi。

开启 Kagi Assistant 之后:

  • 很少开启 Perplexity了,偶有 Kagi Assistant 回答不清晰的问题,Perplexity 其实也无法解决。
  • 「Kagi 快速回答」可以快捷跳转 Kagi Assistant,还挺常用的。
  • 小众服务的福利是 Kagi Assistant 无须梯子,即可在国内使用。

其他

Orion 浏览器也是 Kagi 公司的产品,最近发现它的日常更新维护还挺频繁的,也又评测了一下,发现兼容性还是堪忧,沉浸式翻译的 Chrome 和 Firefox 版都无法正常支持。

戴尔显示屏(U2720QM)屏闪问题

作者 Dayu
2024年11月16日 16:21

目前我使用的显示屏是 Dell U2720QM,偶尔有屏闪问题(4 年间出现过 3 次)。

过去一直以为是电压不稳或接触不良,关机一段时间重启就好了,但昨晚反复重启多次也没有恢复。

于是查了些资料,发现屏闪似乎是 Apple M 系列芯片的通病,尤其是 M1 和 M2 芯片,且 BenQ 也会出现该问题。

解决方法千奇百怪,大家各有各的道理:

  • 弃用 Type-C,改用 HDMI;
  • 关闭 freesync;
  • 关闭 True Tone 和 Auto Adjust Brightness;
  • 使用 Colour LCD 色彩文件;
  • 下载 Dell Display and Peripheral Manager Application(可能是我的显示器太旧了,该软件不适配);
  • 将分辨率锁定为60;
  • 等等。

这些方法都不适用于我的情况。最终激活显示器硬件设置中的 LCD Conditioning 后,解决了屏闪问题。

另外,也有网友表示开源软件 aiaf/Stillcolor 可以通过禁用时间抖动(Temporal Dithering)永久解决该问题,我目前已安装,有备无患。

Devonthink 出品的免费软件

作者 Dayu
2024年11月4日 20:42

DEVONtechnologies 是一个 macOS 软件公司,其最知名的产品 Devonthink,用于文件和信息管理。

每次逛 Devonthink 的社区 —— DEVONtechnologies Community,都能给我不小的惊喜。前段时间发现 DEVONtechnologies 原来还发布了很多功能强大的免费软件/插件:

WordService,针对选择文本的小工具,比如转成繁体中文、格式化文本等。

CalcService,是一款公式计算插件,在文本界面都可以使用。

EasyFind,用于替代 Spotlight 的文件检索软件,适合更高级的精确文件搜索需求。相似的软件还有 GoToFileFoxTrot Search

Neo Network Utility,网络工具,用于获取网络适配器信息并诊断常见的网络问题。

PhotoStickies,将喜欢的图片直接展示在桌面上。桌面相册(photoalbum)也有相似地功能,样式稍微好看一些。

ThumbsUp,设置好参数后,将图像拖拽到该软件的图标上,即可调整图片分辨率和大小。

XMenu,在菜单栏添加程序、文件、文档、文本的快速访问窗口。

DEVONagent Lite,网页检索工具,可以提前配置一些搜索习惯。完整付费版为:DEVONagent Express 和 DEVONagent Pro。

❌
❌