diff --git a/.github/dependabot.yml b/.github/dependabot.yml
deleted file mode 100644
index 6b381042..00000000
--- a/.github/dependabot.yml
+++ /dev/null
@@ -1,19 +0,0 @@
-version: 2
-updates:
- - package-ecosystem: npm
- directory: /
- schedule:
- interval: monthly
- allow:
- - dependency-type: direct
- ignore:
- - dependency-name: react
- versions: [">16"]
- - dependency-name: stylelint
- versions: [">14"]
- - dependency-name: stylelint-config-standard-scss
- versions: [">7"]
- - package-ecosystem: github-actions
- directory: /
- schedule:
- interval: monthly
diff --git a/.github/workflows/lint-build.yml b/.github/workflows/lint-build.yml
index 5a2615a5..06d11f64 100644
--- a/.github/workflows/lint-build.yml
+++ b/.github/workflows/lint-build.yml
@@ -9,21 +9,12 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- - name: Cache node modules
- uses: actions/cache@v4
+ - uses: actions/setup-node@v4
with:
- path: node_modules
- key: ${{ runner.OS }}-build-${{ hashFiles('**/package-lock.json') }}
+ cache: npm
- name: Install dependencies
run: npm install
- env:
- CI: true
- name: Lint files
run: npm run lint
- env:
- CI: true
- name: Build site
run: npm run build
- env:
- CI: true
-
diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml
index 85d10fdd..ae23ca16 100644
--- a/.github/workflows/release-please.yml
+++ b/.github/workflows/release-please.yml
@@ -8,7 +8,7 @@ jobs:
release-please:
runs-on: ubuntu-latest
steps:
- - uses: google-github-actions/release-please-action@v4
+ - uses: googleapis/release-please-action@v4
id: release
with:
token: ${{ secrets.GITHUB_TOKEN }}
diff --git a/.nvmrc b/.nvmrc
index 3c032078..2bd5a0a9 100644
--- a/.nvmrc
+++ b/.nvmrc
@@ -1 +1 @@
-18
+22
diff --git a/package-lock.json b/package-lock.json
index 90a1fd10..1fdf8026 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -9,41 +9,41 @@
"version": "1.7.1",
"license": "BSD-3-Clause",
"dependencies": {
- "@11ty/eleventy": "2.0.1",
- "@11ty/eleventy-img": "6.0.1",
- "@11ty/eleventy-navigation": "0.3.5",
- "@babel/standalone": "7.25.3",
+ "@11ty/eleventy": "^2.0.1",
+ "@11ty/eleventy-img": "^6.0.1",
+ "@11ty/eleventy-navigation": "^0.3.5",
+ "@babel/standalone": "^7.25.3",
"@zachleat/filter-container": "greatislander/filter-container#feat/paginated-results",
- "decap-cms": "3.6.2",
- "eleventy-plugin-fluid": "2.7.1",
- "infusion": "4.8.0",
- "modern-css-reset": "1.4.0",
- "prop-types": "15.8.1",
- "react": "16.14.0",
- "wicg-inert": "3.1.2"
+ "decap-cms": "^3.6.2",
+ "eleventy-plugin-fluid": "^2.7.1",
+ "infusion": "^4.8.0",
+ "modern-css-reset": "^1.4.0",
+ "prop-types": "^15.8.1",
+ "react": "^16.14.0",
+ "wicg-inert": "^3.1.2"
},
"devDependencies": {
- "@commitlint/cli": "19.3.0",
- "@commitlint/config-conventional": "19.7.1",
- "cross-env": "7.0.3",
- "decap-server": "3.0.4",
- "eslint": "8.57.0",
- "eslint-config-fluid": "2.1.1",
- "eslint-plugin-jsdoc": "48.10.2",
- "eslint-plugin-markdown": "4.0.1",
- "eslint-plugin-yml": "1.17.0",
- "husky": "9.0.11",
- "image-size": "1.1.1",
- "linkedom": "0.18.4",
- "lint-staged": "15.2.2",
- "markdownlint-cli2": "0.9.2",
- "markdownlint-config-fluid": "0.1.5",
- "npm-run-all": "4.1.5",
- "rimraf": "5.0.5",
- "stylelint": "14.16.1",
- "stylelint-config-fluid": "1.0.0",
- "stylelint-config-standard-scss": "6.1.0",
- "stylelint-use-logical-spec": "5.0.1"
+ "@commitlint/cli": "^19.3.0",
+ "@commitlint/config-conventional": "^19.7.1",
+ "cross-env": "^7.0.3",
+ "decap-server": "^3.0.4",
+ "eslint": "^8.57.0",
+ "eslint-config-fluid": "^2.1.1",
+ "eslint-plugin-jsdoc": "^48.10.2",
+ "eslint-plugin-markdown": "^4.0.1",
+ "eslint-plugin-yml": "^1.17.0",
+ "husky": "^9.0.11",
+ "image-size": "^1.1.1",
+ "linkedom": "^0.18.4",
+ "lint-staged": "^15.2.2",
+ "markdownlint-cli2": "^0.9.2",
+ "markdownlint-config-fluid": "^0.1.5",
+ "npm-run-all": "^4.1.5",
+ "rimraf": "^5.0.5",
+ "stylelint": "^14.16.1",
+ "stylelint-config-fluid": "^1.0.0",
+ "stylelint-config-standard-scss": "^6.1.0",
+ "stylelint-use-logical-spec": "^5.0.1"
}
},
"node_modules/@11ty/dependency-tree": {
@@ -20452,7 +20452,7 @@
"@zachleat/filter-container": {
"version": "git+ssh://git@github.com/greatislander/filter-container.git#4a2ebb93bf06f06af5425b74523f9bf96d5632bf",
"integrity": "sha512-ToDK0/AOmgGO+BCwIiQTr4dbw0SsuBjEofFyPh/+B9mwrQ0QkMP8BtvzaPZXmhDoTcNMtZCPXwvm4BGJTGz4iw==",
- "from": "@zachleat/filter-container@github:greatislander/filter-container#4a2ebb93bf06f06af5425b74523f9bf96d5632bf"
+ "from": "@zachleat/filter-container@greatislander/filter-container#feat/paginated-results"
},
"a-sync-waterfall": {
"version": "1.0.1",
diff --git a/package.json b/package.json
index 363560c9..03a93d22 100644
--- a/package.json
+++ b/package.json
@@ -30,41 +30,41 @@
},
"homepage": "https://github.com/codelearncreate/weavly.org#readme",
"dependencies": {
- "@11ty/eleventy": "2.0.1",
- "@11ty/eleventy-img": "6.0.1",
- "@11ty/eleventy-navigation": "0.3.5",
- "@babel/standalone": "7.25.3",
+ "@11ty/eleventy": "^2.0.1",
+ "@11ty/eleventy-img": "^6.0.1",
+ "@11ty/eleventy-navigation": "^0.3.5",
+ "@babel/standalone": "^7.25.3",
"@zachleat/filter-container": "greatislander/filter-container#feat/paginated-results",
- "decap-cms": "3.6.2",
- "eleventy-plugin-fluid": "2.7.1",
- "infusion": "4.8.0",
- "modern-css-reset": "1.4.0",
- "prop-types": "15.8.1",
- "react": "16.14.0",
- "wicg-inert": "3.1.2"
+ "decap-cms": "^3.6.2",
+ "eleventy-plugin-fluid": "^2.7.1",
+ "infusion": "^4.8.0",
+ "modern-css-reset": "^1.4.0",
+ "prop-types": "^15.8.1",
+ "react": "^16.14.0",
+ "wicg-inert": "^3.1.2"
},
"devDependencies": {
- "@commitlint/cli": "19.3.0",
- "@commitlint/config-conventional": "19.7.1",
- "cross-env": "7.0.3",
- "decap-server": "3.0.4",
- "eslint": "8.57.0",
- "eslint-config-fluid": "2.1.1",
- "eslint-plugin-jsdoc": "48.10.2",
- "eslint-plugin-markdown": "4.0.1",
- "eslint-plugin-yml": "1.17.0",
- "husky": "9.0.11",
- "image-size": "1.1.1",
- "linkedom": "0.18.4",
- "lint-staged": "15.2.2",
- "markdownlint-cli2": "0.9.2",
- "markdownlint-config-fluid": "0.1.5",
- "npm-run-all": "4.1.5",
- "rimraf": "5.0.5",
- "stylelint": "14.16.1",
- "stylelint-config-fluid": "1.0.0",
- "stylelint-config-standard-scss": "6.1.0",
- "stylelint-use-logical-spec": "5.0.1"
+ "@commitlint/cli": "^19.3.0",
+ "@commitlint/config-conventional": "^19.7.1",
+ "cross-env": "^7.0.3",
+ "decap-server": "^3.0.4",
+ "eslint": "^8.57.0",
+ "eslint-config-fluid": "^2.1.1",
+ "eslint-plugin-jsdoc": "^48.10.2",
+ "eslint-plugin-markdown": "^4.0.1",
+ "eslint-plugin-yml": "^1.17.0",
+ "husky": "^9.0.11",
+ "image-size": "^1.1.1",
+ "linkedom": "^0.18.4",
+ "lint-staged": "^15.2.2",
+ "markdownlint-cli2": "^0.9.2",
+ "markdownlint-config-fluid": "^0.1.5",
+ "npm-run-all": "^4.1.5",
+ "rimraf": "^5.0.5",
+ "stylelint": "^14.16.1",
+ "stylelint-config-fluid": "^1.0.0",
+ "stylelint-config-standard-scss": "^6.1.0",
+ "stylelint-use-logical-spec": "^5.0.1"
},
"lint-staged": {
"*.scss": "stylelint --fix",
diff --git a/renovate.json b/renovate.json
new file mode 100644
index 00000000..928f87a0
--- /dev/null
+++ b/renovate.json
@@ -0,0 +1,16 @@
+{
+ "$schema": "https://docs.renovatebot.com/renovate-schema.json",
+ "extends": ["config:recommended"],
+ "commitBody": "[skip netlify]",
+ "lockFileMaintenance": {
+ "enabled": true,
+ "automerge": true
+ },
+ "packageRules": [
+ {
+ "matchUpdateTypes": ["minor", "patch"],
+ "matchCurrentVersion": "!/^0/",
+ "automerge": true
+ }
+ ]
+}
diff --git a/src/_includes/layouts/about.njk b/src/_includes/layouts/about.njk
index 810bce76..9e81169f 100644
--- a/src/_includes/layouts/about.njk
+++ b/src/_includes/layouts/about.njk
@@ -41,19 +41,29 @@
-
+
+
{{ whoSection.partnersTitle }}
{% for partner in whoSection.partners %}
{% endfor %}
+
+
{{ whoSection.communityTitle }}
+ {% renderString whoSection.community, "md" %}
+
+
diff --git a/src/_includes/layouts/base.njk b/src/_includes/layouts/base.njk
index e6434a28..0a9279bb 100644
--- a/src/_includes/layouts/base.njk
+++ b/src/_includes/layouts/base.njk
@@ -26,7 +26,7 @@
{% block pageHeader %}
{{ title }}
{% if subtitle %}
-
{{ subtitle | safe }}
+
{% renderString subtitle, "md" %}
{% endif %}
{% if page.url === "/" %}
Create
diff --git a/src/about.md b/src/about.md
index 135d9ac9..3b3b75ef 100644
--- a/src/about.md
+++ b/src/about.md
@@ -10,7 +10,11 @@ whatWeDoSection:
link: /learn/#activities
whoSection:
title: Who We Are
- intro: "**Weavly** is a collaborative effort between the Inclusive Design Research Centre, IRIS Institute, and the Bridges Canada. This project is funded by the Innovation, Science and Economic Development Canada’s Accessible Technology Program."
+ intro: "**Weavly** is a collaborative effort between the Inclusive Design
+ Research Centre, IRIS Institute, and the Bridges Canada. This project is
+ funded by the Innovation, Science and Economic Development Canada’s
+ Accessible Technology Program."
+ partnersTitle: Partners
partners:
- name: Inclusive Design Research Centre
acronym: IDRC
@@ -31,6 +35,54 @@ whoSection:
image: /assets/media/20122485921_8dfcf134e3_o.jpg
imageAlt: "Image of several kids talking. One of the kids is seated on a powered
wheelchair and using a single switch. "
+ communityTitle: Community
+ community: >-
+ Weavly is built upon the efforts and contributions of many young and adult
+ co-designers, family members, educators, and caregivers over the years.
+ Without their insights and dedication, this project would not have been
+ possible. Due to privacy reasons, we are unable to list their names here,
+ but we are always deeply grateful for their invaluable contributions.
+
+
+ We would like to acknowledge the individuals and community-based groups who facilitated connections with our co-designers and significantly contributed to the progress of this project.
+
+
+ If you have contributed to Weavly in any capacity and would like your name to be included, please contact our team at weavly@idrc.ocadu.ca.
+ communityMembers:
+ - name: Alberta Health Services
+ link: https://www.albertahealthservices.ca/
+ - name: Beverely School - Toronto District School Board
+ link: https://schoolweb.tdsb.on.ca/beverleyschool
+ - name: Alan Bridgeman
+ link: https://www.linkedin.com/in/alan-bridgeman-234490113/
+ - name: Burnaby Schools
+ link: https://burnabyschools.ca/
+ - name: Camp Karma
+ link: https://www.veryspecialcamps.com/summer-camps/Karma-Country-Camp-for-Teenagers-and-Young-Adults-with-ASD-and-Special-Needs-2675.html
+ - name: Grandpals
+ link: https://grandpals.ca/
+ - name: Holland Bloorview
+ link: https://hollandbloorview.ca/
+ - name: Hour of Code
+ link: https://hourofcode.com/ca
+ - name: Kayla Children’s Centre
+ link: https://kaylaschildrencentre.org/
+ - name: Kensington Community School - Toronto District School Board
+ link: https://www.tdsb.on.ca/Find-your/Schools/schno/5347
+ - name: Melanie Mulcaster - Peel School Board
+ link: https://www.linkedin.com/in/mel-mulcaster-9541a549/
+ - name: PhET Interactive Simulations - University of Colorado at Boulder
+ link: https://phet.colorado.edu/
+ - name: Playful Strides
+ link: https://playfulstrides.com/
+ - name: SD48
+ link: https://www.sd48seatosky.org/
+ - name: Taking It Global
+ link: https://welcome.tigweb.org/en
+ - name: Tetra TMU - Toronto Metropolitan University
+ link: https://www.instagram.com/tetratmu/
+ - name: Adam Wilton
+ link: https://www.brailleliteracycanada.ca/en/about/board/adam-wilton
layout: layouts/about
permalink: /about/
goalSection:
@@ -46,13 +98,20 @@ goalSection:
callToActionLink: https://www.codelearncreate.org/blog/
headerBg: teal-75
title: About
-subtitle: We’re designing educational coding tools for kids who have been left
- out of learning—especially those with complex needs.
+subtitle: >-
+ We’re designing educational coding tools for kids who have been left out of
+ learning—especially those with complex needs.
+
+
+ For notes on co-design sessions and other project updates, please visit the [Code to Learn and Create
+
+ site](https://codelearncreate.org/).
eleventyNavigation:
key: About
order: 6
connectSection:
title: Connect
titleLink: mailto:idrc@ocadu.ca
- content: Please email the project leads at the Inclusive Design Research Centre and the IRIS institute if you’d like to be part of this conversation.
+ content: Please email the project leads at the Inclusive Design Research Centre
+ and the IRIS institute if you’d like to be part of this conversation.
---
diff --git a/src/admin/config.yml b/src/admin/config.yml
index 10a05ac9..de52037a 100644
--- a/src/admin/config.yml
+++ b/src/admin/config.yml
@@ -1,4 +1,3 @@
-
backend:
name: git-gateway
branch: main
@@ -26,8 +25,14 @@ collections:
fields:
- {label: Title, name: title, widget: string}
- {label: Subtitle, name: subtitle, widget: text}
- - {label: Header Call to Action Text, name: headerCallToActionText, widget: string}
- - {label: Header Call to Action Link, name: headerCallToActionLink, widget: string}
+ - label: Header Call to Action Text
+ name: headerCallToActionText
+ widget: string
+
+ - label: Header Call to Action Link
+ name: headerCallToActionLink
+ widget: string
+
- label: Create Section
name: createSection
widget: object
@@ -48,8 +53,14 @@ collections:
- {label: Content, name: content, widget: text}
- {label: Image, name: image, widget: image}
- {label: Image Alt Text, name: imageAlt, widget: string}
- - {label: Call to Action Text, name: callToActionText, widget: string}
- - {label: Call to Action Link, name: callToActionLink, widget: string}
+ - label: Call to Action Text
+ name: callToActionText
+ widget: string
+
+ - label: Call to Action Link
+ name: callToActionLink
+ widget: string
+
- label: About Section
name: aboutSection
widget: object
@@ -58,8 +69,14 @@ collections:
- {label: Content, name: content, widget: text}
- {label: Image, name: image, widget: image}
- {label: Image Alt Text, name: imageAlt, widget: string}
- - {label: Call to Action Text, name: callToActionText, widget: string}
- - {label: Call to Action Link, name: callToActionLink, widget: string}
+ - label: Call to Action Text
+ name: callToActionText
+ widget: string
+
+ - label: Call to Action Link
+ name: callToActionLink
+ widget: string
+
- label: Try Section
name: trySection
widget: object
@@ -83,8 +100,14 @@ collections:
- {label: Content, name: content, widget: text}
- {label: Image, name: image, widget: image}
- {label: Image Alt Text, name: imageAlt, widget: string}
- - {label: Call to Action Text, name: callToActionText, widget: string}
- - {label: Call to Action Link, name: callToActionLink, widget: string}
+ - label: Call to Action Text
+ name: callToActionText
+ widget: string
+
+ - label: Call to Action Link
+ name: callToActionLink
+ widget: string
+
- label: Activities Section
name: activitiesSection
widget: object
@@ -106,8 +129,14 @@ collections:
- {label: Content, name: content, widget: text}
- {label: Image, name: image, widget: image}
- {label: Image Alt Text, name: imageAlt, widget: string}
- - {label: Call to Action Text, name: callToActionText, widget: string}
- - {label: Call to Action Link, name: callToActionLink, widget: string}
+ - label: Call to Action Text
+ name: callToActionText
+ widget: string
+
+ - label: Call to Action Link
+ name: callToActionLink
+ widget: string
+
- label: Trainings & Workshops Section
name: trainingsSection
widget: object
@@ -116,8 +145,14 @@ collections:
- {label: Content, name: content, widget: text}
- {label: Image, name: image, widget: image}
- {label: Image Alt Text, name: imageAlt, widget: string}
- - {label: Call to Action Text, name: callToActionText, widget: string}
- - {label: Call to Action Link, name: callToActionLink, widget: string}
+ - label: Call to Action Text
+ name: callToActionText
+ widget: string
+
+ - label: Call to Action Link
+ name: callToActionLink
+ widget: string
+
- label: Share Section
name: shareSection
widget: object
@@ -171,7 +206,7 @@ collections:
preview: false
fields:
- {label: Title, name: title, widget: string}
- - {label: Subtitle, name: subtitle, widget: text}
+ - {label: Subtitle, name: subtitle, widget: markdown}
- label: Goal Section
name: goalSection
widget: object
@@ -180,8 +215,14 @@ collections:
- {label: Content, name: content, widget: text}
- {label: Image, name: image, widget: image}
- {label: Image Alt Text, name: imageAlt, widget: string}
- - {label: Call to Action Text, name: callToActionText, widget: string}
- - {label: Call to Action Link, name: callToActionLink, widget: string}
+ - label: Call to Action Text
+ name: callToActionText
+ widget: string
+
+ - label: Call to Action Link
+ name: callToActionLink
+ widget: string
+
- label: What We Do Section
name: whatWeDoSection
widget: object
@@ -199,16 +240,29 @@ collections:
fields:
- {label: Title, name: title, widget: string}
- {label: Intro, name: intro, widget: markdown}
+ - {label: Partners Title, name: partnersTitle, widget: string}
- label: Partners
name: partners
widget: list
fields:
- {label: Name, name: name, widget: string}
- - {label: Acronym, name: acronym, widget: string, required: false}
+ - label: Acronym
+ name: acronym
+ widget: string
+ required: false
+
- {label: Content, name: content, widget: text}
- {label: Link, name: link, widget: string}
- {label: Image, name: image, widget: image}
- {label: Image Alt Text, name: imageAlt, widget: string}
+ - {label: Community Title, name: communityTitle, widget: string}
+ - {label: Community Content, name: community, widget: markdown}
+ - label: Community Members
+ name: communityMembers
+ widget: list
+ fields:
+ - {label: Name, name: name, widget: string}
+ - {label: Link, name: link, widget: string}
- label: Connect Section
name: connectSection
widget: object
@@ -232,8 +286,14 @@ collections:
- {label: Content, name: content, widget: text}
- {label: Image, name: image, widget: image}
- {label: Image Alt Text, name: imageAlt, widget: string}
- - {label: Call to Action Text, name: callToActionText, widget: string}
- - {label: Call to Action Link, name: callToActionLink, widget: string}
+ - label: Call to Action Text
+ name: callToActionText
+ widget: string
+
+ - label: Call to Action Link
+ name: callToActionLink
+ widget: string
+
- label: Outcomes Section
name: outcomesSection
widget: object
@@ -246,7 +306,11 @@ collections:
fields:
- {label: Title, name: title, widget: string}
- {label: Link, name: link, widget: string}
- - {label: Download, name: download, widget: boolean, default: false}
+ - label: Download
+ name: download
+ widget: boolean
+ default: false
+
- {label: Content, name: content, widget: markdown}
- label: Next Steps Section
name: nextStepsSection
@@ -266,7 +330,11 @@ collections:
widget: list
fields:
- {label: Name, name: name, widget: string}
- - {label: Acronym, name: acronym, widget: string, required: false}
+ - label: Acronym
+ name: acronym
+ widget: string
+ required: false
+
- {label: Content, name: content, widget: text}
- {label: Link, name: link, widget: string}
- {label: Image, name: image, widget: image}
@@ -300,10 +368,26 @@ collections:
- {label: Title, name: title, widget: string}
- {label: Date, name: date, widget: datetime, timeFormat: false}
- {label: Author, name: author, widget: string, required: false}
- - {label: Resource Type, name: type, widget: relation, collection: siteData, file: resourceTags, value_field: types.*, display_fields: [types.*], search_fields: [types.*]}
+ - label: Resource Type
+ name: type
+ widget: relation
+ collection: siteData
+ file: resourceTags
+ value_field: types.*
+ display_fields: [types.*]
+ search_fields: [types.*]
+
- {label: Description, name: description, widget: text, required: false}
- - {label: Preview Image, name: metaImage, widget: image, required: false}
- - {label: Preview Image Alt Text, name: metaImageAlt, widget: string, required: false}
+ - label: Preview Image
+ name: metaImage
+ widget: image
+ required: false
+
+ - label: Preview Image Alt Text
+ name: metaImageAlt
+ widget: string
+ required: false
+
- {label: Body, name: body, widget: markdown}
- label: Supportive Material
name: supportiveMaterial
@@ -324,13 +408,54 @@ collections:
create: true
fields:
- {label: Title, name: title, widget: string}
- - {label: Type, name: type, widget: relation, collection: siteData, file: activityTags, value_field: types.*, display_fields: [types.*], search_fields: [types.*]}
- - {label: Coding Experience Level, name: experience, widget: relation, collection: siteData, file: activityTags, value_field: experience.*, display_fields: [experience.*], search_fields: [experience.*]}
- - {label: Subject, name: subject, widget: relation, collection: siteData, file: activityTags, value_field: subjects.*, display_fields: [subjects.*], search_fields: [subjects.*]}
- - {label: Related Activities, name: relatedActivities, widget: relation, collection: activities, search_fields: [title], value_field: title, display_fields: [title], multiple: true, required: false}
+ - label: Type
+ name: type
+ widget: relation
+ collection: siteData
+ file: activityTags
+ value_field: types.*
+ display_fields: [types.*]
+ search_fields: [types.*]
+
+ - label: Coding Experience Level
+ name: experience
+ widget: relation
+ collection: siteData
+ file: activityTags
+ value_field: experience.*
+ display_fields: [experience.*]
+ search_fields: [experience.*]
+
+ - label: Subject
+ name: subject
+ widget: relation
+ collection: siteData
+ file: activityTags
+ value_field: subjects.*
+ display_fields: [subjects.*]
+ search_fields: [subjects.*]
+
+ - label: Related Activities
+ name: relatedActivities
+ widget: relation
+ collection: activities
+ search_fields: [title]
+ value_field: title
+ display_fields: [title]
+ multiple: true
+ required: false
+
- {label: Description, name: description, widget: text, required: false}
- - {label: Preview Image, name: metaImage, widget: image, required: false}
- - {label: Preview Image Alt Text, name: metaImageAlt, widget: string, required: false}
+ - label: Preview Image
+ name: metaImage
+ widget: image
+ required: false
+
+ - label: Preview Image Alt Text
+ name: metaImageAlt
+ widget: string
+ required: false
+
- label: What You Need
name: whatYouNeed
widget: markdown
@@ -360,13 +485,55 @@ collections:
create: true
fields:
- {label: Title, name: title, widget: string}
- - {label: Robot, name: tags, widget: relation, multiple: true, max: 1, collection: guides, value_field: title, display_fields: [title], search_fields: [title]}
- - {label: Coding Experience Level, name: experience, widget: relation, collection: siteData, file: robotActivityTags, value_field: experience.*, display_fields: [experience.*], search_fields: [experience.*]}
- - {label: Topic, name: topic, widget: relation, collection: siteData, file: robotActivityTags, value_field: topics.*, display_fields: [topics.*], search_fields: [topics.*]}
- - {label: Related Activities with Robots, name: relatedRobotActivities, widget: relation, collection: robotActivities, search_fields: [title], value_field: title, display_fields: [title], multiple: true, required: false}
+ - label: Robot
+ name: tags
+ widget: relation
+ multiple: true
+ max: 1
+ collection: guides
+ value_field: title
+ display_fields: [title]
+ search_fields: [title]
+
+ - label: Coding Experience Level
+ name: experience
+ widget: relation
+ collection: siteData
+ file: robotActivityTags
+ value_field: experience.*
+ display_fields: [experience.*]
+ search_fields: [experience.*]
+
+ - label: Topic
+ name: topic
+ widget: relation
+ collection: siteData
+ file: robotActivityTags
+ value_field: topics.*
+ display_fields: [topics.*]
+ search_fields: [topics.*]
+
+ - label: Related Activities with Robots
+ name: relatedRobotActivities
+ widget: relation
+ collection: robotActivities
+ search_fields: [title]
+ value_field: title
+ display_fields: [title]
+ multiple: true
+ required: false
+
- {label: Description, name: description, widget: text, required: false}
- - {label: Preview Image, name: metaImage, widget: image, required: false}
- - {label: Preview Image Alt Text, name: metaImageAlt, widget: string, required: false}
+ - label: Preview Image
+ name: metaImage
+ widget: image
+ required: false
+
+ - label: Preview Image Alt Text
+ name: metaImageAlt
+ widget: string
+ required: false
+
- label: What You Need
name: whatYouNeed
widget: markdown
@@ -403,12 +570,37 @@ collections:
create: true
fields:
- {label: Title, name: title, widget: string}
- - {label: Type, name: type, widget: relation, collection: siteData, file: projectTags, value_field: types.*, display_fields: [types.*], search_fields: [types.*], required: false}
- - {label: Category, name: category, widget: relation, collection: siteData, file: projectTags, value_field: categories.*, display_fields: [categories.*], search_fields: [categories.*]}
+ - label: Type
+ name: type
+ widget: relation
+ collection: siteData
+ file: projectTags
+ value_field: types.*
+ display_fields: [types.*]
+ search_fields: [types.*]
+ required: false
+
+ - label: Category
+ name: category
+ widget: relation
+ collection: siteData
+ file: projectTags
+ value_field: categories.*
+ display_fields: [categories.*]
+ search_fields: [categories.*]
+
- {label: Link, name: link, widget: string}
- {label: Description, name: description, widget: text, required: false}
- - {label: Preview Image, name: metaImage, widget: image, required: false}
- - {label: Preview Image Alt Text, name: metaImageAlt, widget: string, required: false}
+ - label: Preview Image
+ name: metaImage
+ widget: image
+ required: false
+
+ - label: Preview Image Alt Text
+ name: metaImageAlt
+ widget: string
+ required: false
+
- name: guides
label: Manufacturer’s Guides
label_singular: Manufacturer’s Guide
@@ -421,8 +613,16 @@ collections:
- {label: Title, name: title, widget: string}
- {label: Manufacturer, name: manufacturer, widget: string}
- {label: Manufacturer Link, name: manufacturerLink, widget: string}
- - {label: Preview Image, name: metaImage, widget: image, required: false}
- - {label: Preview Image Alt Text, name: metaImageAlt, widget: string, required: false}
+ - label: Preview Image
+ name: metaImage
+ widget: image
+ required: false
+
+ - label: Preview Image Alt Text
+ name: metaImageAlt
+ widget: string
+ required: false
+
- label: Learning Resources
name: resources
widget: list
diff --git a/src/assets/styles/app.scss b/src/assets/styles/app.scss
index 51554a49..d505d34e 100644
--- a/src/assets/styles/app.scss
+++ b/src/assets/styles/app.scss
@@ -33,6 +33,7 @@
"components/call-to-action",
"components/callout",
"components/card",
+ "components/community",
"components/filters",
"components/grid-image",
"components/grid-video",
diff --git a/src/assets/styles/components/_community.scss b/src/assets/styles/components/_community.scss
new file mode 100644
index 00000000..082cc42c
--- /dev/null
+++ b/src/assets/styles/components/_community.scss
@@ -0,0 +1,13 @@
+.community-members .community-member {
+ display: flex;
+ flex-direction: column;
+ justify-content: flex-start;
+ margin-block-end: var(--space-md);
+ text-align: start;
+}
+
+@media (width >= 960px) {
+ .community-members {
+ columns: 2;
+ }
+}