<?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-ltjzzsbn/releases.xml" rel="self" type="application/rss+xml"/><description>Halo - 强大易用的开源建站工具 | 应用市场 | 项目展厅 | 版本发布</description><generator>Halo v2.26.1</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>Thu, 17 Sep 2026 04:40:34 GMT</lastBuildDate><follow_challenge><feedId>69597013489248256</feedId><userId>41706424548048896</userId></follow_challenge><item><title><![CDATA[项目展厅 0.2.6 发布]]></title><link>https://www.halo.run/store/apps/app-ltjzzsbn/releases/app-release-2noetpcf</link><description><![CDATA[<img src="https://www.halo.run/plugins/feed/assets/telemetry.gif?title=%E9%A1%B9%E7%9B%AE%E5%B1%95%E5%8E%85%200.2.6%20%E5%8F%91%E5%B8%83&amp;url=/store/apps/app-ltjzzsbn/releases/app-release-2noetpcf" width="1" height="1" alt="" style="opacity:0;">
<h1 id="halo-%E9%A1%B9%E7%9B%AE%E5%B1%95%E5%8E%85" tabindex="-1">Halo 项目展厅</h1>
<p>面向 Halo 2.25+ 的项目展示插件。它把项目的在线体验、源码、下载、版本、状态、已知限制和关联文章集中管理，并将可验证的项目入口展示给博客读者。</p>
<h2 id="%E6%95%88%E6%9E%9C%E9%A2%84%E8%A7%88" tabindex="-1">效果预览</h2>
<h3 id="%E5%89%8D%E5%8F%B0%E9%A1%B9%E7%9B%AE%E5%B1%95%E5%8E%85" tabindex="-1">前台项目展厅</h3>
<p><img src="https://www.halo.run/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fapp-store-static.halo.run%2Fstatic%2FBC7B33AA-FA74-46DD-8782-B53CA58C2A2C.png&amp;size=m" alt="projects-page"></p>
<h3 id="console-%E9%A1%B9%E7%9B%AE%E7%AE%A1%E7%90%86" tabindex="-1">Console 项目管理</h3>
<p><img src="https://www.halo.run/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fapp-store-static.halo.run%2Fstatic%2F643F743B-8F0E-4933-B3B8-8219BEC807D7.png&amp;size=m" alt="console-project-list"></p>
<details>
 <summary>查看项目编辑界面</summary>
 <p><img src="https://www.halo.run/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fapp-store-static.halo.run%2Fstatic%2F7AD374F8-104C-40AC-A1DA-FE60A885B142.png&amp;size=m" alt="project-editor-basic"></p>
 <p>![项目编辑访问入口与关联内容]
  <br>
  <img src="https://www.halo.run/apis/api.storage.halo.run/v1alpha1/thumbnails/-/via-uri?uri=https%3A%2F%2Fapp-store-static.halo.run%2Fstatic%2FAAE76832-3D7D-4E9F-90B8-CA9D655EE3CF.png&amp;size=m" alt="project-editor-details"></p>
</details>
<h2 id="%E5%8A%9F%E8%83%BD" tabindex="-1">功能</h2>
<ul>
 <li>在 Halo Console 中创建、编辑、删除和排序项目</li>
 <li>从已发布文章中选择项目的关联文章</li>
 <li>独立的 <code>/projects</code> 项目展示页</li>
 <li>在关联文章正文顶部自动插入项目体验卡</li>
 <li>项目封面和最多 12 张项目截图均支持剪贴板粘贴、上传及附件库选择，截图还支持拖拽排序和放大浏览</li>
 <li>支持 Bilibili BV/AV 视频链接，点击后按需加载播放器</li>
 <li>公开项目只读 API</li>
 <li>手动或每 30 分钟检测演示地址</li>
 <li>地址检测阻止私网、回环、特殊用途 IP 和非 HTTP(S) 协议</li>
 <li>区分在线体验、源码和下载，不把可访问项目误标为开源项目</li>
</ul>
<h2 id="%E5%AE%89%E8%A3%85" tabindex="-1">安装</h2>
<ol>
 <li>从 <a href="https://github.com/cikongjian/plugin-project-showcase/releases">GitHub Releases</a> 下载最新的 <code>plugin-project-showcase-*.jar</code>。</li>
 <li>在 Halo Console 的插件管理中上传 JAR。</li>
 <li>启用插件后，在 Console 左侧进入“项目展厅”。</li>
 <li>创建项目并打开“公开展示”，前台即可访问 <code>/projects</code>。</li>
</ol>
<p>插件要求 Halo <code>&gt;= 2.25.0</code>。</p>
<p>也可以使用 JDK 21 从源码构建：</p>
<pre><code class="language-powershell">.\gradlew.bat build
</code></pre>
<p>构建产物位于 <code>build/libs/</code>。</p>
<h2 id="%E9%85%8D%E7%BD%AE%E4%B8%8E%E4%BD%BF%E7%94%A8" tabindex="-1">配置与使用</h2>
<ol>
 <li>在“项目展厅”中点击“新建项目”，填写项目名称、简介和状态。</li>
 <li>设置封面、项目截图、版本、技术标签及需要公开的访问地址。</li>
 <li>根据需要关联已发布文章，并填写体验说明或已知限制。</li>
 <li>打开“公开展示”并保存；公开项目会出现在 <code>/projects</code>，也可以在关联文章顶部显示体验卡。</li>
 <li>使用列表页的检测按钮检查体验地址，或等待插件每 30 分钟自动检测。</li>
