<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0"><channel><title>Halo - 强大易用的开源建站工具 | 应用市场 | 自定义微信分享卡片 | 版本发布</title><link>https://www.halo.run</link><atom:link href="https://www.halo.run/feed/app-store/apps/app-c6kw29tr/releases.xml" rel="self" type="application/rss+xml"/><description>Halo - 强大易用的开源建站工具 | 应用市场 | 自定义微信分享卡片 | 版本发布</description><generator>Halo v2.24.2</generator><language>zh-cn</language><image><url>https://www.halo.run/upload/logo.png</url><title>Halo - 强大易用的开源建站工具 | 应用市场 | 自定义微信分享卡片 | 版本发布</title><link>https://www.halo.run</link></image><lastBuildDate>Mon, 11 May 2026 15:32:05 GMT</lastBuildDate><follow_challenge><feedId>69597013489248256</feedId><userId>41706424548048896</userId></follow_challenge><item><title><![CDATA[自定义微信分享卡片 v1.0.6 发布]]></title><link>https://www.halo.run/store/apps/app-c6kw29tr/releases/app-release-wx3rlefz</link><description><![CDATA[<img src="https://www.halo.run/plugins/feed/assets/telemetry.gif?title=%E8%87%AA%E5%AE%9A%E4%B9%89%E5%BE%AE%E4%BF%A1%E5%88%86%E4%BA%AB%E5%8D%A1%E7%89%87%20v1.0.6%20%E5%8F%91%E5%B8%83&amp;url=/store/apps/app-c6kw29tr/releases/app-release-wx3rlefz" width="1" height="1" alt="" style="opacity:0;">
<h1 id="%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97" tabindex="-1">更新日志</h1>
<h3 id="%E6%96%B0%E5%A2%9E" tabindex="-1">新增</h3>
<ul>
 <li><strong>分享二维码生成本地化</strong>：集成 <strong>ZXing</strong>，创建/更新卡片后生成 <strong>PNG</strong>，写入 <strong><code>spec.shareQrcodeBase64</code> / <code>spec.shareQrcodeMimeType</code></strong> 并持久化；控制台列表与「查看二维码」通过管理端接口读取 <strong>Data URL</strong>。<strong>不再</strong>依赖第三方二维码 HTTP 接口。</li>
 <li><strong>链接类型落地页</strong>：优化样式</li>
</ul>
<h3 id="%E4%BC%98%E5%8C%96" tabindex="-1">优化</h3>
<ul>
 <li><strong>索引与回填</strong>：<code>ExtensionSchemeRegistry</code> 为 <strong><code>spec.cardKind</code> / <code>spec.visitedAt</code></strong> 等注册索引；启动时 <strong><code>WechatShareVisitCardKindBackfill</code></strong> 对历史无 <strong><code>cardKind</code></strong> 的访问记录按 SID 回填，保证筛选与展示一致。</li>
 <li><strong>设置保存 UX</strong>：<code>PUT /settings</code> 成功后 <strong><code>setTimeout</code> + <code>location.reload</code></strong>，使 Console 子应用与 <strong><code>experimentalIpLookupEnabled</code></strong> 等开关立即反映到 <strong><code>useVisitIpLookup</code></strong> 与列表请求。</li>
 <li><strong>落地页工程化</strong>：<code>WechatSharePageRenderer</code> 抽离 <strong><code>SharePageCopy</code> / <code>SharePageConstants</code> / <code>SharePageSvgSnippets</code></strong>；固定文案与微信脚本提示统一 <strong><code>HtmlEscapes</code></strong> / <strong><code>ObjectMapper</code></strong> 输出；<strong><code>StringBuilder</code> 预设容量</strong>。</li>
 <li><strong>控制台</strong>：插件设置 <strong>移除「二维码上游接口」</strong>（扩展旧字段仅兼容，服务端不再读取）。</li>
</ul>
<h3 id="%E4%BF%AE%E5%A4%8D" tabindex="-1">修复</h3>
<ul>
 <li><strong>筛选一致性</strong>：历史访问 <strong><code>spec.cardKind</code></strong> 为空时，列表展示曾与索引/查询不一致导致非 link 类型筛选异常；<strong>回填 + 查询归一化</strong>后与 <strong><code>WechatShareCardKind.normalize</code></strong> 对齐。</li>
 <li><strong>文件类型落地页</strong>：<strong><code>fp-hint</code></strong> 补全 <strong><code>&lt;/p&gt;</code></strong>，消除无效 HTML。</li>
 <li><strong>二维码配置</strong>：<strong><code>WechatShareSettingsService.normalizeSpec</code></strong> 不再写入默认第三方 <strong><code>qrcodeApiBase</code></strong>；移除 <strong><code>QrUpstreamGuard</code></strong> 及仅服务 HTTP 上游的遗留逻辑。</li>
 <li>微信 JSSDK 签名 URL 对齐外部访问地址；分享图补全绝对地址</li>
