Typecho 文章段落内容加密插件 PartiallyPassword 指数:111℃ 日期:2024/07/01 插件简介Typecho文章部分加密插件(PartiallyPassword)支持对某一篇文章的特定部分创建密码,访客需要正确输入密码才能查看内容。插件预览插件使用下载解压后将其中的文件夹重命名为PartiallyPassword(如果它原本不是这个名字)并上传到 Typecho 插件目录下启用插件,即完成全部初始化工作。默认配置是一套极简风格的密码输入框,你也可以根据主题特性进行自定义修改。从旧版本升级首先备份插件配置(手动将其拷贝到文本文档中等方法),然后禁用旧版本插件。用新版本插件文件覆盖旧版本插件文件,再启用新版本并从备份中恢复配置。注意: 如果旧版本是 v2.x 版本,请在删除插件目录下的 upgrade.lock 文件后运行一次 Upgrade.php(在浏览器中打开 http(s)://你的博客地址/usr/plugins/PartiallyPassword/Upgrade.php),它将会自动升级 v2.x 的文章自定义字段配置到 v3 配置(JSON 方案)。确认无误后 ,删除 Upgrade.php,保留脚本自动创建的 upgrade.lock 以防止误操作,并将 upgrade.log 拷贝到其他位置备用。如果在执行脚本中遇到问题(Error、Exception 字样),请提出 issue(类型为 Bug report)并附带上 upgrade.log。插件教程基础用法在书写加密语法之前,请先将对应文章下方"自定义字段"中"是否开启文章部分加密"一项调整为"开启"状态。 该项目默认为"关闭"状态,在此情况下,任何加密语法都不会被解析。下面的所有例子都包含一个"文本部分"和一个"配置部分",其中上方的"文本部分"是需要在 Typecho 编辑器中书写的内容,下方的"配置部分"是需要在文章下方"自定义字段"中"密码组"一项内填入的内容。不需要密码的内容 [ppblock] 输入密码可见的内容 [/ppblock] 不需要密码的内容["123456"]这就是一个最简单的例子。你也可以进一步给加密块添加附加信息:[ppblock ex="请输入密码"] 输入密码可见的内容 [/ppblock]["123456"]附加信息将会在输入密码处显示。如果你想书写一段 [ppblock]...[/ppblock] 形式的文本,但不希望它被解析,请使用 [[ppblock]...[/ppblock]],两侧多余的方括号会被自动移除。插入多个加密块不需要密码的内容 [ppblock] 需要密码的内容 A,id = 0 [/ppblock] 不需要密码的内容 [ppblock pwd="喵"] 需要密码的内容 B,id = 1 [/ppblock] 不需要密码的内容 [ppblock ex="给我密码"] 需要密码的内容 C,id = 2 [/ppblock] 不需要密码的内容{ "0": "123456", "喵": "miao~", "2": "000000" }每个加密块都会被赋予一个 id,它从 0 开始依次增加。加密块密码的寻找逻辑如下:检查pwd属性若该属性存在,从第 2 步继续后续操作 →若该属性不存在,从第 3 步继续后续操作 →寻找 JSON 中是否有索引为pwd的值的项目是,使用该项目作为当前块的密码,结束 √否,从第 4 步继续后续操作 →寻找 JSON 中是否有索引为id的值的项目是,使用该项目作为当前块的密码,结束 √否,从第 4 步继续后续操作 →寻找 JSON 中是否有索引为fallback的项目是,使用该项目作为当前块的密码,结束 √否,当前块展现为"密码未设置"错误提示 ×在上例中,三个加密块的密码依次是 123456、miao~ 和 000000。下面的例子演示 fallback 的功能:不需要密码的内容 [ppblock] 需要密码的内容 A,id = 0 [/ppblock] 不需要密码的内容 [ppblock pwd="喵" ex="给我密码"] 需要密码的内容 B,id = 1 [/ppblock] 不需要密码的内容{ "1": "miao~", "fallback": "123456" }这个例子中,两个加密块的密码都是 123456。第二个加密块虽然指定了 pwd 属性,但密码组中没有对应的项目,因此也不再检查是否有符合 id 的项目,而是直接使用 fallback。这种使用 pwd 属性指定密码的方式称为"命名密码"。当只使用索引时,密码组配置可以简写为一个 string[] 类型的 JSON 数组,例如:不需要密码的内容 [ppblock] 需要密码的内容 A,id = 0 [/ppblock] 不需要密码的内容 [ppblock ex="给我密码"] 需要密码的内容 B,id = 1 [/ppblock] 不需要密码的内容["123456", "miao~"]这在加密块比较少或密码不重用时非常方便。不同密码对应不同内容自 v3.0.0 起,引入了一种新的标记 ppswitch。下面是一个例子:不需要密码的内容 [ppswitch] 公共内容(可选) [case pwd="p1"] 输入了 p1 的情况 [/case] [case pwd="p2"] 输入了 p2 的情况 [/case] [/ppswitch]{ "p1": "111111", "p2": "222222" }当未输入密码时,展现为:不需要密码的内容如果输入 111111(即 p1 的值),则展现为:不需要密码的内容 公共内容(可选) 输入了 p1 的情况输入 222222(即 p2 的值)后的展现类推。有两点需要特别注意:case 标记必须指定 pwd 属性,否则无论如何都不会显示,而且,除非指定 pwd="fallback",否则不会在找不到密码时自动采用 fallback 的值;ppswitch 与 ppblock 共用一套 id 系统,尽管 ppswitch 默认不会寻找密码组中索引为 id 的值的项目。关于第二点,下面这个例子可能能够帮助理解:[ppblock] 这个加密块的 id = 0 [/ppblock] [ppswitch] 这个加密块的 id = 1 [case pwd="0"] 你输入了上一个加密块的密码 [/case] [case pwd="2"] 你输入了下一个加密块的密码 [/case] [/ppswitch] [ppblock] 这个加密块的 id = 2 [/ppblock]{ "0": "000000", "2": "123456" }可以看到,中间的 ppswitch 占用了一个 id,但是无法直接通过它的 id 为它指定密码(除非设置 [case pwd="1"],但这时它是一个索引为 1 的命名密码)。这种设计是出于多个 case 时难以规定默认行为的考虑。使用提示请勿不成对或嵌套地使用标记,它的展现无法预期。不保证支持所有主题,如果你的主题下改插件无法正常运行,请更换主题或者关闭卸载该插件推荐BandwagonHost 搬瓦工高性价比VPS 支持支付宝购买超级优惠码BWHNCXNVXV推荐高性价比老牌流媒体加速服务 高速稳定 邀请码注册送6元 邀请码3J10下载地址链接1链接2 最后更新时间为: 3个月前 (2024-07-01)
评论已关闭