浏览器扩展 活跃维护

darkreader

darkreader/darkreader

Dark Reader 谷歌浏览器和火狐浏览器扩展

22452
Stars 标星
2752
Forks 分支
180
Watchers 关注
1462
Open Issues
TypeScript
主要语言
MIT
开源协议
38.1 MB
仓库大小
10 小时前
最后推送
一键安装扩展 / 插件指令
dsh plugin --profile web add github:darkreader/darkreader
git clone https://github.com/darkreader/darkreader.git
git clone git@github.com:darkreader/darkreader.git
README.md main

英文原文正文为项目原始 README(英文),本站后续会翻译为中文,当前仅剔除图片与无关章节并统一排版。

Dark Reader analyzes web pages and aims to reduce eyestrain while browsing the web.


暗黑模式阅读器


Dark Reader is an open-source MIT-licensed browser extension designed to analyze web pages. Dark Reader will generate a dark mode that aims to reduce the eyestrain of the user. Dark Reader is feature-rich and is customizable in many ways throughout the UI.



问题

Most questions can be answered by reading the help page. If the help page doesn't answer your question, open up a new discussion.

如何贡献

Read more about contributing to Dark Reader in CONTRIBUTING.md.

为使用构建

Dark Reader build script requires a JavaScript runtime, either Node.js or Deno. We recommend using Node.js, Deno support is experimental.

Building with Node.js

You can install the extension from a file. Install Node.js (we recommend LTS or higher, but any version at or above 15 will work). Download the source code (or check out from git). Open the terminal in the root folder and run:

  • npm install
  • npm run build or npm run build [-- flags]

This will create a build/release/darkreader-chrome.zip file for use in a Chromium-based browser and a build/release/darkreader-firefox.xpi file for use in Firefox.

You can customize the build process by passing flags to build script. To see all flags, run npm run build -- --help.

Building with Deno

You can build Dark Reader with an alternative runtime called Deno. For this run deno:bootstrap script (e.g., via npm run deno:bootstrap or manually copy the command from package.json). Then run the same commands described above.

Please note that if you encounter the error Too many open files (os error 24), then you should use the newer version of Deno (preferably built from source or canary).

Bundling with official Firefox store signatures (experimental)

Before publication, extension stores provide digital signatures for extensions. These digital signatures certify the integrity of the archive (that the extension bundle did not get corrupted or bit-rotted) and that the extension store performed very basic extension validation.

Dark Reader 仓库包含这些数字签名,您可以将它们添加到扩展包中。以下内容将为 Firefox 版本 4.9.63 构建 Dark Reader:

npm run build -- --firefox --version=4.9.63

请注意,目前仓库中仅存在 Firefox 附加组件商店的签名。此外,由于 NodeJS 和 TypeScript 版本的兼容性,可能需要先检出旧的修订版本(提交),然后构建扩展文件,再检出最近的提交并创建捆绑包(仅运行 signature 和 zip 步骤)。

在网站上使用暗黑模式阅读器

您可以使用 Dark Reader 在您的网站上启用暗模式!

  • 从 NPM 安装该包(npm install darkreader)
  • 或者从源代码构建(npm run api)
  • 或者通过 CDN 引入脚本,例如 unpkg 或 jsDelivr

然后你可以使用以下代码来控制 Dark Reader 的 API:

DarkReader.enable({
    brightness: 100,
    contrast: 90,
    sepia: 10
});

DarkReader.disable();

// Enable when the system color scheme is dark.
DarkReader.auto({
    brightness: 100,
    contrast: 90,
    sepia: 10
});

// Stop watching for the system color scheme.
DarkReader.auto(false);

// Get the generated CSS of Dark Reader returned as a string.
const CSS = await DarkReader.exportGeneratedCSS();

// Check if Dark Reader is enabled.
const isEnabled = DarkReader.isEnabled();

... 或者如果你正在使用 ES 模块:

import {
    enable as enableDarkMode,
    disable as disableDarkMode,
    auto as followSystemColorScheme,
    exportGeneratedCSS as collectCSS,
    isEnabled as isDarkReaderEnabled
} from 'darkreader';

enableDarkMode({
    brightness: 100,
    contrast: 90,
    sepia: 10,
});

disableDarkMode();

followSystemColorScheme();

const CSS = await collectCSS();

const isEnabled = isDarkReaderEnabled();

请注意,Dark Reader 会将 chrome 对象添加到 window 对象上。这些是用于存根代码将使用的某些函数。它们来源于 webextension-api。

网站修复

自动为每个 Dark Reader 用户同步网站修复已被禁用,因为 GitHub 团队不允许将 GitHub 用作内容分发网络(CDN)。存储这些文件的成本会很高,并且向其他资源发出请求看起来会很可疑。每个新的 Dark Reader 版本都会包含新的更改。

然而,可以通过以下步骤手动启用此功能:

  1. 点击 Dark Reader 扩展图标。
  2. 点击 Dev tools 按钮(在右下角)。
  3. 前往 Advanced 并点击 Preview new design 按钮。
  4. 关闭开发者工具窗口,然后再次点击 Dark Reader 扩展图标。
  5. 转到 Settings -> Advanced 并启用 Synchronize sites fixes 设置。

要强制同步网站修复(当启用相应设置时),请执行以下步骤:

  1. 点击 Dark Reader 扩展图标。
  2. 依次进入 Settings -> Advanced -> Dev tools。
  3. 对于每个“编辑器”部分,点击 Reset changes,确认 OK,然后点击 Apply。之后,关闭开发者工具窗口并重新加载所需的页面。

在 Mozilla Firefox 上在受限制页面启用暗黑模式阅读器

默认情况下,Dark Reader 无法在某些网站上工作,因为 Mozilla 实施了安全限制。

以下说明将指导您如何禁用这些限制。

请谨慎操作。如果你不知道自己在做什么,这会让你面临安全风险。

在继续之前,请确保您没有安装任何可疑或恶意的扩展程序。

这些设置将应用于所有扩展,而不仅仅是 Dark Reader。

第1步:更改 Dark Reader 的设置。

  1. 点击 Dark Reader 扩展图标。
  2. 点击 Dev tools 按钮(在右下角)。
  3. 前往 Advanced 并点击 Preview new design 按钮。
  4. 关闭开发者工具窗口,然后再次点击 Dark Reader 扩展图标。
  5. 转到 Settings -> Advanced 并启用 Enable on restricted pages 设置。

步骤 2:更改 Firefox 的设置。

  • 在地址栏中输入 about:config,然后按回车。
    • 可能会出现一个警告页面。点击 Accept the Risk and Continue 继续。
  • 搜索并将 extensions.webextensions.restrictedDomains 设置为空值(如果该偏好设置不存在,请创建它,类型为 String)。
  • 将 privacy.resistFingerprinting.block_mozAddonManager 设置为 true(如果偏好设置不存在,请创建它,类型为 Boolean)。

在为 Dark Reader 和 Firefox 更改必要的设置后,重新加载所需的页面。

如果您之前更改过以下任何偏好设置,请将它们重置为默认值,因为它们仅与安全性相关,并非 Dark Reader 在受限网站上运行所必需。 要重置它们,请在 about:config 中偏好设置行的最右侧点击重置图标(如果有的话,也可以是删除图标)。

  • extensions.webextensions.addons-restricted-domains@mozilla.com.disabled
  • extensions.quarantinedDomains.enabled
  • extensions.quarantinedDomains.list

关于被隔离域名的说明(“在有限制的网站上运行”选项)

被隔离的域名和 Dark Reader —— 解析

选项 " 在受限制的网站上运行 ",某些扩展存在,仅与被隔离的域相关,对于 Dark Reader 在受限制网站上的工作并不需要。在 Firefox 源代码的上下文中," 受限制的域 " 和 " 被隔离的域 " 是两个不同的概念。