</ul>
<hr>
<hr>
<p><a href="https://www.halo.run/store/apps/app-c6kw29tr/releases/app-release-wx3rlefz">查看版本详情</a></p>]]></description><guid isPermaLink="false">store.halo.run/Release/app-release-wx3rlefz</guid><pubDate>Sun, 10 May 2026 01:32:00 GMT</pubDate></item><item><title><![CDATA[自定义微信分享卡片 v1.0.5 发布]]></title><link>https://www.halo.run/store/apps/app-c6kw29tr/releases/app-release-njrl3zgn</link><description><![CDATA[<img src="https://www.halo.run/plugins/feed/assets/telemetry.gif?title=%E8%87%AA%E5%AE%9A%E4%B9%89%E5%BE%AE%E4%BF%A1%E5%88%86%E4%BA%AB%E5%8D%A1%E7%89%87%20v1.0.5%20%E5%8F%91%E5%B8%83&amp;url=/store/apps/app-c6kw29tr/releases/app-release-njrl3zgn" width="1" height="1" alt="" style="opacity:0;">
<h1 id="%E6%9B%B4%E6%96%B0%E6%97%A5%E5%BF%97" tabindex="-1">更新日志</h1>
<h3 id="%E6%96%B0%E5%A2%9E" tabindex="-1">新增</h3>
<ul>
 <li><strong>分享二维码生成本地化</strong>：集成 <strong>ZXing</strong>，创建/更新卡片后生成 <strong>PNG</strong>，写入 <strong><code>spec.shareQrcodeBase64</code> / <code>spec.shareQrcodeMimeType</code></strong> 并持久化；控制台列表与「查看二维码」通过管理端接口读取 <strong>Data URL</strong>。<strong>不再</strong>依赖第三方二维码 HTTP 接口。</li>
 <li><strong>链接类型落地页</strong>：优化样式</li>
</ul>
<h3 id="%E4%BC%98%E5%8C%96" tabindex="-1">优化</h3>
<ul>
 <li><strong>索引与回填</strong>：<code>ExtensionSchemeRegistry</code> 为 <strong><code>spec.cardKind</code> / <code>spec.visitedAt</code></strong> 等注册索引；启动时 <strong><code>WechatShareVisitCardKindBackfill</code></strong> 对历史无 <strong><code>cardKind</code></strong> 的访问记录按 SID 回填，保证筛选与展示一致。</li>
 <li><strong>设置保存 UX</strong>：<code>PUT /settings</code> 成功后 <strong><code>setTimeout</code> + <code>location.reload</code></strong>，使 Console 子应用与 <strong><code>experimentalIpLookupEnabled</code></strong> 等开关立即反映到 <strong><code>useVisitIpLookup</code></strong> 与列表请求。</li>
 <li><strong>落地页工程化</strong>：<code>WechatSharePageRenderer</code> 抽离 <strong><code>SharePageCopy</code> / <code>SharePageConstants</code> / <code>SharePageSvgSnippets</code></strong>；固定文案与微信脚本提示统一 <strong><code>HtmlEscapes</code></strong> / <strong><code>ObjectMapper</code></strong> 输出；<strong><code>StringBuilder</code> 预设容量</strong>。</li>
 <li><strong>控制台</strong>：插件设置 <strong>移除「二维码上游接口」</strong>（扩展旧字段仅兼容，服务端不再读取）。</li>
</ul>
<h3 id="%E4%BF%AE%E5%A4%8D" tabindex="-1">修复</h3>
<ul>
 <li><strong>筛选一致性</strong>：历史访问 <strong><code>spec.cardKind</code></strong> 为空时，列表展示曾与索引/查询不一致导致非 link 类型筛选异常；<strong>回填 + 查询归一化</strong>后与 <strong><code>WechatShareCardKind.normalize</code></strong> 对齐。</li>
 <li><strong>文件类型落地页</strong>：<strong><code>fp-hint</code></strong> 补全 <strong><code>&lt;/p&gt;</code></strong>，消除无效 HTML。</li>
 <li><strong>二维码配置</strong>：<strong><code>WechatShareSettingsService.normalizeSpec</code></strong> 不再写入默认第三方 <strong><code>qrcodeApiBase</code></strong>；移除 <strong><code>QrUpstreamGuard</code></strong> 及仅服务 HTTP 上游的遗留逻辑。</li>
