wowchemy_cms_tpl.yaml 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521
  1. backend:
  2. name: git-gateway
  3. branch: main
  4. squash_merges: true
  5. media_folder: 'assets/media'
  6. public_folder: '/media'
  7. collections:
  8. - name: home
  9. label: "Homepage"
  10. folder: 'content/home'
  11. path: '{{slug}}'
  12. # When specifying a path on a folder collection, media_folder defaults to an empty string, so make it explicit.
  13. media_folder: '/assets/media'
  14. public_folder: ''
  15. summary: "{{filename}}: {{title}}"
  16. identifier_field: "widget_id"
  17. create: true
  18. fields:
  19. - {label: "Widget Type (https://wowchemy.com/docs/page-builder/)", name: "widget", widget: "string", required: true}
  20. - {label: 'Your reference for this widget (e.g. recent-posts)', name: 'widget_id', widget: 'string', default: 'my-widget-123'}
  21. - {label: "Headless?", name: "headless", widget: "hidden", default: true}
  22. - label: "Widget position"
  23. name: "weight"
  24. widget: "number"
  25. default: 10
  26. value_type: "int"
  27. min: 0
  28. max: 1001
  29. step: 10
  30. - {label: "Title", name: "title", widget: "string", required: false}
  31. - {label: "Subtitle", name: "subtitle", widget: "string", required: false}
  32. - label: "Enabled?"
  33. name: "active"
  34. required: false
  35. widget: "boolean"
  36. default: true
  37. - label: "Widget Style"
  38. name: "design"
  39. widget: "object"
  40. required: false
  41. fields:
  42. - {label: "Columns (options: `1` or `2`)", name: "columns", widget: "string", default: "2", required: false}
  43. - label: "Background"
  44. name: "background"
  45. widget: "object"
  46. required: false
  47. fields:
  48. - {label: 'Solid color', name: 'color', widget: 'color', enableAlpha: true, allowInput: true, required: false}
  49. - {label: 'Gradient start', name: 'gradient_start', widget: 'color', enableAlpha: true, allowInput: true, required: false}
  50. - {label: 'Gradient end', name: 'gradient_end', widget: 'color', enableAlpha: true, allowInput: true, required: false}
  51. - label: "Use a light text color?"
  52. name: "text_color_light"
  53. required: false
  54. widget: "boolean"
  55. default: false
  56. - label: "Image"
  57. name: "image"
  58. widget: "image"
  59. required: false
  60. # When specifying a path on a folder collection, media_folder defaults to an empty string, so make it explicit.
  61. media_folder: '/assets/media'
  62. public_folder: ''
  63. media_library:
  64. config:
  65. multiple: false
  66. - label: "Darken the image? (0 is transparent & 1 is opaque)"
  67. name: "image_darken"
  68. widget: "number"
  69. default: 0.0
  70. value_type: "float"
  71. min: 0.0
  72. max: 1.0
  73. step: 0.1
  74. required: false
  75. - {label: "Body", name: "body", widget: "markdown", required: false}
  76. - name: authors
  77. label: Authors
  78. label_singular: Author
  79. folder: 'content/authors'
  80. path: '{{slug}}/_index'
  81. filter: {field: "cms_exclude"}
  82. create: true # Allow users to create new documents in this collection
  83. fields: # The fields each document in this collection have
  84. - {label: "Display name (such as your full name)", name: "title", widget: "string"}
  85. - {label: "Position or tagline (such as Professor of AI)", name: "role", widget: "string", required: false}
  86. - label: "Avatar (upload an image named `avatar.jpg/png`)"
  87. name: "avatar_filename"
  88. widget: "image"
  89. default: "avatar"
  90. required: false
  91. media_library:
  92. config:
  93. multiple: false
  94. - {label: "Short biography (shown in author boxes)", name: "bio", widget: "string", required: false}
  95. - {label: "Full biography (shown in About widget)", name: "body", widget: "markdown", required: false}
  96. - label: "Interests (shown in About widget)"
  97. name: "interests"
  98. required: false
  99. widget: "list"
  100. - label: Social links
  101. name: social
  102. required: false
  103. widget: list
  104. fields:
  105. - {label: Link, name: link, widget: string}
  106. - label: Icon pack
  107. name: icon_pack
  108. widget: select
  109. multiple: false
  110. options:
  111. - {label: "None", value: ""}
  112. - {label: "Solid", value: "fas"}
  113. - {label: "Regular", value: "far"}
  114. - {label: "Brand", value: "fab"}
  115. - {label: "Academic", value: "ai"}
  116. - {label: Icon (see https://wowchemy.com/docs/page-builder/#icons), name: icon, widget: string}
  117. - {label: Label (tooltip), name: label, widget: string, required: false}
  118. - label: Display in About widget and...
  119. name: display
  120. widget: object
  121. fields:
  122. - label: "Header (main menu)"
  123. name: "header"
  124. widget: "boolean"
  125. default: false
  126. required: false
  127. - label: "Organizations you belong to or are affiliated with (shown in About widget)"
  128. name: "organizations"
  129. required: false
  130. widget: list
  131. fields:
  132. - {label: Organization, name: name, widget: string, required: true}
  133. - {label: Link, name: url, widget: string, required: false}
  134. - label: "Education"
  135. name: "education"
  136. required: false
  137. widget: object
  138. fields:
  139. - label: "Courses"
  140. name: "courses"
  141. required: false
  142. widget: list
  143. fields:
  144. - {label: Course, name: course, widget: string, required: true}
  145. - {label: Institution, name: institution, widget: string, required: true}
  146. - {label: Year, name: year, widget: number, value_type: int, required: false}
  147. - {label: "Email (to use a Gravatar.com avatar)", name: "email", widget: "string", required: false}
  148. - label: "Super user (is this the primary site user?)"
  149. name: "superuser"
  150. widget: "boolean"
  151. default: false
  152. - label: "User groups (only for organization websites)"
  153. name: "user_groups"
  154. required: false
  155. widget: "list"
  156. - name: posts
  157. label: Posts
  158. label_singular: Post
  159. folder: 'content/post'
  160. path: '{{slug}}/index'
  161. filter: {field: "cms_exclude"}
  162. create: true # Allow users to create new documents in this collection
  163. fields: # The fields each document in this collection have
  164. - {label: "Title", name: "title", widget: "string"}
  165. - {label: "Subtitle", name: "subtitle", widget: "string", required: false}
  166. - {label: "Body", name: "body", widget: "markdown"}
  167. - {label: "Publish this page on", name: "date", widget: "datetime"}
  168. - {label: "Summary", name: "summary", widget: "markdown", required: false}
  169. - label: "Draft"
  170. name: "draft"
  171. widget: "boolean"
  172. default: false
  173. required: false
  174. - label: "Featured"
  175. name: "featured"
  176. widget: "boolean"
  177. default: false
  178. required: false
  179. - label: "Authors"
  180. name: "authors"
  181. required: false
  182. widget: "list"
  183. - label: "Tags"
  184. name: "tags"
  185. required: false
  186. widget: "list"
  187. - label: "Categories"
  188. name: "categories"
  189. required: false
  190. widget: "list"
  191. - label: "Projects"
  192. name: "projects"
  193. required: false
  194. widget: "list"
  195. - label: "Featured Image"
  196. name: "image"
  197. required: false
  198. widget: object
  199. fields:
  200. - label: "Upload an image named `featured.jpg/png`"
  201. name: "filename"
  202. widget: "image"
  203. default: "featured"
  204. required: false
  205. media_library:
  206. config:
  207. multiple: false
  208. - {label: Caption, name: caption, widget: string, required: false}
  209. - {label: Description for screen readers, name: alt_text, widget: string, required: false}
  210. - {label: "Where's the focal point in the image? Smart, Center, TopLeft, Top, TopRight, Left, Right, BottomLeft, Bottom, BottomRight.", name: focal_point, widget: string, required: false, default: "Smart"}
  211. - {label: 'Thumbnail Only?', name: preview_only, widget: boolean, default: false, required: false}
  212. - name: projects
  213. label: Projects
  214. label_singular: Project
  215. folder: 'content/project'
  216. path: '{{slug}}/index'
  217. filter: {field: "cms_exclude"}
  218. create: true # Allow users to create new documents in this collection
  219. fields: # The fields each document in this collection have
  220. - {label: "Title", name: "title", widget: "string"}
  221. - {label: "Subtitle", name: "subtitle", widget: "string", required: false}
  222. - {label: "Body", name: "body", widget: "markdown", required: false}
  223. - {label: "Publish this page on", name: "date", widget: "datetime"}
  224. - {label: "Summary", name: "summary", widget: "markdown", required: false}
  225. - label: "Draft"
  226. name: "draft"
  227. widget: "boolean"
  228. default: false
  229. required: false
  230. - label: "Featured"
  231. name: "featured"
  232. widget: "boolean"
  233. default: false
  234. required: false
  235. - label: "Authors"
  236. name: "authors"
  237. required: false
  238. widget: "list"
  239. - label: "Tags"
  240. name: "tags"
  241. required: false
  242. widget: "list"
  243. - label: "Categories"
  244. name: "categories"
  245. required: false
  246. widget: "list"
  247. - {label: "External link (optional - replaces link to project page)", name: "external_link", widget: "string", required: false}
  248. - label: Links
  249. name: links
  250. required: false
  251. widget: list
  252. fields:
  253. - {label: Link, name: url, widget: string}
  254. - {label: Link text, name: name, widget: string, required: false}
  255. - label: Icon pack
  256. name: icon_pack
  257. widget: select
  258. multiple: false
  259. required: false
  260. options:
  261. - {label: "None", value: ""}
  262. - {label: "Solid", value: "fas"}
  263. - {label: "Regular", value: "far"}
  264. - {label: "Brand", value: "fab"}
  265. - {label: "Academic", value: "ai"}
  266. - {label: "Icon (see https://wowchemy.com/docs/page-builder/#icons)", name: icon, widget: string, required: false}
  267. - label: "Featured Image"
  268. name: "image"
  269. required: false
  270. widget: object
  271. fields:
  272. - label: "Upload an image named `featured.jpg/png`"
  273. name: "filename"
  274. widget: "image"
  275. default: "featured"
  276. required: false
  277. media_library:
  278. config:
  279. multiple: false
  280. - {label: Caption, name: caption, widget: string, required: false}
  281. - {label: Description for screen readers, name: alt_text, widget: string, required: false}
  282. - {label: "Where's the focal point in the image? Smart, Center, TopLeft, Top, TopRight, Left, Right, BottomLeft, Bottom, BottomRight.", name: focal_point, widget: string, required: false, default: "Smart"}
  283. - {label: 'Thumbnail Only?', name: preview_only, widget: boolean, default: false, required: false}
  284. - name: events
  285. label: Events
  286. label_singular: Event
  287. folder: 'content/event'
  288. path: '{{slug}}/index'
  289. filter: {field: "cms_exclude"}
  290. create: true # Allow users to create new documents in this collection
  291. fields: # The fields each document in this collection have
  292. - {label: "Title", name: "title", widget: "string"}
  293. - {label: "Abstract", name: "abstract", widget: "text"}
  294. - {label: "Where", name: "location", widget: "text"}
  295. - {label: "From", name: "date", widget: "datetime"}
  296. - {label: "To", name: "date_end", widget: "datetime", default: ""}
  297. - {label: "All day event?", name: "all_day", widget: "boolean", default: false}
  298. - label: Links/Tickets
  299. name: links
  300. required: false
  301. widget: list
  302. fields:
  303. - {label: Link, name: url, widget: string}
  304. - {label: Link text, name: name, widget: string, required: false}
  305. - label: Icon pack
  306. name: icon_pack
  307. widget: select
  308. multiple: false
  309. required: false
  310. options:
  311. - {label: "None", value: ""}
  312. - {label: "Solid", value: "fas"}
  313. - {label: "Regular", value: "far"}
  314. - {label: "Brand", value: "fab"}
  315. - {label: "Academic", value: "ai"}
  316. - {label: "Icon (see https://wowchemy.com/docs/page-builder/#icons)", name: icon, widget: string, required: false}
  317. - {label: "Event", name: "event", widget: "string"}
  318. - {label: "Event link", name: "event_url", widget: "string"}
  319. - {label: "Publish this page on", name: "publishDate", widget: "datetime"}
  320. - {label: "Markdown slides (reference a deck in 'content/slides/')", name: "slides", widget: "string", required: false}
  321. - label: "Draft"
  322. name: "draft"
  323. widget: "boolean"
  324. default: false
  325. required: false
  326. - label: "Featured"
  327. name: "featured"
  328. widget: "boolean"
  329. default: false
  330. required: false
  331. - label: "Authors"
  332. name: "authors"
  333. required: false
  334. widget: "list"
  335. - label: "Tags"
  336. name: "tags"
  337. required: false
  338. widget: "list"
  339. - label: "Categories"
  340. name: "categories"
  341. required: false
  342. widget: "list"
  343. - label: "Projects (reference projects in 'content/project/')"
  344. name: "projects"
  345. required: false
  346. widget: "list"
  347. - label: "Featured Image"
  348. name: "image"
  349. required: false
  350. widget: object
  351. fields:
  352. - label: "Upload an image named `featured.jpg/png`"
  353. name: "filename"
  354. widget: "image"
  355. default: "featured"
  356. required: false
  357. media_library:
  358. config:
  359. multiple: false
  360. - {label: Caption, name: caption, widget: string, required: false}
  361. - {label: Description for screen readers, name: alt_text, widget: string, required: false}
  362. - {label: "Where's the focal point in the image? Smart, Center, TopLeft, Top, TopRight, Left, Right, BottomLeft, Bottom, BottomRight.", name: focal_point, widget: string, required: false, default: "Smart"}
  363. - {label: 'Thumbnail Only?', name: preview_only, widget: boolean, default: false, required: false}
  364. - {label: "Details", name: "body", widget: "markdown", required: false}
  365. - name: publications
  366. label: Publications
  367. label_singular: Publication
  368. folder: 'content/publication'
  369. path: '{{slug}}/index'
  370. filter: {field: "cms_exclude"}
  371. create: true # Allow users to create new documents in this collection
  372. fields: # The fields each document in this collection have
  373. - { label: "Title", name: "title", widget: "string" }
  374. - { label: "Subtitle", name: "subtitle", widget: "string", required: false }
  375. - label: "Publication type"
  376. name: "publication_types"
  377. required: true
  378. default: ["0"]
  379. widget: "select"
  380. # Can only have 1 pub. type assigned, but need `multiple` option to save as a Hugo taxonomy list.
  381. multiple: true
  382. options:
  383. - { label: "Uncategorized", value: "0" }
  384. - { label: "Conference paper", value: "1" }
  385. - { label: "Journal article", value: "2" }
  386. - { label: "Preprint / Working Paper", value: "3" }
  387. - { label: "Report", value: "4" }
  388. - { label: "Book", value: "5" }
  389. - { label: "Book section", value: "6" }
  390. - { label: "Thesis", value: "7" }
  391. - { label: "Patent", value: "8" }
  392. - label: "Authors"
  393. name: "authors"
  394. required: true
  395. widget: "list"
  396. - label: "Author Notes (contributions or affiliations for each author)"
  397. name: "author_notes"
  398. required: false
  399. widget: "list"
  400. - { label: "DOI", name: "doi", widget: "string", required: false }
  401. - { label: "Publication", name: "publication", widget: "string", required: false }
  402. - { label: "Publication (abbreviated)", name: "publication_short", widget: "string", required: false }
  403. - { label: "Abstract", name: "abstract", widget: "text", required: false }
  404. - label: "Draft"
  405. name: "draft"
  406. widget: "boolean"
  407. default: false
  408. required: false
  409. - label: "Featured"
  410. name: "featured"
  411. widget: "boolean"
  412. default: false
  413. required: false
  414. - label: "Tags"
  415. name: "tags"
  416. required: false
  417. widget: "list"
  418. - label: "Categories"
  419. name: "categories"
  420. required: false
  421. widget: "list"
  422. - label: "Projects"
  423. name: "projects"
  424. required: false
  425. widget: "list"
  426. - {label: "Markdown slides (reference a deck in 'content/slides/')", name: "slides", widget: "string", required: false}
  427. - label: "Featured Image"
  428. name: "image"
  429. required: false
  430. widget: object
  431. fields:
  432. - label: "Upload an image named `featured.jpg/png`"
  433. name: "filename"
  434. widget: "image"
  435. default: "featured"
  436. required: false
  437. media_library:
  438. config:
  439. multiple: false
  440. - { label: Caption, name: caption, widget: string, required: false }
  441. - { label: Description for screen readers, name: alt_text, widget: string, required: false }
  442. - { label: "Where's the focal point in the image? Smart, Center, TopLeft, Top, TopRight, Left, Right, BottomLeft, Bottom, BottomRight.", name: focal_point, widget: string, required: false, default: "Smart" }
  443. - { label: 'Thumbnail Only?', name: preview_only, widget: boolean, default: false, required: false }
  444. - { label: "Summary (shortened abstract)", name: "summary", widget: "text", required: false }
  445. - {label: "Details", name: "body", widget: "markdown", required: false}
  446. - { label: "Publish this page on", name: "date", widget: "datetime" }
  447. - name: slides
  448. label: Slides
  449. label_singular: Slides
  450. folder: 'content/slides'
  451. path: '{{slug}}/index'
  452. filter: {field: "cms_exclude"}
  453. create: true # Allow users to create new documents in this collection
  454. fields: # The fields each document in this collection have
  455. - {label: "Title", name: "title", widget: "string"}
  456. - {label: "Slides (separate with `---`)", name: "body", widget: "markdown"}
  457. - {label: "Publish on", name: "date", widget: "datetime"}
  458. - {label: "Summary", name: "summary", widget: "text", required: false}
  459. - label: "Draft"
  460. name: "draft"
  461. widget: "boolean"
  462. default: false
  463. required: false
  464. - label: "Tags"
  465. name: "tags"
  466. required: false
  467. widget: "list"
  468. - label: "Slide options"
  469. name: "slides"
  470. required: false
  471. widget: object
  472. fields:
  473. - { label: "Theme (see https://github.com/hakimel/reveal.js#theming)", name: theme, widget: string, required: false, default: black }
  474. - label: "Featured Image"
  475. name: "image"
  476. required: false
  477. widget: object
  478. fields:
  479. - label: "Upload an image named `featured.jpg/png`"
  480. name: "filename"
  481. widget: "image"
  482. default: "featured"
  483. required: false
  484. media_library:
  485. config:
  486. multiple: false
  487. - {label: Caption, name: caption, widget: string, required: false}
  488. - {label: Description for screen readers, name: alt_text, widget: string, required: false}
  489. - {label: "Where's the focal point in the image? Smart, Center, TopLeft, Top, TopRight, Left, Right, BottomLeft, Bottom, BottomRight.", name: focal_point, widget: string, required: false, default: "Smart"}
  490. - {label: 'Thumbnail Only?', name: preview_only, widget: boolean, default: false, required: false}
  491. - name: pages
  492. label: "Pages"
  493. files:
  494. - file: "content/privacy.md"
  495. label: "Privacy Policy"
  496. name: "privacy"
  497. fields:
  498. - {label: "Title", name: "title", widget: "string"}
  499. - {label: "Publish Date", name: "date", widget: "datetime"}
  500. - {label: "Subtitle", name: "subtitle", widget: "string", required: false}
  501. - {label: "Summary", name: "summary", widget: "markdown", required: false}
  502. - label: "Draft"
  503. name: "draft"
  504. required: false
  505. widget: "boolean"
  506. default: false
  507. - {label: "Body", name: "body", widget: "markdown"}
  508. - file: "content/terms.md"
  509. label: "Terms"
  510. name: "terms"
  511. fields:
  512. - {label: "Title", name: "title", widget: "string"}
  513. - {label: "Publish Date", name: "date", widget: "datetime"}
  514. - {label: "Subtitle", name: "subtitle", widget: "string", required: false}
  515. - {label: "Summary", name: "summary", widget: "markdown", required: false}
  516. - label: "Draft"
  517. name: "draft"
  518. required: false
  519. widget: "boolean"
  520. default: false
  521. - {label: "Body", name: "body", widget: "markdown"}