diff --git a/config.js b/config.js
index c7c3499..e2c025c 100644
--- a/config.js
+++ b/config.js
@@ -12,6 +12,12 @@ module.exports = {
/** 开发者名称 / 微信号,设置页点击可复制 */
developer: '刘承',
+ /**
+ * 公众号名称。设置页「关于 → 公众号」直接展示,用户可在微信搜索关注,
+ * 无需跳转外部链接(小程序无法直接打开公众号文章)。点击名称可复制,方便搜索。
+ */
+ officialAccount: '爱咖啡的人',
+
/** 排行榜最大显示人数 */
leaderboardMaxRank: 50,
diff --git a/docs/公众号文章_平板支撑小程序.md b/docs/公众号文章_平板支撑小程序.md
new file mode 100644
index 0000000..a26a94b
--- /dev/null
+++ b/docs/公众号文章_平板支撑小程序.md
@@ -0,0 +1,89 @@
+# 平板支撑总是坚持不下来?这个小程序治好了我的「三分钟热度」
+
+> 封面图建议:一张有人在做平板支撑的明亮照片,或一张「进度环 + 排行榜」的产品截图拼图。
+> 文末「小程序名称」请替换为你实际上架后的名字;若已配二维码,放在文末体验入口处。
+
+---
+
+你有没有过这样的经历:
+
+第一天咬牙撑了 20 秒,第二天 25 秒,第三天……连打开瑜伽垫的力气都没有了。
+
+坚持,从来不是靠意志力硬扛,而是靠**「看得见进步」的反馈**。今天想和你聊聊我一直在用的这款微信小程序——**《平板支撑训练》**:它把「计时、记录、比拼」三件事做得很轻,却正好戳中了坚持最难的那一下。
+
+---
+
+## 一、训练时:专注每一个 30 秒
+
+点开「开始训练」,一个超大进度环立刻铺在眼前——剩余时间实时流动,环末端的发光圆点像在替你数秒、给你打气。
+
+- 渐变进度环 + 末端光点,时间进度一目了然
+- 完成的那一刻会有庆祝动效,那点小小的仪式感,就是下一次开始的燃料
+
+不用再盯着秒表数数,把注意力放回呼吸和核心,时间交给它。
+
+---
+
+## 二、首页:把「坚持」变成看得见的天数
+
+首页最显眼的位置,是你的**连续打卡天数**。每完成一次训练,数字 +1,安静地待在那里,提醒你「别断」。
+
+- **连续打卡**:用可视化数字持续激励你
+- **今日目标**:设定当天要突破的时长,圆环里实时显示,完成即点亮
+- **一键开始**:从首页直达训练,不绕任何弯路
+
+很多人的放弃,发生在「想不起来今天练没练」的时候。而这里,今天练没练,一眼就知道。
+
+---
+
+## 三、排行榜:一个人练太孤单?来比一比
+
+没有对比就没有动力。小程序内置排行榜,支持「日 / 月 / 年」分段切换:
+
+- **领奖台**:前三名以领奖台形式呈现,冠军居中加冕皇冠,每个人的训练次数标注在底座上,一目了然
+- **找到自己**:你的名次会用主题色高亮,在榜单里一眼定位
+- **真实头像**:和榜上的人同场竞技,动力直接拉满
+
+一个人练容易躺平,一群人卷才会上瘾。
+
+---
+
+## 四、记录日历:你的每一秒都被记得
+
+翻看日历热力图,哪天练了、练了多久,颜色深浅一看便知——那是你努力过的痕迹。
+
+- **日历热力图**:训练的日子会亮起来,偷懒的日子一目了然
+- **月份联动**:切换月份,下方记录同步更新,随时回看某个月的坚持轨迹
+- **数据统计**:累计次数、总时长、最长记录,把努力量化成数字
+
+回头看那一片被点亮的日历,会比任何鸡汤都更有说服力。
+
+---
+
+## 五、你的风格,你定
+
+- **6 套主题配色**:从活力橙到湖青,挑一个顺眼的下手
+- **深色模式**:夜里训练不刺眼
+- **头像与字体**:按自己的喜好设置,用得舒服才用得久
+
+---
+
+## 为什么是它?
+
+- **轻量**:微信里即用即走,不占手机空间
+- **专注**:没有广告弹窗打断你的呼吸节奏
+- **真实**:本地记录 + 云端榜单,进步看得见、比得过
+
+---
+
+## 现在就试试
+
+坚持这件事,最好的开始时间是两个:一个是十年前,一个是**今天**。
+
+在微信中搜索「**小程序名称**」即可体验。今天,就从「比昨天多撑 10 秒」开始。
+
+> 体验入口:(此处可放置小程序二维码或名片)
+
+---
+
+*本文由开发者团队撰写,欢迎转发给同样想练好核心的朋友。*
diff --git a/pages/settings/settings.js b/pages/settings/settings.js
index 9c77747..25b58ea 100644
--- a/pages/settings/settings.js
+++ b/pages/settings/settings.js
@@ -85,7 +85,9 @@ Page({
// App info from config
appVersion: config.version,
appUpdatedAt: config.updatedAt,
- appDeveloper: config.developer
+ appDeveloper: config.developer,
+ // 公众号名称(来自 config,关于页直接展示)
+ appOfficialAccount: config.officialAccount
},
onLoad() {
@@ -308,6 +310,17 @@ Page({
})
},
+ // Copy the official account name so the user can paste it into WeChat search
+ onCopyOfficialAccount() {
+ if (!config.officialAccount) return
+ wx.setClipboardData({
+ data: config.officialAccount,
+ success: () => {
+ wx.showToast({ title: '已复制,去微信搜索关注', icon: 'none', duration: 1800 })
+ }
+ })
+ },
+
// Show custom confirmation instead of wx.showModal to avoid the dev-tools
// bug where the native dialog refuses to dismiss on first tap.
onClearData() {
diff --git a/pages/settings/settings.wxml b/pages/settings/settings.wxml
index 472121c..812a026 100644
--- a/pages/settings/settings.wxml
+++ b/pages/settings/settings.wxml
@@ -193,6 +193,10 @@
开发者
{{appDeveloper}}
+
+ 公众号
+ {{appOfficialAccount}}
+
+
+
diff --git a/pages/settings/settings.wxss b/pages/settings/settings.wxss
index 4209415..2e7279a 100644
--- a/pages/settings/settings.wxss
+++ b/pages/settings/settings.wxss
@@ -666,3 +666,5 @@
background: var(--danger);
color: #FFFFFF;
}
+
+/* ---- 公众号名称(关于页直接展示,点击复制) ---- */