backend:
  name: github
  repo: mentea555/myfirstweb
  branch: main
  base_url: https://www.menteaweb.com
  auth_endpoint: /api/auth

# 后台展示与媒体库
site_url: https://www.menteaweb.com
display_url: https://www.menteaweb.com
media_folder: "assets/images"
public_folder: "/assets/images"

# ============================================================
# 图片上传走自建图床（不再往 Git 仓库里塞图片）
# ------------------------------------------------------------
# 主人自己搭了一个 CloudFlare-ImgBed：
#     https://cloudflare-imgbed-bnw.pages.dev
# 这里把后台的「上传」按钮直接接到它上面 —— 以后在后台传图，
# 图片进图床，仓库里只留一行图片网址，仓库永远不会变臃肿。
#
# 具体实现见 /admin/imgbed-media.js（一个自定义媒体库插件）。
#
# 注意：base 必须写「能公开访问的图床地址」，后台会把图片传到
#       <base>/upload，并把返回的图片地址直接写进文章里。
# ============================================================
media_library:
  name: imgbed
  config:
    base: https://cloudflare-imgbed-bnw.pages.dev

    # ↓↓↓ 下面三项按需再开，默认留空就是最省事的状态 ↓↓↓

    # 图床的「上传认证码」—— 不要填在这里！
    # ⚠️ 这个文件是公开可读的（/admin/config.yml 谁都能打开），填在这里等于把
    #    认证码公开，认证就白开了。
    #    ✅ 正确做法：在后台点「上传」弹出的面板里，最上面有「🔑 图床认证码」，
    #       填进去点「保存」，码只存在你自己这台电脑上，不进仓库。
    #
    # （这一项保留着只是当后路：万一以后需要让别的设备免填，再考虑用它，
    #   但要想清楚公开的代价。）
    # auth_code: ""

    # 指定上传渠道（telegram / cfr2 / s3 / discord…）。
    # 留空 = 用图床后台设好的默认渠道或负载均衡。
    # upload_channel: ""

    # 上传到图床里的哪个目录。留空 = 根目录。
    # folder: ""

