4作者: simoneamico13 天前原帖
嗨,HN! 这是我刚刚部署的一个工具,它可以在不破坏图像的情况下以暗黑模式渲染PDF。内部和外部链接保持完整,我决定实现导出功能,因为我不喜欢平台锁定:你可以在任何设备上使用你喜欢的阅读器查看你的暗黑PDF。 这是一个源于个人需求的副项目。当我在工厂里阅读那些最终帮助我摆脱困境的书籍时,我遇到了一个问题:许多学习材料和书籍包含的图像和图表,迫使我在当时可用的暗黑阅读器中始终保持原始文件的多任务处理,因为图像变得,委婉地说,有些奇怪。 我希望它能帮助一些有相同需求的你们。我认为这对研究人员可能非常有用,但只有未来的使用情况才能证明这一点。 基于这个前提,我想分享使这一切成为可能的选择。为此,我将介绍 veil 从原始PDF创建的三个层次: - 第一层:CSS滤镜。我在主画布上使用 invert(0.86) hue rotate(180deg)。我使用0.86而不是1.0,因为我发现完全反转会产生过于强烈的纯黑和纯白,不适合长时间阅读。0.86产生柔和的深灰色(大约是 #242424,具体取决于文档的白色)和柔和的白色(大约是 #DBDBDB)用于文本,我发现这是长时间阅读时最舒适的值。 - 第二层:图像保护。第二个画布位于第一个画布之上,这次没有滤镜。通过PDF.js的公共API getOperatorList(),我遍历PDF的操作符列表并重建CTM堆栈,即PDF用于定位页面上每个对象的保存、恢复和变换操作。当我遇到 paintImageXObject(在PDF.js v5中的操作码85)时,当前的变换矩阵给了我图像的确切边界。此时,我从干净的渲染中复制那些像素到覆盖层。我没有分叉PDF.js,因为考虑到代码库的长度和频繁的更新,这将变成一个维护噩梦。图像还会接受OCR处理:图表和图像中的文本变得可选择,就像页面上的任何其他文本一样。此时,我们已经将文本反转,而图像保持完整。但如果页面已经是深色的呢?也许章节标题页是黑色的,文字是白色的?下一层会处理这个问题。 - 第三层:已暗页面检测。在渲染后,通过采样页面的边缘和角落(在这些地方最有可能找到纯背景,没有文本或图像的干扰)来测量背景亮度。使用BT.601公式计算感知亮度,通过加权三个颜色通道来反映人眼的感知:绿色58.7%,红色29.9%,蓝色11.4%。这些权重反映了生物学:人眼在自然环境中进化,区分绿色的阴影(植被、草丛中的捕食者)是生存问题,而蓝色(天空、水)则不那么关键。如果平均亮度低于40%,则将页面标记为已暗,跳过反转,返回原始页面。背景为深色的演示文稿幻灯片将保持原样,而不是被反转成刺眼的效果。 扫描文档会自动检测,并通过Tesseract.js进行OCR处理,使文本可选择和可复制,即使在本质上是图像的PDF上也是如此。 一切都在本地运行,没有使用框架,只是纯JavaScript,这就是为什么它是一个可安装的PWA,也可以离线工作。 这是应用程序的链接以及代码库链接: [https://veil.simoneamico.com](https://veil.simoneamico.com) | [https://github.com/simoneamico-ux-dev/veil](https://github.com/simoneamico-ux-dev/veil) 我希望 veil 能让你的阅读更加愉快。我欢迎任何反馈。谢谢大家!
3作者: kathir0513 天前原帖
我们每个人都从一个想法开始,零客户,零关注者,对我们的创业项目没有长期的清晰规划。<p>在某个时刻,你会坚定地相信,这个想法是可行的,值得全职去追求,即使一开始没有任何收入。<p>对于HuntYourTribe来说,经过两个月的努力,我们收到了10个由陌生人建立的作品集,其中一些甚至在他们的GitHub个人资料中保留了链接。这就是我们的突破!<p>即使没有任何付费客户,我们还是决定全职投入这个创业迷宫,现在已经有10多个付费客户。<p>你的转折点是什么?
2作者: plawlost13 天前原帖
rses claude 与 codex --last<p>就是这样。读取 Codex 会话(任务、git 日志、最近 N 次交互、会话文件指针),构建结构化的交接信息,并以此作为第一条消息启动 Claude。支持 Claude Code、Codex CLI 和 OpenCode 之间的六个方向的交互。<p>为高级用户提供的简写:rses cc w cdx --last<p>大约 1200 行代码,依赖一个 npm 包(commander),无需配置。使用 Node 22+ 内置的 SQLite 来管理会话索引。<p>npm i -g rses-cli<p>https://github.com/yazcaleb/rses
1作者: RicDan13 天前原帖
我一直觉得很难理解新闻的传播范围。由于我在 Python 上也有些落后,我决定从头开始构建一些东西。 这个项目非常简单:使用 Docker Compose,微服务连接到一些非常基础的数据管道,采用 RabbitMQ,以及一些本地的自然语言处理(NLP)。由于纯 CPU 处理的原因,NLP 部分的速度有些慢,如果你有 GPU 或 NPE 的话,无法充分利用。 这个工具允许你定义自己的“标签”和“关系”,然后本地的 NLP 模型会根据这些定义为新闻文章分配相应的标签。默认情况下,只有几个标签被包含在内。 但目标是拥有一个个人新闻聚合器,添加或更改新闻来源(如果它们有 RSS 源)应该通过 Docker Compose 文件变得相当简单。
1作者: theturtletalks13 天前原帖
我一直在构建一个开源的 Shopify 替代品,因此在其中加入代理商业功能也显得很合适。 我注意到 ChatGPT Checkout 的发展方向,另一个专有市场,他们控制着哪些卖家可以获得访问权限和优先权。这种更多的把关和寻租行为显而易见,Shopify 商店将会受到优待。 因此,我构建了“/marketplace”,一个完全开源的替代方案,配备灵活的适配器系统。它已经支持 Openfront(我正在开发的 Shopify 替代品),但它的设计是为了与任何电子商务平台兼容,而不仅仅是 OpenAI 决定优待的平台。您可以使用自己的 OpenRouter 密钥或在本地连接到 Ollama,这样您的购物数据就能保持私密并由您掌控。 目前它有两个演示商店,Impossible Tees 和 Nimbus Gallery。 随着我们为餐厅、健身房和其他垂直行业推出更多 Openfront,这些商店应该能够接入聊天功能。 演示链接: [https://marketplace.openship.org](https://marketplace.openship.org) 代码库: [https://github.com/openshiporg/marketplace](https://github.com/openshiporg/marketplace) 了解更多信息: [https://openship.org/products/marketplace](https://openship.org/products/marketplace)