Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Code Novel Reader - 代码小说阅读器New to Visual Studio Code? Get it now.
Code Novel Reader - 代码小说阅读器

Code Novel Reader - 代码小说阅读器

xiaoyangxea

|
4 installs
| (0) | Free
在 VS Code 原生 TypeScript 编辑器中以代码注释阅读在线或本地小说,支持目录、翻页、进度和老板键。
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Code Novel Reader - 代码小说阅读器

从 VS Code Marketplace 安装 · 查看最新版本 · 反馈问题 · 安全报告

把在线或本地小说显示为 VS Code 原生 TypeScript 文档中的 // 注释。阅读页面不是 Webview,语法高亮、滚动条、标签页和普通代码文件一致。

这是一个给开发者摸鱼看小说的小工具:正文伪装成 TypeScript 注释,页面外观和普通代码文件几乎一样,不需要在编辑器与浏览器之间来回切换;遇到有人靠近时,还可以用老板键立即把小说内容替换成正常的诊断代码。

功能

  • 在线搜索:内置蚂蚁文学、纵横中文网和维基文库搜索,并可在设置中添加兼容的 HTML 搜索入口。
  • URL 导入:支持书籍目录页或任意章节 URL;识别后弹出可搜索的完整章节列表。
  • 通用网页解析:专用 CSS 规则优先,正文密度算法兜底;自动识别标题、目录、正文、上一章和下一章,并清理常见隐藏反采集文本。
  • 本地阅读:支持 TXT、Markdown、TEXT 和 EPUB;自动识别 UTF-8、GBK/GB18030、UTF-16LE。
  • TypeScript 伪装:正文以 // 注释混入诊断代码模板。
  • 翻页与翻章:编辑器按钮会根据当前位置自动显示“上一页/下一页”或“上一章/下一章”,章节末尾继续翻页会自动进入下一章。
  • 老板键:立即用正常 TypeScript 诊断管线替换全部阅读内容。
  • 进度与缓存:逐页保存进度,在线章节抓取后本地缓存。
  • 书架清理:移除本地书籍时可同时将 TXT/EPUB 源文件移入系统回收站;移除在线书籍会清理章节缓存。
  • 书架目录:每本书右侧提供小型目录和删除图标;目录可按章节名或序号搜索,在线目录可以刷新。
  • 书源管理:支持本地 JSON、粘贴 JSON、订阅 URL,以及根据目录 URL 自动生成安全书源。
  • 网络发现:可选接入用户自己的 Brave Search API Key,自动探测搜索结果中的小说目录。

安装

推荐直接打开 Marketplace 页面,或在 VS Code 扩展面板搜索:

@id:xiaoyangxea.code-novel-reader

从 Marketplace 安装后可以接收自动更新。离线安装可从 GitHub Releases 下载 VSIX,然后执行 Extensions: Install from VSIX...。

早期 0.3.1 及以下版本使用旧扩展 ID local-hu.code-novel-reader,需要先卸载一次旧版,再安装 Marketplace 版本;此后升级无需重复卸载。

使用

点击活动栏的书本图标:

  • 放大镜:搜索在线小说。
  • 链接:粘贴目录页或章节 URL。
  • 文件夹:打开本地 TXT/EPUB。
  • 服务器图标或书架中的“书源管理”:导入、测试和管理书源。
  • 点击书架中的书名继续阅读。

书籍右侧只保留“目录”和“删除”两个小图标,右键可以继续阅读或刷新目录。URL 导入完成后会弹出可搜索的章节目录。编辑器右上角的左右按钮会根据当前位置显示“上一页/下一页”,到章节边界时自动切换为“上一章/下一章”;每次翻页或翻章后都会定位到新内容顶部。

快捷键:

功能 Windows/Linux
上一页 / 下一页 Alt+Left / Alt+Right
上一章 / 下一章 Alt+Shift+Left / Alt+Shift+Right
章节列表 Ctrl+Alt+L
老板键 Ctrl+Alt+B

蚂蚁文学

以下两种 URL 均可导入:

https://www.mayiwsk.com/150_150607/
https://www.mayiwsk.com/150_150607/59106813.html

输入目录 URL 后会先规范化目录顺序,再弹出章节选择框。蚂蚁文学目录页顶部重复的“最新章节”区块不会再被当成目录开头。输入单章 URL 时,扩展会先识别正文与目录链接,再尝试加载完整章节列表;目录不可用时,会沿“上一章/下一章”动态扩展。

已适配站点

站点 搜索 URL 导入 专用目录/正文规则
蚂蚁文学 是 是 是
纵横中文网 是 是 是,已验证搜索、目录和公开章节
维基文库 是 是 是
69书吧 否 是 是;遇到 Cloudflare 验证时会明确停止
17K小说网 否 是 是;仅限可直接访问的公开页面
晋江文学城 否 是 是;不读取锁定或登录章节
起点中文网 否 是 公开章节规则,不处理付费或登录内容

此外还保留笔趣阁类静态模板和未知站点的通用正文密度识别。网站结构可能随时变化;表格表示扩展包含对应解析规则,并不保证站点始终可访问。通用模式会尝试常见的正文、目录、标题及上下章结构,但无法保证所有页面都能解析。

网络与代理排错