collections:
  # ==================== 内容：笔记与作品 ====================
  - name: "notes"
    label: "笔记与作品"
    label_singular: "一篇内容"
    description: |
      在这里写的内容，保存后会立即出现在网站首页的卡片流里。只想发到「画廊」页、不上首页的，把下面的「只发画廊」勾上。

      ⚠️ 写新的一篇，请点左侧「New 一篇内容」，不要在旧笔记里写新内容。

      三个 Publish 按钮都会「先把编辑器里的当前内容存进当前这一篇」，所以在旧笔记里改了内容再点，旧的那篇就被覆盖了：
      - Publish now：保存当前这一篇
      - Publish and create new：保存当前这一篇，然后开一张全新空白表单
      - Publish and duplicate：保存当前这一篇，然后开一张复制了本篇内容的新表单（进去第一件事先改标题，否则文件名会自动加上 -1）
    folder: "content/notes"
    create: true
    slug: "{{year}}-{{month}}-{{day}}-{{slug}}"
    sortable_fields: ["date", "title"]
    fields:
      - { label: "标题", name: "title", widget: "string", hint: "卡片上显示的大标题" }
      - {
          label: "发布日期",
          name: "date",
          widget: "datetime",
          hint: "决定卡片排序，最新的排在最前。★ 不用手动调了：新建时会自动填今天；上传作品图之后，会自动改成【这张图片文件在电脑上的修改时间】—— 补发以前的作品时它会直接把日期带回那天。你自己改过之后就不会再自动覆盖。",
        }
      - {
          label: "摘要（可选）",
          name: "description",
          widget: "text",
          required: false,
          hint: "显示在标题下方的一句话简介",
        }
      - {
          label: "封面图/作品图（可选）",
          name: "thumbnail",
          widget: "image",
          required: false,
          # Decap 对图片字段的 allow_multiple 默认是 true —— 对「单张封面」来说
          # 一旦多选就会往单值字段里塞数组，把 frontmatter 写坏，所以显式关掉。
          media_library: { allow_multiple: false },
          hint: "点「上传」就行 —— 图片会自动传到你的图床，仓库里只留一行网址，不会把仓库撑大。上传面板支持拖拽、Ctrl+V 粘贴截图；也可以直接把已有图片的网址粘进去。（首次上传若提示 401，在面板最上面「🔑 图床认证码」里填一次图床的认证码即可，只存你这台电脑。）",
        }
      - {
          label: "标签（可选，可加多个）",
          name: "tags",
          widget: "tags",
          required: false,
          default: [],
          options: ["插画", "随笔", "更新", "测试", "草图", "作品"],
          hint: "★ 想加几个就加几个：打字后按【回车】（或逗号）就新增一个，也可以点下面的下拉建议；每颗标签右边有个 × 可以删掉。已选好的标签就是最终结果 —— 打了字没按回车直接点别处也会自动收进去，不会白打。前台会自动按标签生成筛选按钮，「插画」这个标签会让文章出现在画廊页。",
        }
      - {
          label: "只发画廊（首页不显示）",
          name: "gallery_only",
          widget: "boolean",
          default: false,
          required: false,
          hint: "勾上：这篇会出现在「画廊」页，但不会出现在首页的内容流里（适合随时随手发的插画）。★ 例外：在首页点「#插画」这个标签时，它们会显示出来 —— 相当于一个小画框；点「全部」则看不到，首页保持以文字为主。",
        }
      - {
          label: "加入首页轮播图",
          name: "carousel",
          widget: "boolean",
          default: false,
          required: false,
          hint: "轮播区的每个位置 = 笔记里的一张图（封面，或正文里插入的图）。开关下方的面板会列出「现在占了位置的是哪几篇、各占第几张」，以及本篇排第几；位置满了再点这个开关会被拦下，要在已经加入轮播的那一篇里把它关掉，空出位置才能加。上限在「前端页面设置 → 首页轮播图」里调。★ 改完记得按 Publish 保存，首页才会跟着变（面板按已保存的内容算）。",
        }
      - { label: "置顶", name: "featured", widget: "boolean", default: false, required: false }
      - {
          label: "存为草稿（不在前台显示）",
          name: "draft",
          widget: "boolean",
          default: false,
          required: false,
        }
      - {
          label: "正文内容",
          name: "body",
          widget: "richtext",
          buttons: ["bold", "italic", "strikethrough", "code", "link", "heading-two", "heading-three", "quote", "bulleted-list", "numbered-list"],
          modes: ["rich_text", "raw"],
          editor_components: ["image", "code-block"],
          hint: "想给某段文字上色：先选中那几句话，再点工具栏最右边的「🎨 颜色」按钮选色。文字会变成 {{<c:#ff7a7a>}}像这样{{</c>}} 的标记（这是正常的，发布到网站后就是彩色字）。想撤掉就把带颜色的那段重新选中，点「无」。（另外，编辑器里粉色高亮只是它自带的样式，与文字颜色无关）",
        }

  # ==================== 前端页面设置（改前端的工具） ====================
  - name: "pages"
    label: "前端页面设置"
    description: "改文案在这里；调整页面布局、配色和间距，请点右下角「🎨 可视化布局编辑器」，拖一下就好。"
    files:
      - name: "homepage"
        label: "首页内容"
        file: "content/homepage.json"
        fields:
          - {
              label: "顶部小标签",
              name: "hero_badge",
              widget: "string",
              required: false,
              hint: "首页大标题上方的小胶囊文字，留空则不显示",
            }
          - {
              label: "首页大标题",
              name: "hero_title",
              widget: "string",
              required: false,
              hint: "留空则自动使用「全站设置」里的站点标题；支持链接与颜色标注",
            }
          - {
              label: "首页副标题",
              name: "hero_subtitle",
              widget: "string",
              required: false,
              hint: "支持链接与颜色标注",
            }
          - {
              label: "公告条",
              name: "announcement",
              widget: "markdown",
              required: false,
              hint: "显示在页面最顶部，支持 Markdown。留空则不显示",
            }
          - { label: "显示「关于我」板块", name: "about_enabled", widget: "boolean", default: true, required: false }
          - {
              label: "板块标题",
              name: "about_title",
              widget: "string",
              required: false,
              hint: '支持链接与颜色标注（跟正文、页脚同一套写法），例：`关于<a href="/about/">Mentea</a>`',
            }
          - { label: "板块正文", name: "about_body", widget: "markdown", required: false }
          - { label: "页脚文字", name: "footer_text", widget: "markdown", required: false }

      - name: "settings"
        label: "全站基础设置"
        file: "content/settings.json"
        fields:
          - { label: "站点标题", name: "site_title", widget: "string", hint: "浏览器标签页与页头左上角的名字" }
          - { label: "站点副标题", name: "site_subtitle", widget: "string", required: false }
          - {
              label: "配色模式",
              name: "theme_mode",
              widget: "select",
              options: [{ label: "暗色（默认）", value: "dark" }, { label: "亮色", value: "light" }],
              default: "dark",
              hint: "用右下角的「可视化布局编辑器」调整可以边改边看效果",
            }
          - {
              label: "主题强调色",
              name: "accent_color",
              widget: "color",
              default: "#6366f1",
              allowInput: true,
              hint: "按钮、标签、链接的强调色，可直接粘贴色号如 #6366f1",
            }
          - {
              label: "页面背景色（可选）",
              name: "background_color",
              widget: "color",
              required: false,
              allowInput: true,
              hint: "留空则跟随配色模式的默认背景",
            }
          - {
              label: "标题与强调文字颜色（可选）",
              name: "heading_color",
              widget: "color",
              required: false,
              allowInput: true,
              hint: "留空 = 跟随配色模式默认。改完记得看下和背景的对比度够不够",
            }
          - {
              label: "正文段落颜色（可选）",
              name: "body_color",
              widget: "color",
              required: false,
              allowInput: true,
              hint: "留空 = 跟随配色模式默认",
            }
          - {
              label: "一般文字颜色（可选）",
              name: "text_color",
              widget: "color",
              required: false,
              allowInput: true,
              hint: "留空 = 跟随配色模式默认",
            }
          - {
              label: "次要文字颜色（日期等，可选）",
              name: "dim_color",
              widget: "color",
              required: false,
              allowInput: true,
              hint: "留空 = 跟随配色模式默认",
            }
          - {
              label: "首屏徽标文字颜色（可选）",
              name: "badge_color",
              widget: "color",
              required: false,
              allowInput: true,
              hint: "首屏那个小圆角标签（如「不可见的滚木」）的文字色。留空 = 按强调色自动算一个看得清的",
            }
          - {
              label: "正文里的链接颜色（可选）",
              name: "link_color",
              widget: "color",
              required: false,
              allowInput: true,
              hint: "留空 = 跟随强调色；强调色太暗时会自动换成能看清的颜色",
            }
          - {
              label: "字体",
              name: "font_family",
              widget: "select",
              options: [
                { label: "无衬线（默认）", value: "jakarta" },
                { label: "系统字体", value: "system" },
                { label: "衬线体", value: "serif" },
                { label: "等宽体", value: "mono" },
              ],
              default: "jakarta",
            }
          - {
              label: "内容区最大宽度（px）",
              name: "page_width",
              widget: "number",
              value_type: "int",
              default: 900,
              min: 600,
              max: 1400,
              hint: "以上这几项外观设置，在可视化编辑器里改会更直观",
            }
          - { label: "显示「管理后台」按钮", name: "show_admin_button", widget: "boolean", default: true }
          - { label: "按钮文字", name: "admin_button_text", widget: "string", default: "管理后台 →", required: false }
          - {
              label: "顶部导航链接",
              name: "nav_links",
              widget: "list",
              required: false,
              fields: [
                { label: "名称", name: "label", widget: "string" },
                { label: "链接", name: "url", widget: "string" },
              ],
            }
          - {
              label: "内容目录",
              name: "posts_dir",
              widget: "string",
              default: "content/notes",
              hint: "文章 md 文件所在目录，非必要不要修改",
            }
          - {
              label: "首页最多显示条数",
              name: "posts_limit",
              widget: "number",
              value_type: "int",
              default: 0,
              min: 0,
              hint: "填 0 表示全部显示",
            }
          - { label: "显示标签筛选", name: "show_tags", widget: "boolean", default: true }
          - {
              label: "显示右上角悬浮按钮",
              name: "float_buttons_enabled",
              widget: "boolean",
              default: true,
              required: false,
              hint: "总开关。关掉后下面两个按钮都不显示",
            }
          - {
              label: "① 首页按钮",
              name: "float_home_enabled",
              widget: "boolean",
              default: true,
              required: false,
              hint: "固定在屏幕右上角、滚动时不动",
            }
          - {
              label: "　　首页按钮链接",
              name: "float_home_url",
              widget: "string",
              default: "/",
              required: false,
              hint: "一般不用改，/ 就是站点首页",
            }
          - {
              label: "　　首页按钮悬停提示",
              name: "float_home_label",
              widget: "string",
              default: "回到首页",
              required: false,
            }
          - {
              label: "② 关于我按钮（跳转到个人介绍页）",
              name: "float_link_enabled",
              widget: "boolean",
              default: true,
              required: false,
              hint: "指向本站的 /about/ 页面，就是在「关于我页面」里编辑的那个",
            }
          - {
              label: "　　关于我按钮网址",
              name: "float_link_url",
              widget: "string",
              default: "/about/",
              required: false,
              hint: "默认指向本站的「关于我」页面 /about/。改成别的网址也行；留空则会自动隐藏这个按钮，不会留个点了没反应的死按钮",
            }
          - {
              label: "　　关于我按钮悬停提示",
              name: "float_link_label",
              widget: "string",
              default: "关于我",
              required: false,
            }
          - {
              label: "自定义 CSS",
              name: "custom_css",
              widget: "code",
              required: false,
              default: "",
              output_code_only: true,
              allow_language_selection: false,
              hint: "高级：直接注入样式表，例如改圆角、阴影、卡片间距",
            }
          - {
              label: "自定义 head 代码",
              name: "custom_head",
              widget: "code",
              required: false,
              default: "",
              output_code_only: true,
              allow_language_selection: false,
              hint: "高级：可插入统计脚本、自定义 meta 等",
            }

      # ==================== 关于我页面（个人介绍） ====================
      - name: "about"
        label: "关于我页面"
        file: "content/about.json"
        description: "这个页面的网址是 /about/（右上角悬浮按钮会跳到这里）。头像、简介、下方的那排图标链接都在这里改。"
        fields:
          - {
              label: "头像",
              name: "avatar",
              widget: "image",
              required: false,
              media_library: { allow_multiple: false },
              hint: "点「上传」即可，图片会传到你的图床。不填则显示名字首字母的圆形占位。",
            }
          - {
              label: "头像替代文字（无障碍）",
              name: "avatar_alt",
              widget: "string",
              required: false,
              default: "我的头像",
              hint: "给读屏软件用，可以不填",
            }
          - {
              label: "显示名字",
              name: "display_name",
              widget: "string",
              default: "Mentea",
              hint: "页面上最大的那个名字",
            }
          - {
              label: "一句话简介",
              name: "tagline",
              widget: "string",
              required: false,
              hint: "名字下方的小字，例如「画画的、写字的」。留空则不显示",
            }
          - {
              label: "自我介绍",
              name: "bio",
              widget: "markdown",
              required: false,
              hint: "支持换行、**加粗**、（链接）等写法。想给文字上色可先在主站文章里试好格式再粘过来。",
            }
          - label: "图标链接（下方那一排）"
            name: "links"
            widget: "list"
            required: false
            label_singular: "一个链接"
            summary: "{{fields.label}} → {{fields.url}}"
            hint: "点「+ 添加一个链接」增加，拖动左侧圆点可调整顺序。图标从下拉里选即可。"
            fields:
              - { label: "名称", name: "label", widget: "string", hint: "显示在图标右边的文字，例如「B 站」" }
              - { label: "网址", name: "url", widget: "string", hint: "完整网址，需要以 https:// 开头" }
              - {
                  label: "图标",
                  name: "icon",
                  widget: "select",
                  default: "link",
                  options:
                    [
                      { label: "B 站", value: "bilibili" },
                      { label: "osu!", value: "osu" },
                      { label: "GitHub", value: "github" },
                      { label: "邮箱", value: "mail" },
                      { label: "X / Twitter", value: "twitter" },
                      { label: "微博", value: "weibo" },
                      { label: "YouTube", value: "youtube" },
                      { label: "QQ", value: "qq" },
                      { label: "Pixiv", value: "pixiv" },
                      { label: "Telegram", value: "telegram" },
                      { label: "Discord", value: "discord" },
                      { label: "网易云音乐", value: "music" },
                      { label: "Steam", value: "steam" },
                      { label: "通用链接", value: "link" },
                    ],
                }
          - {
              label: "页脚文字",
              name: "footer_text",
              widget: "string",
              required: false,
              hint: "页面最下方的小字，留空则不显示",
            }

      # ==================== 画廊页面（Pinterest 风格图片墙） ====================
      - name: "gallery"
        label: "画廊页面"
        file: "content/gallery.json"
        description: "这个页面的网址是 /gallery/。它以瀑布流图片墙的方式展示作品，点开图片会在右侧显示笔记正文。注意：这里只会收录**打了下面这个标签**的笔记 —— 只是恰好有封面图、但没打标签的不会出现。"
        fields:
          - {
              label: "页面标题",
              name: "title",
              widget: "string",
              default: "画廊",
              hint: "浏览器标签页与页面大标题",
            }
          - {
              label: "页面副标题",
              name: "subtitle",
              widget: "string",
              required: false,
              default: "只收录带插画的笔记",
              hint: "标题下方的小字，留空则不显示",
            }
          - {
              label: "★ 收录标签",
              name: "tag",
              widget: "string",
              default: "插画",
              hint: "只有打了这个标签的笔记才会出现在画廊里。在「笔记与作品」里给文章加这个标签即可。改这里就能换一个标签（例如改成「作品」）。",
            }
          - {
              label: "空画廊时的提示文字",
              name: "empty_text",
              widget: "text",
              required: false,
              hint: "还没有任何笔记打上这个标签时显示的话。可以换行。",
            }

      # ==================== 首页轮播图 ====================
      - name: "carousel"
        label: "首页轮播图"
        file: "content/carousel.json"
        description: "首页那个会自动播放的图片区。**图片本身来自笔记**：去「笔记与作品」里，给带图的笔记勾上「加入首页轮播图」，它就会出现在这里。轮播区的位置、显隐、间距、高度请在「可视化布局」里调。"
        fields:
          - {
              label: "区域标题",
              name: "title",
              widget: "string",
              required: false,
              default: "近期作品",
              hint: "轮播区左上角的标题。留空则不显示标题。",
            }
          - {
              label: "标题下方的小字",
              name: "subtitle",
              widget: "string",
              required: false,
              hint: "留空则不显示。",
            }
          - {
              label: "右上角按钮文字",
              name: "button_text",
              widget: "string",
              required: false,
              default: "进入画廊",
              hint: "轮播区右上角那个按钮上的字。留空则隐藏这个按钮。",
            }
          - {
              label: "右上角按钮跳转到",
              name: "button_url",
              widget: "string",
              required: false,
              default: "/gallery/",
              hint: "默认 /gallery/ 就是你的画廊页。填完整网址（https:// 开头）也可以指向站外。",
            }
          - {
              label: "最多轮播几张",
              name: "slide_limit",
              widget: "number",
              required: false,
              default: 8,
              value_type: "int",
              min: 1,
              max: 20,
              hint: "按日期从新到旧取前几张。一篇笔记里插了好几幅图的话，每幅都算一张。",
            }
          - {
              label: "自动播放",
              name: "autoplay",
              widget: "boolean",
              default: true,
              required: false,
              hint: "关掉就只能手动点左右箭头翻页。鼠标移上去时会自动暂停。",
            }
          - {
              label: "每张停留秒数",
              name: "interval",
              widget: "number",
              required: false,
              default: 5,
              value_type: "int",
              min: 2,
              max: 30,
              hint: "自动播放时，每张图停多少秒再切下一张。",
            }
          - {
              label: "在图片上显示标题",
              name: "show_caption",
              widget: "boolean",
              default: true,
              required: false,
              hint: "在图片左下角显示这篇笔记的标题与日期（图片上有半透明黑底，两种配色模式下都看得清）。",
            }

      # ==================== 接单页（card.menteaweb.com） ====================
      # 这个页面的文案全部在这里改，改完点保存即可，不用碰代码。
      # 页面打开时会自己去读这份配置；万一读不到就用内置的默认文案，不会白屏。
      - name: "card"
        label: "接单页（card.menteaweb.com）"
        description: "交易/接单页的文字、闲鱼链接和收件邮箱都在这里改。"
        file: "content/card.json"
        fields:
          - { label: "标签页标题", name: "page_title", widget: "string", required: false, default: "Menteaの小站", hint: "浏览器标签页上显示的字" }
          - { label: "左上角站名", name: "site_name", widget: "string", required: false, default: "接单台", hint: "页面左上角那行小字" }
          - { label: "顶部小标签", name: "eyebrow", widget: "string", required: false, hint: "大标题上方那个小胶囊里的字" }
          - { label: "页面大标题", name: "title", widget: "string", required: false }
          - { label: "副标题", name: "subtitle", widget: "markdown", required: false }
          - { label: "「下单流程」板块标题", name: "steps_title", widget: "string", required: false }
          - label: "下单流程步骤"
            name: "steps"
            widget: "list"
            required: false
            summary: "{{fields.title}}"
            fields:
              - { label: "步骤标题", name: "title", widget: "string" }
              - { label: "步骤说明", name: "text", widget: "string" }
          - { label: "「提交需求」板块标题", name: "form_title", widget: "string", required: false }
          - { label: "安全提示文字", name: "guard_text", widget: "text", required: false, hint: "表单上方那段橙色警告，提醒买家不要在这里填密码、验证码" }
          - { label: "字段一 · 标签", name: "field1_label", widget: "string", required: false, hint: "默认「闲鱼昵称」" }
          - { label: "字段一 · 输入框提示", name: "field1_placeholder", widget: "string", required: false }
          - { label: "字段二 · 标签", name: "field2_label", widget: "string", required: false, hint: "默认「信息」" }
          - { label: "字段二 · 小提示", name: "field2_hint", widget: "string", required: false }
          - { label: "字段二 · 输入框提示", name: "field2_placeholder", widget: "string", required: false }
          - { label: "字段二 · 字数上限", name: "max_chars", widget: "number", value_type: "int", min: 100, max: 200000, required: false, default: 40000, hint: "买家最多能写多少字符，默认 40000（约 2 万字的中文）。改完保存即生效" }
          - { label: "字段二 · 字数统计文字", name: "msg_counter", widget: "string", required: false, default: "已输入 {n} / {max} 字符", hint: "输入框右下角那行小字。「{n}」是已输入的量，「{max}」是上限，别删掉这两个占位符" }
          - { label: "字段二 · 写满时的文字", name: "msg_counter_full", widget: "string", required: false, default: "已输入 {n} / {max} 字符 · 已达上限", hint: "写到上限后换成这句（同时变红色）" }
          - { label: "提交按钮文字", name: "submit_text", widget: "string", required: false }
          - { label: "按钮下方小字", name: "form_note", widget: "string", required: false }
          - { label: "成功页 · 大字", name: "done_title", widget: "string", required: false, default: "提交成功", hint: "提交成功后整页显示的大字" }
          - { label: "成功页 · 说明", name: "done_desc", widget: "string", required: false, default: "已经收到你的需求，请耐心等待，我会尽快联系你。", hint: "大字下面那段话" }
          - { label: "成功页 · 按钮文字", name: "done_again", widget: "string", required: false, default: "再提交一条", hint: "点一下回到表单，方便对方再提一条。留空则隐藏这个按钮" }
          - { label: "「常见问题」板块标题", name: "faq_title", widget: "string", required: false }
          - label: "常见问题列表"
            name: "faq"
            widget: "list"
            required: false
            summary: "{{fields.q}}"
            fields:
              - { label: "问题", name: "q", widget: "string" }
              - { label: "回答", name: "a", widget: "text" }
          - { label: "★ 收件端点", name: "endpoint", widget: "string", required: false, hint: "填邮箱（如 xxx@qq.com），或填 FormSubmit 确认邮箱后发给你的那串随机码。填随机码的好处：页面和仓库里都不会出现你的真实邮箱。两种随时可以换" }
          - { label: "页脚文字", name: "foot_text", widget: "string", required: false, default: "Mentea Website", hint: "页面最底部那行纯文字（没有链接、不可点）。留空则隐藏整行" }
          - { label: "提交中提示", name: "msg_sending", widget: "string", required: false, default: "提交中…", hint: "点下按钮到出结果之间，按钮上的字" }
          - { label: "未写必填项提示", name: "msg_required", widget: "string", required: false, default: "还有 {n} 项必填没写：{fields}", hint: "「{n}」会被替换成缺了几项，「{fields}」替换成缺的字段名，别删掉这两个占位符" }
          - { label: "未配收件端点时的提示", name: "msg_no_email", widget: "string", required: false, default: "这个页面还没配置收件方式，暂时收不到提交。", hint: "上面「★ 收件端点」填好之后，这条提示就不会再出现了" }
          - { label: "提交失败时的提示", name: "msg_error", widget: "string", required: false, default: "⚠️ 提交没能发出去（可能是网络问题）。请稍后再试一次。", hint: "想在这段里显示你的收件邮箱，就写一个 {mail}，它会被自动换成邮箱地址" }
          - { label: "每封邮件最多多少字符", name: "chunk_chars", widget: "number", value_type: "int", min: 1000, max: 10000, required: false, default: 10000, hint: "内容超过这个长度就会自动分成多封邮件发（每封的正文都在邮件里，不用点附件）。上限别超过 10000 —— 实测再大 FormSubmit 会直接报服务器错误" }
          - { label: "分多封时的提示", name: "msg_chunks", widget: "string", required: false, default: "", hint: "默认留空 = 不显示。填了才会在输入框左下角提示「内容较长，会分成 N 封邮件发送」，「{n}」换成封数" }
          - { label: "分段发送失败时的提示", name: "msg_partial", widget: "string", required: false, default: "已发出 {done}/{total} 段，第 {fail} 段没发出去，请重新提交一次。", hint: "多封发到一半断网时显示。「{done}」已发段数、「{total}」总段数、「{fail}」失败的那一段" }
          - { label: "邮件标题前缀", name: "subject_prefix", widget: "string", required: false, default: "【接单】新需求 · ", hint: "你收到的通知邮件，标题会以这段开头，后面接对方的闲鱼昵称" }