</ol>
<p>项目不会因为填写了体验地址而自动标记为开源。只有单独填写源码地址时，前台才会显示源码入口。</p>
<h2 id="%E5%8D%87%E7%BA%A7%E4%B8%8E%E5%8D%B8%E8%BD%BD" tabindex="-1">升级与卸载</h2>
<ul>
 <li>升级前建议先备份 Halo 数据，再在插件管理中上传新版本 JAR 完成升级。现有项目数据和设置会继续使用。</li>
 <li>卸载前先禁用插件；禁用后定时地址检测和插件路由将停止运行。</li>
 <li>如需永久删除项目数据，请在卸载前从“项目展厅”中删除对应项目。插件不提供外部账户、订阅或云端数据，无需额外解绑。</li>
</ul>
<h2 id="%E9%A1%B9%E7%9B%AE%E5%AD%97%E6%AE%B5" tabindex="-1">项目字段</h2>
<ul>
 <li>项目名称、简介、封面、项目截图、版本和生命周期</li>
 <li>在线体验、源码和下载地址</li>
 <li>Bilibili 项目演示视频</li>
 <li>技术标签与已知限制</li>
 <li>体验说明</li>
 <li>关联的 Halo 文章</li>
 <li>公开状态与排序</li>
</ul>
<p>体验说明是公开内容，不应填写密码、密钥或其他敏感信息。需要测试账号时，建议填写账号申请方式，或使用权限受限且可定期重置的公开测试账号。</p>
<p>封面和截图都使用 Halo 附件库。在项目编辑窗口中点击对应的“剪贴板封面”或“剪贴板截图”区域，再按 <code>Ctrl+V</code> 即可上传剪贴板图片；也可以继续使用文件上传或附件库选择。截图最多保存 12 张，并可在后台拖拽调整顺序。没有单独设置封面时，第一张有效截图会作为项目封面。</p>
<p>Bilibili 视频请填写标准页面地址，例如 <code>https://www.bilibili.com/video/BV1xx411c7mD</code>。插件不接受短链接或任意 iframe HTML，只会为通过域名和视频编号校验的链接生成播放器。</p>
<h2 id="%E5%9C%B0%E5%9D%80%E6%A3%80%E6%B5%8B" tabindex="-1">地址检测</h2>
<p>插件只将 HTTP <code>2xx</code> 响应视为可访问。检测结果是一次网络可达性观察，不代表项目的安全性、正确性或生产可用性。</p>
<p>为防止 SSRF，检测客户端会拒绝私网、回环、链路本地、组播和特殊用途地址，并对每次重定向重新执行安全校验。</p>
<p>公开展示的数据只保留 HTTP(S) 链接和站内附件路径；Bilibili 播放器固定使用 <code>player.bilibili.com</code>，不会执行用户填写的嵌入代码。</p>
<h2 id="%E6%95%B0%E6%8D%AE%E4%B8%8E%E5%A4%96%E9%83%A8%E8%AF%B7%E6%B1%82" tabindex="-1">数据与外部请求</h2>
<ul>
 <li>项目资料存储在 Halo 的扩展资源中，插件不会将项目资料、用户信息或站点内容同步到开发者服务器。</li>
 <li>只有手动检测或定时检测公开项目时，Halo 服务器才会请求对应的在线体验地址；请求设有超时，并会拒绝私网、回环和特殊用途地址。</li>
 <li>用户点击 Bilibili 演示视频后，浏览器会按需加载 <code>player.bilibili.com</code> 播放器。未点击时不会加载播放器。</li>
 <li>公开项目会通过 <code>/projects</code> 和只读公开 API 对访客可见。请勿在项目名称、简介、体验说明或链接中填写敏感信息。</li>
</ul>
<h2 id="%E5%85%AC%E5%BC%80-api" tabindex="-1">公开 API</h2>
<pre><code class="language-text">GET /apis/api.projectshowcase.xsstar.cn/v1alpha1/projects
GET /apis/api.projectshowcase.xsstar.cn/v1alpha1/posts/{postName}/projects
</code></pre>
<p>接口只返回已公开项目，并且不会暴露 Halo 扩展资源的完整内部字段。</p>
<h2 id="%E6%95%85%E9%9A%9C%E6%8E%92%E6%9F%A5" tabindex="-1">故障排查</h2>
<ul>
 <li>Console 中没有“项目展厅”：确认插件已启用，并刷新浏览器页面。</li>
 <li>前台 <code>/projects</code> 没有内容：确认至少有一个项目打开了“公开展示”。</li>
 <li>地址显示不可访问：确认目标使用 HTTP(S)、能够从 Halo 服务器访问，并返回 <code>2xx</code> 状态码。</li>
 <li>图片无法显示：确认附件仍然存在，并检查附件访问权限和站点地址配置。</li>
 <li>Bilibili 视频无法播放：使用标准 BV/AV 视频页面地址，不要填写短链接或 iframe 代码。</li>
</ul>
<p>问题反馈请提交到 <a href="https://github.com/cikongjian/plugin-project-showcase/issues">GitHub Issues</a>。报告问题时请附上 Halo 版本、插件版本、复现步骤和相关日志，并删除其中的敏感信息。</p>
<h2 id="%E5%BC%80%E5%8F%91" tabindex="-1">开发</h2>
<p>环境要求：JDK 21、Node.js 20+、pnpm 10。</p>
<pre><code class="language-powershell">.\gradlew.bat test
.\gradlew.bat :ui:buildFrontend
.\gradlew.bat build
</code></pre>
<p>Docker 可用时，可以运行 <code>./gradlew haloServer</code> 启动本地 Halo 开发环境。</p>
<hr>
<p><a href="https://www.halo.run/store/apps/app-ltjzzsbn/releases/app-release-2noetpcf">查看版本详情</a></p>]]></description><guid isPermaLink="false">store.halo.run/Release/app-release-2noetpcf</guid><pubDate>Thu, 30 Jul 2026 11:09:16 GMT</pubDate></item></channel></rss>