312 lines
10 KiB
YAML
312 lines
10 KiB
YAML
backend:
|
||
name: gitea
|
||
repo: SloanOps/3031023-xyz
|
||
branch: cms
|
||
app_id: c07dba05-eb09-48f0-8da4-6df775a13995
|
||
api_root: https://git.sloanops.com/api/v1
|
||
base_url: https://git.sloanops.com
|
||
auth_endpoint: https://git.sloanops.com/login/oauth/authorize
|
||
|
||
publish_mode: simple
|
||
site_url: https://cms-3031023-xyz-www.ksloan90.workers.dev
|
||
display_url: https://cms-3031023-xyz-www.ksloan90.workers.dev
|
||
show_preview_links: false
|
||
|
||
media_folder: public/images/uploads
|
||
public_folder: /images/uploads
|
||
|
||
slug:
|
||
encoding: ascii
|
||
clean_accents: true
|
||
sanitize_replacement: "-"
|
||
|
||
collections:
|
||
- name: primary_faq
|
||
label: Primary site — FAQs
|
||
label_singular: FAQ
|
||
description: Answers shown on the primary Happy Tails site. Draft entries stay out of the generated site.
|
||
folder: sites/www/content/faq
|
||
create: true
|
||
delete: true
|
||
extension: md
|
||
format: frontmatter
|
||
identifier_field: question
|
||
slug: "{{slug}}"
|
||
summary: "{{question}} ({{category}})"
|
||
sortable_fields: [order, question, category, draft]
|
||
fields:
|
||
- label: Question
|
||
name: question
|
||
widget: string
|
||
pattern: ['^.{12,180}$', 'Use 12–180 characters.']
|
||
- label: Category
|
||
name: category
|
||
widget: string
|
||
default: General
|
||
pattern: ['^.{2,48}$', 'Use 2–48 characters.']
|
||
- label: Display order
|
||
name: order
|
||
widget: number
|
||
value_type: int
|
||
min: 0
|
||
max: 99
|
||
step: 1
|
||
default: 0
|
||
- label: Draft (excluded from generated site)
|
||
name: draft
|
||
widget: boolean
|
||
default: false
|
||
- label: Answer
|
||
name: body
|
||
widget: markdown
|
||
buttons: [bold, italic, link, heading-two, heading-three, quote, bulleted-list, numbered-list]
|
||
editor_components: []
|
||
|
||
- name: primary_services
|
||
label: Primary site — Services
|
||
label_singular: Service
|
||
description: Service cards shown on the primary Happy Tails site.
|
||
folder: sites/www/content/services
|
||
create: true
|
||
delete: true
|
||
extension: md
|
||
format: frontmatter
|
||
identifier_field: title
|
||
slug: "{{slug}}"
|
||
summary: "{{title}} — {{price}}"
|
||
sortable_fields: [order, title, featured, draft]
|
||
fields:
|
||
- label: Title
|
||
name: title
|
||
widget: string
|
||
pattern: ['^.{3,80}$', 'Use 3–80 characters.']
|
||
- label: Price label
|
||
name: price
|
||
widget: string
|
||
pattern: ['^.{2,48}$', 'Use 2–48 characters.']
|
||
- label: Included items
|
||
name: items
|
||
widget: list
|
||
min: 1
|
||
max: 8
|
||
field:
|
||
label: Item
|
||
name: item
|
||
widget: string
|
||
pattern: ['^.{3,80}$', 'Use 3–80 characters.']
|
||
- label: Display order
|
||
name: order
|
||
widget: number
|
||
value_type: int
|
||
min: 0
|
||
max: 99
|
||
step: 1
|
||
default: 0
|
||
- label: Featured
|
||
name: featured
|
||
widget: boolean
|
||
default: false
|
||
- label: Draft (excluded from generated site)
|
||
name: draft
|
||
widget: boolean
|
||
default: false
|
||
- label: Description
|
||
name: body
|
||
widget: markdown
|
||
buttons: [bold, italic, link, heading-two, heading-three, quote, bulleted-list, numbered-list]
|
||
editor_components: []
|
||
|
||
- name: primary_team
|
||
label: Primary site — Team
|
||
label_singular: Team member
|
||
description: Team profiles shown on the primary Happy Tails site.
|
||
folder: sites/www/content/team
|
||
create: true
|
||
delete: true
|
||
extension: md
|
||
format: frontmatter
|
||
identifier_field: name
|
||
slug: "{{slug}}"
|
||
summary: "{{name}} — {{role}}"
|
||
sortable_fields: [order, name, role, draft]
|
||
fields:
|
||
- label: Name
|
||
name: name
|
||
widget: string
|
||
pattern: ['^.{3,80}$', 'Use 3–80 characters.']
|
||
- label: Role
|
||
name: role
|
||
widget: string
|
||
pattern: ['^.{3,80}$', 'Use 3–80 characters.']
|
||
- label: Approved raster image
|
||
name: image
|
||
widget: image
|
||
required: false
|
||
choose_url: false
|
||
allow_multiple: false
|
||
pattern: ['^[A-Za-z0-9][A-Za-z0-9._-]*\.(?:jpe?g|png|webp|avif)$', 'Choose an approved JPG, PNG, WebP, or AVIF upload. SVG and general files are not allowed.']
|
||
media_library:
|
||
config:
|
||
max_file_size: 26214400
|
||
multiple: false
|
||
- label: Display order
|
||
name: order
|
||
widget: number
|
||
value_type: int
|
||
min: 0
|
||
max: 99
|
||
step: 1
|
||
default: 0
|
||
- label: Draft (excluded from generated site)
|
||
name: draft
|
||
widget: boolean
|
||
default: false
|
||
- label: Biography
|
||
name: body
|
||
widget: markdown
|
||
buttons: [bold, italic, link, heading-two, heading-three, quote, bulleted-list, numbered-list]
|
||
editor_components: []
|
||
|
||
- name: primary_page_images
|
||
label: Primary site — Page images
|
||
description: Optional images and required accessible descriptions for the primary site's main pages.
|
||
files:
|
||
- label: Home, About, Services, and Contact
|
||
name: primary
|
||
file: sites/www/content/page-images/primary.md
|
||
fields:
|
||
- label: Home hero image
|
||
name: homeHeroImage
|
||
widget: image
|
||
required: false
|
||
choose_url: false
|
||
allow_multiple: false
|
||
pattern: ['^[A-Za-z0-9][A-Za-z0-9._-]*\.(?:jpe?g|png|webp|avif)$', 'Choose an approved JPG, PNG, WebP, or AVIF upload. SVG and general files are not allowed.']
|
||
media_library:
|
||
config: { max_file_size: 26214400, multiple: false }
|
||
- label: Home hero image description
|
||
name: homeHeroImageAlt
|
||
widget: string
|
||
pattern: ['^.{8,180}$', 'Describe the image in 8–180 characters.']
|
||
- label: Home story image
|
||
name: homeStoryImage
|
||
widget: image
|
||
required: false
|
||
choose_url: false
|
||
allow_multiple: false
|
||
pattern: ['^[A-Za-z0-9][A-Za-z0-9._-]*\.(?:jpe?g|png|webp|avif)$', 'Choose an approved JPG, PNG, WebP, or AVIF upload. SVG and general files are not allowed.']
|
||
media_library:
|
||
config: { max_file_size: 26214400, multiple: false }
|
||
- label: Home story image description
|
||
name: homeStoryImageAlt
|
||
widget: string
|
||
pattern: ['^.{8,180}$', 'Describe the image in 8–180 characters.']
|
||
- label: About hero image
|
||
name: aboutHeroImage
|
||
widget: image
|
||
required: false
|
||
choose_url: false
|
||
allow_multiple: false
|
||
pattern: ['^[A-Za-z0-9][A-Za-z0-9._-]*\.(?:jpe?g|png|webp|avif)$', 'Choose an approved JPG, PNG, WebP, or AVIF upload. SVG and general files are not allowed.']
|
||
media_library:
|
||
config: { max_file_size: 26214400, multiple: false }
|
||
- label: About hero image description
|
||
name: aboutHeroImageAlt
|
||
widget: string
|
||
pattern: ['^.{8,180}$', 'Describe the image in 8–180 characters.']
|
||
- label: About story image
|
||
name: aboutStoryImage
|
||
widget: image
|
||
required: false
|
||
choose_url: false
|
||
allow_multiple: false
|
||
pattern: ['^[A-Za-z0-9][A-Za-z0-9._-]*\.(?:jpe?g|png|webp|avif)$', 'Choose an approved JPG, PNG, WebP, or AVIF upload. SVG and general files are not allowed.']
|
||
media_library:
|
||
config: { max_file_size: 26214400, multiple: false }
|
||
- label: About story image description
|
||
name: aboutStoryImageAlt
|
||
widget: string
|
||
pattern: ['^.{8,180}$', 'Describe the image in 8–180 characters.']
|
||
- label: Services hero image
|
||
name: servicesHeroImage
|
||
widget: image
|
||
required: false
|
||
choose_url: false
|
||
allow_multiple: false
|
||
pattern: ['^[A-Za-z0-9][A-Za-z0-9._-]*\.(?:jpe?g|png|webp|avif)$', 'Choose an approved JPG, PNG, WebP, or AVIF upload. SVG and general files are not allowed.']
|
||
media_library:
|
||
config: { max_file_size: 26214400, multiple: false }
|
||
- label: Services hero image description
|
||
name: servicesHeroImageAlt
|
||
widget: string
|
||
pattern: ['^.{8,180}$', 'Describe the image in 8–180 characters.']
|
||
- label: Contact hero image
|
||
name: contactHeroImage
|
||
widget: image
|
||
required: false
|
||
choose_url: false
|
||
allow_multiple: false
|
||
pattern: ['^[A-Za-z0-9][A-Za-z0-9._-]*\.(?:jpe?g|png|webp|avif)$', 'Choose an approved JPG, PNG, WebP, or AVIF upload. SVG and general files are not allowed.']
|
||
media_library:
|
||
config: { max_file_size: 26214400, multiple: false }
|
||
- label: Contact hero image description
|
||
name: contactHeroImageAlt
|
||
widget: string
|
||
pattern: ['^.{8,180}$', 'Describe the image in 8–180 characters.']
|
||
|
||
- name: journal_posts
|
||
label: Journal — Posts
|
||
label_singular: Journal post
|
||
description: Markdown posts published on the Happy Tails Journal preview. Draft entries stay out of the generated site.
|
||
folder: sites/blog/content/posts
|
||
create: true
|
||
delete: true
|
||
extension: md
|
||
format: frontmatter
|
||
identifier_field: title
|
||
slug: "{{slug}}"
|
||
summary: "{{title}} — {{pubDate}}"
|
||
sortable_fields: [pubDate, updatedDate, title, draft]
|
||
fields:
|
||
- label: Title
|
||
name: title
|
||
widget: string
|
||
pattern: ['^.{12,100}$', 'Use 12–100 characters.']
|
||
- label: Description
|
||
name: description
|
||
widget: text
|
||
pattern: ['^[\s\S]{30,180}$', 'Use 30–180 characters.']
|
||
- label: Publish date
|
||
name: pubDate
|
||
widget: datetime
|
||
default: "{{now}}"
|
||
date_format: YYYY-MM-DD
|
||
time_format: false
|
||
picker_utc: true
|
||
- label: Updated date
|
||
name: updatedDate
|
||
widget: datetime
|
||
date_format: YYYY-MM-DD
|
||
time_format: false
|
||
picker_utc: true
|
||
required: false
|
||
- label: Tags
|
||
name: tags
|
||
widget: list
|
||
min: 1
|
||
max: 4
|
||
field:
|
||
label: Tag
|
||
name: tag
|
||
widget: string
|
||
pattern: ['^.{2,32}$', 'Use 2–32 characters.']
|
||
- label: Draft (excluded from generated site)
|
||
name: draft
|
||
widget: boolean
|
||
default: false
|
||
- label: Body
|
||
name: body
|
||
widget: markdown
|
||
buttons: [bold, italic, link, heading-two, heading-three, quote, bulleted-list, numbered-list]
|
||
editor_components: []
|