</ul>
<hr>
<hr>
<p><a href="https://www.halo.run/store/apps/app-c6kw29tr/releases/app-release-njrl3zgn">查看版本详情</a></p>]]></description><guid isPermaLink="false">store.halo.run/Release/app-release-njrl3zgn</guid><pubDate>Sun, 10 May 2026 01:31:10 GMT</pubDate></item><item><title><![CDATA[自定义微信分享卡片 v1.0.4 发布]]></title><link>https://www.halo.run/store/apps/app-c6kw29tr/releases/app-release-mfbpt6hi</link><description><![CDATA[<img src="https://www.halo.run/plugins/feed/assets/telemetry.gif?title=%E8%87%AA%E5%AE%9A%E4%B9%89%E5%BE%AE%E4%BF%A1%E5%88%86%E4%BA%AB%E5%8D%A1%E7%89%87%20v1.0.4%20%E5%8F%91%E5%B8%83&amp;url=/store/apps/app-c6kw29tr/releases/app-release-mfbpt6hi" width="1" height="1" alt="" style="opacity:0;">
<h3 id="%E6%96%B0%E5%A2%9E" tabindex="-1">新增</h3>
<ul>
 <li><strong>数据看板</strong>：控制台新增「数据看板」页签，支持访问概览、近七日趋势、访问量排行与访问明细。</li>
 <li><strong>实验性功能IP 归属查询</strong>：默认关闭可在插件设置中开启；查询结果写入访问记录扩展并持久化，访问明细列表与详情展示「IP / 归属」格式。</li>
</ul>
<h3 id="%E4%BC%98%E5%8C%96" tabindex="-1">优化</h3>
<ul>
 <li><strong>索引与回填</strong>：<code>ExtensionSchemeRegistry</code> 为 <code>spec.cardKind</code> / <code>spec.visitedAt</code> 等注册索引；启动时 <code>WechatShareVisitCardKindBackfill</code> 对历史无 <code>cardKind</code> 记录按 SID 回填空值，保证筛选与展示一致。</li>
 <li><strong>设置保存 UX</strong>：<code>PUT /settings</code> 成功后 <code>setTimeout</code> + <code>location.reload</code>，保证 Console 子应用与 <code>experimentalIpLookupEnabled</code> 等开关立即反映到 <code>useVisitIpLookup</code> 与列表请求。</li>
</ul>
<h3 id="%E4%BF%AE%E5%A4%8D" tabindex="-1">修复</h3>
<ul>
 <li><strong>筛选一致性</strong>：历史访问 <code>spec.cardKind</code> 为空时，列表展示曾从卡片反推类型，但索引/查询与持久化不一致导致「非 link 无数据」；回填 + 查询归一化后行为与 <code>WechatShareCardKind.normalize</code> 对齐。</li>
</ul>
<hr>
<p><a href="https://www.halo.run/store/apps/app-c6kw29tr/releases/app-release-mfbpt6hi">查看版本详情</a></p>]]></description><guid isPermaLink="false">store.halo.run/Release/app-release-mfbpt6hi</guid><pubDate>Thu, 7 May 2026 20:00:01 GMT</pubDate></item><item><title><![CDATA[自定义微信分享卡片 v1.0.3 发布]]></title><link>https://www.halo.run/store/apps/app-c6kw29tr/releases/app-release-jppavjnp</link><description><![CDATA[<img src="https://www.halo.run/plugins/feed/assets/telemetry.gif?title=%E8%87%AA%E5%AE%9A%E4%B9%89%E5%BE%AE%E4%BF%A1%E5%88%86%E4%BA%AB%E5%8D%A1%E7%89%87%20v1.0.3%20%E5%8F%91%E5%B8%83&amp;url=/store/apps/app-c6kw29tr/releases/app-release-jppavjnp" width="1" height="1" alt="" style="opacity:0;">
<h2 id="%E7%89%88%E6%9C%AC%E6%9B%B4%E6%96%B0%E8%AF%B4%E6%98%8E" tabindex="-1">版本更新说明</h2>
<h3 id="%E4%BC%98%E5%8C%96" tabindex="-1">优化</h3>
<ul>
 <li>前台链接类型页面样式优化；</li>
 <li>控制台插件配置样式优化。</li>
