mirror of
https://github.com/jnMetaCode/superpowers-zh.git
synced 2026-09-02 22:54:06 +08:00
feat(site): 页脚 + README 增加扫码关注(公众号 + 抖音二维码)
- 官网页脚新增"扫码关注"区块:公众号 AI不止语 + 抖音 @AI不止语(AIBZY)
两张二维码并排展示(中英 i18n + 响应式)
- README 交流区在公众号文案处嵌入公众号二维码
- 二维码自托管于 assets/,CSP img-src 'self' 已允许,无需放行外域
资源:site/template/assets/qr-{wechat,douyin}.jpg(站点)、assets/qr-wechat.jpg
(README);build.mjs 增加拷贝逻辑 + 页脚 figure 区块 + i18n 文案;
styles.css 增加 .foot-qr/.qr-card 样式。
验证:重建 42 页;两张 QR 拷入 dist;页脚区块生成;CSP 不受影响。
This commit is contained in:
@@ -281,6 +281,8 @@ npx superpowers-zh@latest --uninstall
|
||||
|
||||
微信公众号 **「AI不止语」**(微信搜索 `AI_BuZhiYu`)— 技术问答 · 项目更新 · 实战文章
|
||||
|
||||
<img src="assets/qr-wechat.jpg" width="180" alt="微信公众号 AI不止语 二维码">
|
||||
|
||||
| 渠道 | 加入方式 |
|
||||
|------|---------|
|
||||
| QQ 2群 | [点击加入](https://qm.qq.com/q/EeNQA9xCxy)(群号 1071280067) |
|
||||
|
||||
BIN
assets/qr-wechat.jpg
Normal file
BIN
assets/qr-wechat.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 28 KiB |
@@ -150,6 +150,7 @@ const T = {
|
||||
],
|
||||
footTag: 'AI 编程超能力 · 中文增强版 · MIT License',
|
||||
copyright: '© 2026 superpowers-zh · MIT License',
|
||||
followUs: '扫码关注', qrWechat: '公众号 · AI不止语', qrDouyin: '抖音 · @AI不止语(AIBZY)',
|
||||
copy: '复制', copied: '已复制 ✓',
|
||||
backToSkills: '← 返回全部 Skill',
|
||||
detailInstall: '安装此 skill',
|
||||
@@ -234,6 +235,7 @@ const T = {
|
||||
],
|
||||
footTag: 'AI coding superpowers · Chinese-enhanced · MIT License',
|
||||
copyright: '© 2026 superpowers-zh · MIT License',
|
||||
followUs: 'Follow us', qrWechat: 'WeChat · AI不止语', qrDouyin: 'Douyin · @AI不止语 (AIBZY)',
|
||||
copy: 'Copy', copied: 'Copied ✓',
|
||||
backToSkills: '← Back to all skills',
|
||||
detailInstall: 'Install this skill set',
|
||||
@@ -340,6 +342,13 @@ ${extraHead}</head>
|
||||
</header>
|
||||
${body}
|
||||
<footer>
|
||||
<div class="foot-qr">
|
||||
<h4 class="qr-title">${t.followUs}</h4>
|
||||
<div class="qr-row">
|
||||
<figure class="qr-card"><img src="${base}assets/qr-wechat.jpg" alt="${esc(t.qrWechat)}" width="158" loading="lazy"><figcaption>${t.qrWechat}</figcaption></figure>
|
||||
<figure class="qr-card"><img src="${base}assets/qr-douyin.jpg" alt="${esc(t.qrDouyin)}" width="158" loading="lazy"><figcaption>${t.qrDouyin}</figcaption></figure>
|
||||
</div>
|
||||
</div>
|
||||
<div class="foot-inner foot-cols">
|
||||
<div class="foot-brand">
|
||||
<strong>superpowers<b>-zh</b></strong>
|
||||
@@ -532,6 +541,8 @@ function build() {
|
||||
copyFileSync(join(ROOT, 'assets', 'app-icon.png'), join(DIST, 'assets', 'app-icon.png'));
|
||||
copyFileSync(join(ROOT, 'assets', 'superpowers-small.svg'), join(DIST, 'assets', 'superpowers-small.svg'));
|
||||
copyFileSync(join(ROOT, 'assets', 'sponsors', '5cookie-code.png'), join(DIST, 'assets', 'sponsors', '5cookie-code.png'));
|
||||
copyFileSync(join(TEMPLATE, 'assets', 'qr-wechat.jpg'), join(DIST, 'assets', 'qr-wechat.jpg'));
|
||||
copyFileSync(join(TEMPLATE, 'assets', 'qr-douyin.jpg'), join(DIST, 'assets', 'qr-douyin.jpg'));
|
||||
|
||||
// 中文站(根)
|
||||
writeFileSync(join(DIST, 'index.html'), layout({
|
||||
|
||||
BIN
site/template/assets/qr-douyin.jpg
Normal file
BIN
site/template/assets/qr-douyin.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 173 KiB |
BIN
site/template/assets/qr-wechat.jpg
Normal file
BIN
site/template/assets/qr-wechat.jpg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 28 KiB |
@@ -252,6 +252,13 @@ footer { border-top: 1px solid var(--border-soft); margin-top: 40px; padding: 40
|
||||
.foot-inner nav a:hover { color: var(--accent-2); }
|
||||
.copyright { max-width: var(--maxw); margin: 24px auto 0; font-size: 12.5px; color: var(--text-faint); text-align: center; }
|
||||
.copyright a { color: var(--text-dim); }
|
||||
/* 扫码关注 */
|
||||
.foot-qr { max-width: var(--maxw); margin: 0 auto 36px; text-align: center; }
|
||||
.qr-title { font-size: 14px; color: var(--text-dim); font-weight: 600; margin-bottom: 18px; }
|
||||
.qr-row { display: flex; gap: 28px; justify-content: center; flex-wrap: wrap; }
|
||||
.qr-card { margin: 0; }
|
||||
.qr-card img { width: 158px; height: auto; border-radius: 12px; background: #fff; display: block; border: 1px solid var(--border-soft); }
|
||||
.qr-card figcaption { margin-top: 10px; font-size: 12.5px; color: var(--text-faint); }
|
||||
|
||||
/* ---------- 响应式 ---------- */
|
||||
@media (max-width: 720px) {
|
||||
|
||||
Reference in New Issue
Block a user