| .github/workflows | ||
| docs | ||
| scripts | ||
| src | ||
| tests | ||
| .gitignore | ||
| .npmrc | ||
| esbuild.config.mjs | ||
| eslint.config.mjs | ||
| LICENSE | ||
| manifest.json | ||
| package-lock.json | ||
| package.json | ||
| README.md | ||
| README_CN.md | ||
| styles.css | ||
| tsconfig.json | ||
| versions.json | ||
| vitest.config.ts | ||
Zhihu Reader
Read Zhihu questions and answers in a native reader view, then save only the answers worth keeping as Markdown notes.
Zhihu Reader is an unofficial project and is not affiliated with Zhihu. Changes to Zhihu APIs, authentication, or risk-control systems may temporarily affect some features.
Features
- Render questions and answers through Obsidian's Markdown renderer.
- Search Zhihu answers, browse personalized recommendations, and view the daily hot list.
- Keep a local history of successfully opened questions.
- Read answer comments.
- Click an author avatar to browse that author's public answers.
- Vote for or unvote an answer.
- Save one answer per Markdown file.
Screenshots
Installation
Community plugins
Once Zhihu Reader is available in the community plugin directory:
- Open Settings → Community plugins.
- Select Browse and search for Zhihu Reader.
- Install and enable the plugin.
Manual installation
-
Download
main.js,manifest.json, andstyles.cssfrom a release. -
Create this directory inside your vault:
<your-vault>/.obsidian/plugins/zhihu-reader/ -
Copy the three files into that directory.
-
Reload Obsidian.
-
Enable Zhihu Reader under Settings → Community plugins.
Getting started
- Enable Web viewer under Settings → Core plugins.
- Open Settings → Zhihu Reader.
- Sign in using one of the available methods.
- Select the Zhihu Reader ribbon icon.
- Select Open link in the reader toolbar and paste a supported URL.
- Read the answer, move through the answer queue, or save the current answer.
You can also copy a supported URL and run the Open from clipboard command.
Supported URL formats:
https://www.zhihu.com/question/QUESTION_ID
https://www.zhihu.com/question/QUESTION_ID/answer/ANSWER_ID
Reading shortcuts
| Key | Action |
|---|---|
H |
Previous answer |
J |
Scroll down |
K |
Scroll up |
L |
Next answer |
Settings
| Setting | Default | Description |
|---|---|---|
| Answers per request | 6 |
Requests between 1 and 20 answers per feed page |
| Default answer order | Default ranking | Controls the initial question feed order |
| History limit | 50 |
Maximum number of question history entries |
| Answer save folder | Zhihu Reader |
Folder relative to the vault root |
| Note path template | Question/author/answer ID | Controls generated note paths |
| Open after saving | Enabled | Opens the generated Markdown note |
| Download images to the vault | Disabled | Downloads images only when saving |
When image downloading is enabled, attachments can follow the global attachment setting or use a dedicated folder.
Commands
The command palette provides commands for:
- Opening a Zhihu question or answer URL.
- Opening a Zhihu URL from the clipboard.
- Searching Zhihu answers.
- Opening the personalized recommendation feed.
- Opening the daily hot list.
- Opening question history.
- Saving the currently displayed answer.
Obsidian hotkeys can be assigned to any of these commands under Settings → Hotkeys.
Development
The project uses TypeScript, the Obsidian Plugin API, React, esbuild, Zod, Turndown, Vitest, ESLint, and GitHub Actions.
Install dependencies and start a development build:
npm install
npm run dev
Run all checks before submitting a change:
npm run check
Releasing
The release script requires a clean worktree. It synchronizes package.json,
package-lock.json, manifest.json, and versions.json, runs the complete
check suite, then creates a release commit and an annotated Git tag.
Create a patch release locally:
npm run release -- patch
You can also use minor, major, or an explicit version such as 1.2.3.
Add --push to push the commit and tag immediately:
npm run release -- patch --push
Pushing the tag triggers the GitHub Actions release workflow, which rebuilds
the plugin, creates artifact attestations, and publishes main.js,
manifest.json, and styles.css to GitHub Releases.
Project documentation:
License
Zhihu Reader is released under the MIT License.
Acknowledgements
Special thanks to Zhihu++ for its open-source work. Its implementation was an important reference for understanding Zhihu API request flows and helped make this project possible.