</ul>
<h3 id="%E4%BF%AE%E5%A4%8D" tabindex="-1">修复</h3>
<ul>
 <li>控制台插件配置报错无法保存信息问题；</li>
 <li>控制台插件的卡片列表switch无法使用问题；</li>
 <li>控制台插件内新增卡片后在无刷新页面情况下无法继续新增卡片选择附件问题；</li>
 <li>前台无报错场景下出现警告卡片问题。</li>
</ul>
<hr>
<p><a href="https://www.halo.run/store/apps/app-c6kw29tr/releases/app-release-jppavjnp">查看版本详情</a></p>]]></description><guid isPermaLink="false">store.halo.run/Release/app-release-jppavjnp</guid><pubDate>Thu, 7 May 2026 03:46:19 GMT</pubDate></item><item><title><![CDATA[自定义微信分享卡片 v1.0.2 发布]]></title><link>https://www.halo.run/store/apps/app-c6kw29tr/releases/app-release-vu4ex2xt</link><description><![CDATA[<img src="https://www.halo.run/plugins/feed/assets/telemetry.gif?title=%E8%87%AA%E5%AE%9A%E4%B9%89%E5%BE%AE%E4%BF%A1%E5%88%86%E4%BA%AB%E5%8D%A1%E7%89%87%20v1.0.2%20%E5%8F%91%E5%B8%83&amp;url=/store/apps/app-c6kw29tr/releases/app-release-vu4ex2xt" width="1" height="1" alt="" style="opacity:0;">
<h2 id="%E7%89%88%E6%9C%AC%E6%9B%B4%E6%96%B0%E8%AF%B4%E6%98%8E-%F0%9F%8E%89" tabindex="-1">版本更新说明 🎉</h2>
<h3 id="%E6%96%B0%E5%A2%9E" tabindex="-1">新增</h3>
<ul>
 <li><strong>控制台插件列表按卡片类型过滤</strong></li>
 <li><strong>控制台插件列表快捷启用/禁用该卡片</strong></li>
</ul>
<h3 id="%E4%BC%98%E5%8C%96" tabindex="-1">优化</h3>
<ul>
 <li>控制台样式调整优化</li>
 <li>前台部分页面样式优化</li>
</ul>
<hr>
<p><a href="https://www.halo.run/store/apps/app-c6kw29tr/releases/app-release-vu4ex2xt">查看版本详情</a></p>]]></description><guid isPermaLink="false">store.halo.run/Release/app-release-vu4ex2xt</guid><pubDate>Thu, 7 May 2026 02:12:05 GMT</pubDate></item><item><title><![CDATA[自定义微信分享卡片 v1.0.1 发布]]></title><link>https://www.halo.run/store/apps/app-c6kw29tr/releases/app-release-5zpv8zh7</link><description><![CDATA[<img src="https://www.halo.run/plugins/feed/assets/telemetry.gif?title=%E8%87%AA%E5%AE%9A%E4%B9%89%E5%BE%AE%E4%BF%A1%E5%88%86%E4%BA%AB%E5%8D%A1%E7%89%87%20v1.0.1%20%E5%8F%91%E5%B8%83&amp;url=/store/apps/app-c6kw29tr/releases/app-release-5zpv8zh7" width="1" height="1" alt="" style="opacity:0;">
<h2 id="%E7%89%88%E6%9C%AC%E6%9B%B4%E6%96%B0%E8%AF%B4%E6%98%8E-%F0%9F%8E%89" tabindex="-1">版本更新说明 🎉</h2>
<h3 id="%E5%8A%9F%E8%83%BD%E7%89%B9%E6%80%A7" tabindex="-1">功能特性</h3>
<ul>
 <li><strong>多类型分享卡片</strong>：除「链接卡片」外，新增 <strong>图片 / 音频 / 视频 / 文件</strong> 卡片类型；各类型独立落地页版式（封面、介绍、媒体区、相关说明等），数据仍按 <strong>SID</strong> 存 Halo 扩展资源</li>
 <li><strong>控制台编辑体验</strong>：新建/编辑时可选卡片类型；表单字段按类型联动；侧栏 <strong>实时预览</strong> 与访客落地页结构、样式对齐（含图片卡 <code>in-*</code> 相关说明等）</li>
 <li><strong>分享策略</strong>：链接类分享仍指向 <strong><code>/go?sid=</code></strong> 直达跳转；图片/音频/视频/文件等二次分享仍回流 <strong><code>/share?sid=</code></strong>（与前台 <code>hint</code> 逻辑一致）</li>
 <li><strong>分享卡片管理</strong>：列表、复制分享链接、二维码预览；插件配置（公众号 <strong>AppId / AppSecret</strong>、换票与 <code>wx.config</code> 签名、<strong>公开路径前缀</strong>、二维码上游接口等）延续并适配多类型</li>
