# yaml-language-server: $schema=https://unpkg.com/@sveltia/cms/schema/sveltia-cms.json

backend:
  name: github
  repo: sayliks/astro-paper
  branch: main
  open_authoring: false
  base_url: https://www.matsumae.top/api/cms-auth
  auth_methods: [oauth, token]

app_title: "sayliks 内容管理"
site_url: "https://www.matsumae.top"
display_url: "https://www.matsumae.top"
logo:
  src: /favicon.svg
  show_in_header: true

media_folder: public/assets/uploads
public_folder: /assets/uploads

slug:
  encoding: unicode
  clean_accents: true
  sanitize_replacement: "-"

collections:
  - name: posts
    label: 文章
    label_singular: 文章
    folder: src/content/posts
    create: true
    delete: true
    extension: md
    format: frontmatter
    identifier_field: title
    summary: "{{title}} · {{pubDatetime}}"
    slug: "{{year}}-{{month}}-{{day}}-{{slug}}"
    preview_path: "posts/{{slug}}/"
    fields:
      - label: 标题
        name: title
        widget: string

      - label: 发布时间
        name: pubDatetime
        widget: datetime
        format: "YYYY-MM-DDTHH:mm:ssZ"
        date_format: "YYYY-MM-DD"
        time_format: "HH:mm"
        default: "{{now}}"

      - label: 摘要
        name: description
        widget: text

      - label: 标签
        name: tags
        widget: list
        min: 1
        default:
          - 随笔
        field:
          label: 标签
          name: tag
          widget: string

      - label: 草稿
        name: draft
        widget: boolean
        default: true

      - label: 精选
        name: featured
        widget: boolean
        default: false

      - label: 社交分享图片
        name: ogImage
        widget: image
        required: false
        hint: 可选。留空时使用站点自动生成的分享图片。

      - label: 规范链接（Canonical URL）
        name: canonicalURL
        widget: string
        required: false
        hint: 可选。仅在文章有外部原始来源或需要指定规范地址时填写。

      - label: 时区
        name: timezone
        widget: string
        required: false
        default: Asia/Hong_Kong

      - label: 正文
        name: body
        widget: markdown

  - name: moments
    label: 动态
    label_singular: 动态
    folder: src/content/moments
    create: true
    delete: true
    extension: md
    format: frontmatter
    identifier_field: slug
    summary: "{{pubDatetime}} · {{body}}"
    slug: "{{year}}-{{month}}-{{day}}-{{hour}}{{minute}}-{{slug}}"
    preview_path: "moments/{{slug}}/"
    media_folder: public/moments
    public_folder: /moments
    fields:
      - label: 正文
        name: body
        widget: markdown
        required: true
        hint: 可以写得很短，适合记录轻量的状态更新。

      - label: 标题
        name: title
        widget: string
        required: false
        hint: 可选。填写后作为动态标题显示；留空则自动使用发布时间。

      - label: 简短标识
        name: slug
        widget: string
        required: true
        hint: 会进入文件名并影响动态详情路径；请保持唯一，建议使用简短英文或拼音，例如 evening-walk。

      - label: 图片
        name: images
        widget: list
        required: false
        hint: 可选。动态图片会保存到 public/moments，并通过 /moments 访问。
        fields:
          - label: 图片
            name: src
            widget: image
            required: true
          - label: 替代文本
            name: alt
            widget: string
            required: true
            hint: 描述图片中能看到的主要内容。
          - label: 宽度
            name: width
            widget: number
            value_type: int
            required: true
            min: 1
            hint: 图片原始宽度，单位为像素。
          - label: 高度
            name: height
            widget: number
            value_type: int
            required: true
            min: 1
            hint: 图片原始高度，单位为像素。

      - label: 发布时间
        name: pubDatetime
        widget: datetime
        required: true
        format: "YYYY-MM-DDTHH:mm:ssZ"
        date_format: "YYYY-MM-DD"
        time_format: "HH:mm"
        default: "{{now}}"

      - label: 心情
        name: mood
        widget: string
        required: false

      - label: 地点
        name: location
        widget: string
        required: false
        hint: 可选，必须手动填写，不会自动获取位置。

      - label: 置顶
        name: pinned
        widget: boolean
        default: false

      - label: 草稿
        name: draft
        widget: boolean
        default: false
        hint: 草稿不会出现在生产环境页面中。

      - label: 修改时间
        name: modDatetime
        widget: datetime
        required: false
        format: "YYYY-MM-DDTHH:mm:ssZ"
        date_format: "YYYY-MM-DD"
        time_format: "HH:mm"

  - name: photo_wall
    label: 照片墙
    media_folder: public/photo-wall
    public_folder: /photo-wall
    files:
      - name: photo_wall
        label: 照片墙
        file: src/data/photoWall.json
        format: json
        fields:
          - label: 照片
            name: photos
            widget: list
            label_singular: 照片
            summary: "{{order}} · {{title}}"
            thumbnail: src
            fields:
              - label: 图片来源
                name: src
                widget: image
                choose_url: true
                required: true
                hint: 可上传到 public/photo-wall，也可以粘贴已允许图片域名的 https:// 外部图片 URL。
              - label: 标题或描述
                name: title
                widget: string
                required: true
              - label: 替代文本
                name: alt
                widget: string
                required: true
                hint: 描述图片中能看到的主要内容。
              - label: 宽度
                name: width
                widget: number
                value_type: int
                required: true
                min: 1
                hint: 图片原始宽度，单位为像素。
              - label: 高度
                name: height
                widget: number
                value_type: int
                required: true
                min: 1
                hint: 图片原始高度，单位为像素。
              - label: 排序
                name: order
                widget: number
                value_type: int
                required: true
                hint: 数字越小越靠前。
              - label: 已发布
                name: published
                widget: boolean
                default: true
                required: true
