markdown-it-vitepress-encrypt
v0.1.0
Published
A markdown-it plugin for VitePress to encrypt private pages by frontmatter.
Maintainers
Readme
markdown-it-vitepress-encrypt(中文说明)
一个用于 VitePress 的 markdown-it 插件:通过页面 frontmatter 标记把页面内容加密,访问时输入密码(或通过 URL / 本地缓存)解密显示。
注意:这是 纯前端加解密 方案。构建产物会下发加密内容,并在浏览器端解密展示。请不要把它当作服务端权限控制。
安装
npm i markdown-it-vitepress-encrypt crypto-js在 VitePress 中使用
在 .vitepress/config.(js|ts) 中启用:
import vitepressEncrypt from 'markdown-it-vitepress-encrypt'
export default {
markdown: {
config(md) {
md.use(vitepressEncrypt, { password: 'your-password' })
}
}
}也支持按 pageType 配置多个密码:
md.use(vitepressEncrypt, [
{ pageType: 'default', password: 'p1' },
{ pageType: 'vip', password: 'p2' }
])页面 frontmatter 配置
在需要加密的页面顶部添加:
---
encrypt: true
encrypt-input: true
encrypt-pageType: default
encrypt-storage: true
---- encrypt:为
true时启用加密(必填) - encrypt-input:是否显示密码输入框,默认
true;设为false会隐藏输入框(仍可通过 URL 解锁) - encrypt-pageType:用于匹配不同密码规则;默认
default - encrypt-storage:是否在 localStorage 读写密码(默认
true);设为false可禁用本地保存/自动读取
解锁方式
插件会按顺序尝试:
- localStorage:
__ENCRYPT__${pageType}__(仅当encrypt-storage: true) - URL 参数:
?key=xxxx
解锁成功后会把密码写入 localStorage(仅当 encrypt-storage: true,便于同一 pageType 下次自动解锁)。
安全说明
- 该插件保护的是构建产物中的 HTML 渲染结果(加密存放/展示),但加密内容仍会随页面下发到浏览器。
- 任何拿到密码的人都可以解密,适合“轻量隐藏内容”,不适合高安全场景的访问控制。
License
MIT
