Skip to content
| Marketplace
Sign in
Visual Studio Code>Other>Zhihu PublisherNew to Visual Studio Code? Get it now.
Zhihu Publisher

Zhihu Publisher

connor

|
1 install
| (1) | Free
知乎一键发布 Markdown 的 VS Code 扩展
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

修复知乎vscode(Markdown)文章发布

重启:一个在 VS Code 中一键将当前 Markdown 发布到知乎文章的扩展,专注于最小必要功能与稳定性。

和类似项目的区别(由于zhihu升级,类似项目大多已经无法使用)

  1. 0帧起手,没有任何配置项
  2. 内置浏览器核心,不依赖Chrome/Chromium
  3. 打包大小不到 5MB
  4. 只专注于知乎文章发布,没有多余功能
  5. 积极维护,修复各种登录与风控问题(类似项目大多已经荒废)

功能特性

  • 自动获取当前活动 Markdown 内容(无需保存到临时文件)
  • 持久化登录(使用 globalStorage 下的浏览器用户数据目录)免重复扫码,失败时自动清理目录重试
  • 浏览器 headless 优先:后台静默完成导入流程;需要扫码或风控验证时自动切换到可视模式
  • 风控验证增强:检测风险页、按钮高亮提示、轮询头像出现后继续流程
  • 模态框导入 Markdown,自动填写标题(移除扩展名与前后多余分隔)
  • 状态栏实时显示流程阶段(就绪/启动/登录/风控/导入/完成/失败),仅在 Markdown 编辑器活动时可见
  • 系统默认浏览器中打开知乎编辑页或复制文章链接到剪贴板(可选)
  • 单实例浏览器管理:发布前关闭旧的 Puppeteer 实例,避免资源泄漏
  • User-Agent 通过 CDP Network.setUserAgentOverride 设置,兼容新版 API

快速开始

  1. 安装依赖:npm install
  2. 构建:npm run compile
  3. 打开任意 Markdown (.md/.markdown/...) 文件(扩展通过 activationEvents: onLanguage:markdown 自动激活,状态栏出现 Zhihu: 就绪)
  4. 命令面板执行:发布当前 Markdown 到知乎

使用流程(概览)

  1. 检测并关闭旧浏览器实例(如果存在)
  2. 以 headless 模式启动 Puppeteer → 快速头像检测判断是否已登录
  3. 未登录则切换到可视模式重新 launch(扫码 / 微信登录 / 风控验证)
  4. 登录与验证通过后再重新 headless launch 进入专栏写作页
  5. 打开导入模态框 → 上传当前 Markdown → 自动填标题 → 等待页面完成渲染
  6. 提示是否打开系统浏览器/复制链接 → 完成并保持状态栏 完成

浏览器模式切换策略

由于运行时无法直接从有头切换为 headless,流程采用“按需重启”:

  • 初次尝试 headless(速度快) → 需要交互则关闭并重启为可视
  • 登录/风控完成后关闭可视浏览器 → 再次以 headless 启动执行导入与填写标题
  • 每次 launch 都会更新全局 activeBrowser,命令结束或开始下次命令前统一关闭旧实例

登录与风控细节

  • 快速登录检测:访问主页并查找头像元素/相关选择器
  • 扫码:如果出现二维码区域,等待用户操作直到检测到头像
  • 风控验证:
    • 识别页面中文案(如“风险”相关关键词)
    • 高亮验证按钮(通过注入样式)
    • 定时刷新或轮询是否通过(检测用户信息元素出现)
    • 超时后给出交互提示,可选择重试/放弃

状态栏状态说明

状态 文案 说明
idle Zhihu: 就绪 扩展已激活且 Markdown 文件处于活动
launching 启动浏览器… 正在创建 Puppeteer 实例
loggingIn 登录中… 等待扫码或登录完成
risk 风控验证… 用户需在浏览器中手动完成验证
importing 导入中… 正在上传并填写标题
done 导入完成 成功,可能显示链接操作提示
error 失败 发生异常,可再次点击重试

后续增强想法

  • 可配置始终显示状态栏(即使非 Markdown)
  • 命令:手动关闭浏览器实例 / 清理登录缓存目录
  • 发布进度通知(弹窗或 OutputChannel 日志)
  • 自动截图或保存导入前后 HTML 片段用于排错
  • 图片与资源上传支持

许可

MIT

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