The "restricted domains" list (controlled by the preference extensions.webextensions.restrictedDomains) is the same for all users. It will restrict all user-installed extensions (without exceptions) from running on the specified websites. The list is controlled by Mozilla, and, as of December 2024, the list only contains Mozilla-owned domains. Sites that are not on that list will not be affected by those restrictions (meaning that the extensions will be able to run normally).

The "quarantined domains" list (controlled by the preferences extensions.quarantinedDomains.enabled and extensions.quarantinedDomains.list) contains domains that will run extensions normally, but if Firefox detects suspicious activity from a particular extension it will block that extension on those specific websites. The list is controlled by Mozilla, and, as of December 2024, the list only contains domains related to Internet banking in Brazil. For more information about quarantined domains, see "Why are some add-ons not allowed on sites restricted by Mozilla?".

For Dark Reader, the option "Run on sites with restrictions" is not shown because Dark Reader is a Recommended extension by Mozilla. (The "Recommended" status is only relevant for "quarantined domains", and does not affect "restricted domains".)

作为推荐扩展的事实意味着它符合 " 最高的安全性、功能性和用户体验标准 " 。被隔离的域只与扩展的安全性有关。因为 Dark Reader 被 Mozilla 认为是安全的,所以该选项不会显示,这意味着 它即使在被隔离的域上也会始终运行 (但如果受限域列表不为空,它仍会遵守 " 受限域 " 列表)。

关于被隔离的域,具体来说,有来自 Firefox 源代码的评论:

// 特权扩展以及任何具有推荐状态的扩展是
// 免于隔离域名的限制。

一个简要回顾所有这些信息的方法是:" 受限域 " 的存在是为了保护 Mozilla 拥有的网站(没有用户安装的扩展会在其上运行,没有例外),而 " 隔离域 " 则旨在保护用户免受恶意扩展的影响(并且这不适用于 Dark Reader,因为它是一个推荐扩展)。

贡献者


感谢所有贡献者!Dark Reader 的存在多亏了你们。



支持者


感谢所有慷慨的支持者!通过成为支持者来支持 Dark Reader。



赞助商

你们公司使用 Dark Reader 吗?请向你的经理或市场团队询问,你们公司是否有兴趣支持我们的项目。你的支持将使维护者能够投入更多时间进行维护和为大家创建新功能。此外,你们公司的标志将显示在 GitHub 上。谁不想获得一些额外的曝光呢?这里有相关信息。

感谢我们所有出色的赞助商!



本站来源与版权声明
  • 本文标题:darkreader - Dark Reader 谷歌浏览器和火狐浏览器扩展
  • 本文链接:https://www.cn121.com/browser/darkreader-darkreader.html
  • 原项目:darkreader/darkreader 版权归原作者 darkreader 及贡献者所有
  • 收录信息:本站于 2026-10-10 收录本项目,本页所列协议与仓库指标均为收录当时的状态;该日期之后原项目的版本更新与协议变更,本页不作同步。
  • 开源协议:收录时本项目采用 MIT(查看 LICENSE 原文),本站转载其原始文档(未改动文字,仅剔除图片与无关章节);使用、修改、分发请以该仓库 LICENSE 原文为准。
  • 站点出处:本文首发于 OneTwoOne,收录自 GitHub 开源项目 darkreader/darkreader。
  • 内容说明:本页正文为原项目 README 原文(英文),本站后续会翻译为中文(当前尚未译出,仅将二级标题译为中文,便于按栏目定位;标题原文可在下方原仓库中查看),仅剔除了图片与赞助等无关章节、并把相对链接改为绝对地址;页首简介为机器翻译自仓库描述。
  • 引用声明:商业转载、第三方聚合或 AI 检索训练引用时,请务必保留以上来源出处、本文永久链接,以及原项目的版权声明与许可信息。
  • 下架通道:若原项目此后变更或收紧了许可协议、或作者/权利人认为本站的收录方式(译文、排版适配、简介翻译等)超出其授权范围,请通过 xyd3302001@163.com 发送下架通知,并附上项目地址与本页链接。本站核实后将第一时间删除本页内容,或改为不复制原文的目录性收录;署名更正等其他要求可一并提出。