</ul>
<h3 id="%E7%AB%99%E7%82%B9%E5%89%8D%E5%8F%B0" tabindex="-1">站点前台</h3>
<ul>
 <li><strong>分享页</strong>（<code>…/share?sid=…</code>）：按卡片类型输出对应页面；微信内 <strong>JSSDK</strong> 注入，更新 <strong>朋友圈 / 会话</strong> 分享数据</li>
 <li><strong>跳转页</strong>（<code>…/go?sid=…</code>）：<strong>302</strong> 跳转至卡片配置的落地 URL（<code>http/https</code>）</li>
</ul>
<h3 id="%E6%94%B9%E8%BF%9B%E4%B8%8E%E5%8F%AF%E9%9D%A0%E6%80%A7" tabindex="-1">改进与可靠性</h3>
<ul>
 <li><strong>二维码拉取安全</strong>：对上游 URL 做主机与网络侧约束，<strong>不跟随 HTTP 重定向</strong>，降低误配被滥用风险</li>
 <li><strong>微信换票可观测与熔断</strong>：换票失败结构化日志（不含密钥）；连续失败短时熔断；解析微信 <strong><code>errcode</code></strong> 便于排查</li>
 <li><strong>HTML 文本转义</strong>：访客提示与落地页统一封装，降低 XSS 风险</li>
</ul>
<h3 id="%E7%8E%AF%E5%A2%83%E8%A6%81%E6%B1%82" tabindex="-1">环境要求</h3>
<ul>
 <li><strong>Halo ≥ 2.23.0</strong></li>
</ul>
<hr>
<p><a href="https://www.halo.run/store/apps/app-c6kw29tr/releases/app-release-5zpv8zh7">查看版本详情</a></p>]]></description><guid isPermaLink="false">store.halo.run/Release/app-release-5zpv8zh7</guid><pubDate>Wed, 6 May 2026 21:08:15 GMT</pubDate></item><item><title><![CDATA[自定义微信分享卡片 1.0.0 发布]]></title><link>https://www.halo.run/store/apps/app-c6kw29tr/releases/app-release-de1vl8js</link><description><![CDATA[<img src="https://www.halo.run/plugins/feed/assets/telemetry.gif?title=%E8%87%AA%E5%AE%9A%E4%B9%89%E5%BE%AE%E4%BF%A1%E5%88%86%E4%BA%AB%E5%8D%A1%E7%89%87%201.0.0%20%E5%8F%91%E5%B8%83&amp;url=/store/apps/app-c6kw29tr/releases/app-release-de1vl8js" width="1" height="1" alt="" style="opacity:0;">
<h2 dir="auto">首个版本发布 🎉</h2>
<p dir="auto">功能特性</p>
<ul dir="auto">
 <li>分享卡片管理（新增、编辑、删除；标题 / 摘要 / 封面 / 跳转链接，独立 <strong>SID</strong> 与扩展存储）</li>
 <li>控制台列表（复制分享链接、二维码预览）</li>
 <li>插件配置（公众号 <strong>AppId / AppSecret</strong>、<code class="notranslate">wx.config</code> 所需换票与签名、<strong>公开路径前缀</strong>、<strong>二维码生成服务</strong> 等）</li>
 <li>站点前台 <strong>分享页</strong>（<code class="notranslate">…/share?sid=…</code>，微信内 <strong>JSSDK</strong> 注入，更新朋友圈 / 会话分享数据）</li>
 <li>站点前台 <strong>跳转页</strong>（<code class="notranslate">…/go?sid=…</code>，<strong>302</strong> 跳转到卡片配置的落地 URL）</li>
 <li>要求 <strong>Halo ≥ 2.23.0</strong></li>
</ul>
<hr>
<p dir="auto"><em>Generate from <a href="https://github.com/Avrinbai/halo-plugin-wechat-share/releases/tag/v1.0.0">v1.0.0</a></em></p>
<hr>
<p><a href="https://www.halo.run/store/apps/app-c6kw29tr/releases/app-release-de1vl8js">查看版本详情</a></p>]]></description><guid isPermaLink="false">store.halo.run/Release/app-release-de1vl8js</guid><pubDate>Tue, 5 May 2026 14:48:16 GMT</pubDate></item></channel></rss>