扩展会识别代理软件常见的 198.18.0.0/15 Fake-IP;遇到时自动通过 DNS-over-HTTPS 获取真实地址重试。也会依次读取:

  1. codeNovel.proxy
  2. VS Code 的 http.proxy
  3. HTTPS_PROXY、HTTP_PROXY、ALL_PROXY 环境变量

例如 Clash Verge 的混合代理端口是 7897 时:

{
  "codeNovel.proxy": "http://127.0.0.1:7897"
}

如果提示 HTTP 521、连接超时或人机验证,通常表示源站/CDN 暂时不可用、代理配置有误,或页面要求浏览器验证;这类错误与网页结构识别失败不同。扩展不会绕过验证码、登录或付费限制。

书源管理

在书架中点击“书源管理”,可以:

  • 导入本地 JSON 文件、粘贴 JSON 或订阅 URL。
  • 粘贴一本书的目录 URL,自动分析目录和第一章并生成书源。
  • 启用、禁用和测试书源;从订阅地址更新规则。
  • 复制、替换、导出或删除自己的书源。

书源是纯 JSON 声明式规则,只支持 URL 模板和 CSS 选择器,不允许 JavaScript、eval、命令、Cookie、Authorization 或自定义请求头。例如:

{
  "version": 1,
  "name": "示例小说网",
  "domains": ["books.example.com"],
  "search": {
    "url": "https://books.example.com/search?q={keyword}",
    "resultSelector": ".search-result",
    "titleSelector": ".book-title",
    "urlSelector": ".book-title",
    "authorSelector": ".author"
  },
  "catalog": {
    "titleSelector": "h1",
    "chapterSelector": "#chapter-list a"
  },
  "chapter": {
    "titleSelector": "h1",
    "contentSelector": "#content",
    "previousSelector": "a.prev",
    "nextSelector": "a.next",
    "catalogSelector": "a.catalog"
  }
}

导入书源与导入书籍 URL 是两个不同操作:书源描述一个网站的解析方式;书籍 URL 只把某一本书加入书架。直接导入书籍 URL 时,如果域名匹配已启用的自定义书源,会自动使用对应规则。

网络发现

在线搜索中可以选择“网络发现”。首次使用需要在书源管理中填写自己的 Brave Search API Key,密钥只保存到 VS Code SecretStorage。插件会搜索网页并对前 8 条结果探测目录,显示来源域名和识别章节数,用户确认后才导入;不会自动批量下载,也不会把结果标记为“免费正版”。搜索词会发送给 Brave,请根据自己的隐私要求决定是否启用。

没有 API Key 时,可以让扩展在系统浏览器中打开搜索,然后把找到的目录 URL 粘贴回来。

旧版兼容搜索入口

旧版 codeNovel.searchProviders 设置仍然可用。{keyword} 会替换为 URL 编码后的搜索词:

{
  "codeNovel.searchProviders": [
    {
      "name": "我的书源",
      "url": "https://example.com/search.php?searchkey={keyword}"
    }
  ]
}

搜索页面如果使用常见的表格、列表或卡片结构,扩展会自动识别。站点完全依赖 JavaScript、要求登录或启用反爬验证时无法直接抓取。

隐私与使用范围

  • 本地文件只在本机读取。
  • 在线导入仅请求用户选择的公开页面及其章节链接。
  • 书源和网络发现只允许 HTTP/HTTPS 地址,并拒绝明显的本机、局域网和带账号信息的 URL;单次网页响应限制为 8 MB。
  • 每次重定向都会重新验证目标;直连和代理请求都会检查全部 DNS 结果并固定到已验证的公网地址,阻止常见 SSRF 和 DNS 重绑定方式。
  • 自定义书源只能访问其 domains 声明的域名;复杂 CSS 选择器、跨域章节链接、过量并发和超大订阅都会被拒绝。
  • 本地 TXT/EPUB 最大 64 MB;EPUB 会在解压前检查正文展开量、单项尺寸和压缩比,防止 ZIP 压缩炸弹。
  • 网络发现默认未配置,只有用户主动选择时才会向 Brave 发送搜索词。
  • 阅读进度和在线缓存保存在 VS Code 的扩展全局存储目录。
  • 移除本地书籍时,只有明确选择“移除并删除源文件”才会把原文件移入系统回收站。
  • 老板键用于快速切换显示内容,不是加密或安全隔离功能。
  • 请仅阅读你有权访问的内容,并遵守内容网站的服务条款。

本地开发

npm ci
npm run check
npm test
npm run audit:security
npm run package

打包完成后会在项目根目录生成 code-novel-reader-<version>.vsix。如需报告解析问题,请参阅 SUPPORT.md。

发布新版本

仓库配置了 Marketplace 自动发布。更新 CHANGELOG.md 并确认测试通过后,可以执行:

npm version patch --no-git-tag-version
$releaseVersion = node -p "require('./package.json').version"
git add package.json package-lock.json CHANGELOG.md
git commit -m "release: v$releaseVersion"
git tag "v$releaseVersion"
git push origin main
git push origin "v$releaseVersion"

GitHub Actions 会校验标签与 package.json 版本完全一致,然后自动测试、打包并发布;例如版本 0.3.3 必须使用标签 v0.3.3。发布凭据保存在仓库的 VSCE_PAT Actions Secret 中,不应写入源码。PAT 过期后需要更新 Secret;根据微软公告,全局 Azure DevOps PAT 将于 2026 年 12 月 1 日退役,届时应迁移到 Microsoft Entra ID 发布方式。

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft