diff --git a/.gitignore b/.gitignore index 3d1aa7002..be13cd0a7 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,6 @@ _site/ .jekyll-cache/ .DS_Store node_modules + +# Local Netlify folder +.netlify/state.json diff --git a/.netlify/edge-functions-import-map.json b/.netlify/edge-functions-import-map.json new file mode 100644 index 000000000..ef311bf52 --- /dev/null +++ b/.netlify/edge-functions-import-map.json @@ -0,0 +1 @@ +{"imports":{"netlify:edge":"https://edge.netlify.com/v1/index.ts"},"scopes":{}} \ No newline at end of file diff --git a/.netlify/functions/README.md b/.netlify/functions/README.md new file mode 100644 index 000000000..a406bc46a --- /dev/null +++ b/.netlify/functions/README.md @@ -0,0 +1,30 @@ +# Netlify Edge Functions +Below is a list of the edge functions we currently have. + +## OG Image Generator + +Path: `/og-image` + +Accepted parameters: + - `?id=gym-100` + - `?path=courses/take5` + +The parameters are used in turn to look up entries in the `/feeds/data.json` file, which provides everything we need to render content specific to each course. + +### Layouts +Most layouts are automatically determined by the id or path passed in. + +#### Logo only +Visiting `/og-image` without any parameters will display the single column logo only layout. + +#### Two-Column Layouts +All courses use a two-column layout. + +##### Full & Short Course Layouts +Standard course layouts use a course icon/badge and a hex color value to color the background area behind the icon. + +##### Take 5 Tutorial Layouts +Take 5 tutorials are visually different from course layouts, utilizing a custom image and an image offset. + +### Additional Documentation +- [Satori](https://github.com/vercel/satori) - documentation on the Satori library, by Vercel. Of particular interest should be the section on permissible CSS. diff --git a/.netlify/functions/og.tsx b/.netlify/functions/og.tsx new file mode 100644 index 000000000..9df6eeaf0 --- /dev/null +++ b/.netlify/functions/og.tsx @@ -0,0 +1,421 @@ +import React from 'https://esm.sh/react@18.2.0'; +import { ImageResponse } from 'https://deno.land/x/og_edge/mod.ts'; + +// Parse Data File +async function getData(domain: string, id:any, path:any) { + try { + const JSON = await fetch(`${domain}/feeds/data.json`); + const data = await JSON.json(); + id = id ? id.toLowerCase(): null; + path = path ? `/${path.toLowerCase()}/meta/`: null; + let itemData: any; + let type: any; + + if (id) { + if (id.startsWith('web')) { + type = 'webinars'; + } else if (id.startsWith('gym-')) { + type = 'courses'; + } + + Object.entries(data[type]).map(obj => { + const item:any = obj[1]; + + if (id === item['id'].toLowerCase()) { + itemData = item; + } + }); + + } else if (path) { + type = 'static'; + + Object.entries(data[type]).map(obj => { + const item:any = obj[1]; + + if (path === item['path'].toLowerCase()) { + itemData = item; + } + }); + } + + return itemData; + } catch(e:any) { + console.warn(`${e.message}`); + return new Response(`Couldn't find matching id!`, { + status: 500, + }); + } +} + +// Calculate aspect ratio of a resized image, assuming one knows the initial dimensions +async function aspectRatio(width:number, height:number, dimension:{type: string,value: number}) { + let ratio: any; + + try { + if (dimension.type === 'width') { + // return a width + ratio = width/height; + } else if (dimension.type === 'height') { + // return a height + ratio = height/width; + } else { + throw new Error('dimension.type must be `width` or `height`!'); + } + } catch(e:any) { + console.warn(`${e.message}`); + return new Response(`Failed to calculate aspect ratio.`, { + status: 500, + }); + } + return dimension.value * ratio; +} + +export default async function handler(req: Request) { + const url = new URL(req.url); + const domain = url.origin; + + // load webfont + const fontData = await fetch(`${domain}/fonts/brandon_bld-webfont.woff`).then( + (res) => res.arrayBuffer(), + ); + + // Get the query parameters from the request + const params:any = new URLSearchParams(url.search); + const id = params.get('id') ?? null; + const path = params.get('path') ?? null; + let bgColor = params.get('bg') ?? '222'; + let imgBgColor = params.get('imgbg') ?? '222'; + let imgOffset:any = Math.abs(params.get('offset')) ?? 0; + let titleFontSize = 50; + let footerText = params.get('footer') ?? 'thegymnasium.com'; + // const pubDate = params.get('pubDate') ?? new Date().toISOString(); + let imgPath: any; + let title: any; + let topic: any; + let type: any; + let metaData: any; + let hideFooter: boolean = false; + let layoutType = 'default'; + let debug: boolean = false; + + if (params.has('debug')) { + debug = true; + params.delete('debug'); + } + + // Are there any URL parameters (other than debug [see above]) attached? If not, hide the footer too. This is to display only the Gymnasium logo when visiting /og-image + if (params && params.toString().length === 0) { + hideFooter = true; + layoutType = 'logo'; + } + + // have id? + if (id) { + try { + metaData = await getData(domain, id, null); + } catch(e: any) { + console.warn(`${e.message}`); + return new Response(`Invalid id (data file not found)`, { + status: 500, + }); + } + } + + // have path? + if (path) { + try { + metaData = await getData(domain, null, path); + } catch(e: any) { + console.warn(`${e.message}`); + return new Response(`Invalid path (data not found)`, { + status: 500, + }); + } + } + + if (metaData) { + if (metaData.img) { + imgPath = metaData.img; + } + if (metaData.img_bg_color) { + imgBgColor = metaData.img_bg_color; + + if (!imgBgColor.includes('#')) { + imgBgColor = `#${imgBgColor}`; + } + } + if (metaData.img_offset) { + imgOffset = metaData.img_offset; + } + if (metaData.bg_color) { + bgColor = metaData.bg_color; + + if (!bgColor.includes('#')) { + bgColor = `#${bgColor}`; + } + } + if (metaData.type) { + type = metaData.type; + } + if (metaData.title) { + title = metaData.title; + } + if (metaData.topic) { + topic = metaData.topic; + } + } + + // defaults + const wrapperWidth = 1200; + const wrapperHeight = 628; + let imgDisplay = 'none'; + let imgWidth = 0; + let bgImg = 'none'; + let bgSize = 'contain'; + let bgPos = '0 0'; + let contentBorderLeft = 'none'; + let contentAlign = 'center'; + let contentJustify = 'center'; + let footerCase = 'initial'; + let footerColor = 'ff5f14'; + let footerDisplay = 'flex'; + let logoDisplay = 'flex'; + let logoWidth = 834; + let headerDisplay = 'none'; + let headerText = ''; + let wrapperAlign = 'center'; + let wrapperJustify = 'center'; + + // Permit hiding the footer (?footer=false) + if (hideFooter === true) { + footerDisplay = 'none'; + } + + let imgUrl:any; + + if (imgPath) { + imgUrl = `${domain}${imgPath}`; + } + + if (params.get('title')) { + title = params.get('title') + } + + // TODO: something to calculate number of words to apply font size adjustments? + let numWords:number; + + if (title) { + numWords = title.split(' ').length; + } + + if (path) { + contentAlign = 'flex-start'; + contentJustify = 'space-between'; + wrapperJustify = 'space-between'; + logoWidth = 400; + } + + if (imgUrl) { + // General defaults + some take 5 settings + bgImg = `url('${imgUrl}')`; + bgSize = 'contain'; + wrapperJustify = 'flex-start'; + wrapperAlign = 'flex-start'; + imgDisplay = 'flex'; + contentAlign = 'flex-start'; + logoWidth = 300; + + if (type === 'take5') { + // let iconWidth = await newImgWidth(1920,1080,wrapperHeight); + let iconWidth = await aspectRatio(1920,1080,{type:'width',value:wrapperHeight}); + + bgSize = `${iconWidth}px ${wrapperHeight}px`; + titleFontSize = 80; + contentBorderLeft = '2px solid #ccc'; + imgWidth = 320; + footerColor = 'ccc'; + contentAlign = 'flex-start'; + contentJustify = 'space-between'; + bgPos = imgOffset ? `-${imgOffset}px 0px` : '0 0'; + footerCase = 'uppercase'; + logoDisplay = 'none'; + headerDisplay = 'flex'; + headerText = 'Take 5'; + if (topic) { + footerText = topic; + } + + // TODO: improve logic for font size, based on sentence length + if (title.length >= 50) { + titleFontSize = titleFontSize * 0.75; + } else if (title.length >= 45) { + titleFontSize = titleFontSize * 0.80; + } else if (title.length >= 40) { + titleFontSize = titleFontSize * 0.85; + } else if (title.length >= 35) { + titleFontSize = titleFontSize * 0.90; + } else { + titleFontSize = titleFontSize; + } + + console.log(title.length, titleFontSize); + + } else { + // calculate aspect ratio for proportional resizing + const iconWidth = 516; + let iconHeight:any = await aspectRatio(574,488,{type:'height',value:iconWidth}); + const iconVOffset = (wrapperHeight - iconHeight)/2; + + bgSize = `${iconWidth}px ${iconHeight}px`; + imgWidth = iconWidth; + bgPos = `0px ${iconVOffset}px`; + titleFontSize = 70; + contentJustify = 'center'; + } + } + + let contentWidth = wrapperWidth - imgWidth; + + let CONFIG_WRAPPER = { + height: '100%', + width: '100%', + display: 'flex', + flexWrap: 'nowrap', + flexDirection: 'row', + justifyContent: `${wrapperJustify}`, + // alignContent: 'stretch', + alignItems: `${wrapperAlign}`, + backgroundColor: '#222', + color: '#fff', + fontSize: '50px', + fontWeight: 'bold', + fontFamily: 'brandon-grotesque', + position: 'relative', + zIndex: 1, + lineHeight: 1, + } + + let CONFIG_IMG = { + display: `${imgDisplay}`, + order: 1, + flexGrow: 0, + flexShrink: 0, + alignSelf: 'center', + justifyContent: 'center', + height: '100%', + width: '100%', + backgroundImage: `${bgImg}`, + backgroundColor: `${imgBgColor}`, + backgroundOrigin: 'border-box', + backgroundRepeat: 'no-repeat', + backgroundPosition: `${bgPos}`, + backgroundSize: `${bgSize}`, + position: 'absolute', + top: 0, + left: 0, + zIndex: 2, + } + + let CONFIG_CONTENT = { + borderLeft: `${contentBorderLeft}`, + display: 'flex', + flexDirection: 'column', + justifyContent: `${contentJustify}`, + alignItems: `${contentAlign}`, + padding: '60px', + marginLeft: `${imgWidth}px`, + backgroundColor: `${bgColor}`, + width: `${contentWidth}px`, + height: '100%', + lineHeight: 1, + } + + let CONFIG_TITLE = { + color: '#fff', + textTransform: 'uppercase', + fontSize: titleFontSize, + lineHeight: 1, + } + + let CONFIG_HEADER = { + color: '#000', + display: `${headerDisplay}`, + lineHeight: 1, + } + + let CONFIG_LOGO = { + display: `${logoDisplay}`, + width: `${logoWidth}`, + } + + let CONFIG_FOOTER = { + color: `#${footerColor}`, + textTransform: `${footerCase}`, + display: `${footerDisplay}`, + lineHeight: 1, + } + + if (debug) { + console.log( + 'URL parameters: ', + params.toString(), '\n', + 'CONFIG_WRAPPER =', + CONFIG_WRAPPER, '\n', + 'CONFIG_IMG =', + CONFIG_IMG, '\n', + 'CONFIG_CONTENT =', + CONFIG_CONTENT, '\n', + 'CONFIG_HEADER =', + CONFIG_HEADER, '\n', + 'CONFIG_LOGO =', + CONFIG_LOGO, '\n', + 'CONFIG_TITLE =', + CONFIG_TITLE, '\n', + 'CONFIG_FOOTER =', + CONFIG_FOOTER, '\n', + ); + } + + const layoutDefault = ( +
+
+
+
{headerText}
+ +

{title}

+
{footerText}
+
+
+ ); + + const layoutLogo = ( +
+
+ +
+
+ ); + + let layout = layoutDefault; + + // TODO: refactor to improve logic + if (layoutType === 'logo') { + layout = layoutLogo; + } + + // Generate the open graph image + return new ImageResponse(layout, + { + width: 1200, + height: 628, + debug: debug, + fonts: [ + { + name: 'brandon-grotesque', + data: fontData, + style: 'normal', + } + ], + } + ); +} diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 000000000..3c032078a --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +18 diff --git a/Gemfile.lock b/Gemfile.lock index 021ef3977..8fafd48e5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,21 +1,21 @@ GEM remote: https://rubygems.org/ specs: - addressable (2.8.0) - public_suffix (>= 2.0.2, < 5.0) + addressable (2.8.1) + public_suffix (>= 2.0.2, < 6.0) colorator (1.1.0) - concurrent-ruby (1.1.6) - deep_merge (1.2.1) - em-websocket (0.5.1) + concurrent-ruby (1.1.10) + deep_merge (1.2.2) + em-websocket (0.5.3) eventmachine (>= 0.12.9) - http_parser.rb (~> 0.6.0) + http_parser.rb (~> 0) eventmachine (1.2.7) - ffi (1.13.1) + ffi (1.15.5) forwardable-extended (2.6.0) - http_parser.rb (0.6.0) - i18n (1.8.3) + http_parser.rb (0.8.0) + i18n (1.12.0) concurrent-ruby (~> 1.0) - jekyll (4.1.0) + jekyll (4.1.1) addressable (~> 2.4) colorator (~> 1.0) em-websocket (~> 0.5) @@ -33,39 +33,40 @@ GEM jekyll-get-json (1.0.0) deep_merge (~> 1.2) jekyll (>= 3.0) - jekyll-sass-converter (2.1.0) + jekyll-sass-converter (2.2.0) sassc (> 2.0.1, < 3.0) jekyll-watch (2.2.1) listen (~> 3.0) - kramdown (2.3.1) + kramdown (2.4.0) rexml kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) liquid (4.0.3) - listen (3.3.0) + listen (3.7.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) mercenary (0.4.0) pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (4.0.6) - rb-fsevent (0.10.4) + public_suffix (5.0.0) + rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) rexml (3.2.5) - rouge (3.20.0) + rouge (3.30.0) safe_yaml (1.0.5) sassc (2.4.0) ffi (~> 1.9) terminal-table (1.8.0) unicode-display_width (~> 1.1, >= 1.1.1) - unicode-display_width (1.7.0) + unicode-display_width (1.8.0) webrick (1.7.0) PLATFORMS arm64-darwin-21 ruby universal-darwin-19 + x86_64-darwin-21 x86_64-linux x86_64-linux-musl @@ -75,4 +76,4 @@ DEPENDENCIES webrick (~> 1.7) BUNDLED WITH - 2.2.2 + 2.3.26 diff --git a/_config.yml b/_config.yml index 8f503aa73..50ef6367f 100644 --- a/_config.yml +++ b/_config.yml @@ -16,6 +16,7 @@ exclude: - 'netlify.toml' - '.jekyll-cache' - 'local' + - '.netlify/functions/README.md' include: - '_redirects' @@ -52,14 +53,14 @@ jekyll_get_json: json: 'https://stag-assets.aquent.com/apps/gym/jobs.json?limit=1500' - data: markets json: 'https://stag-assets.aquent.com/apps/gym/markets.json' - - data: privacy-index - json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-index*%20+languageId:1%20+deleted:false%20+working:true/' - - data: privacy-shield-notice - json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-privacy-shield-notice*%20+languageId:1%20+deleted:false%20+working:true/' - - data: privacy-ccpa - json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-ccpa-policy*%20+languageId:1%20+deleted:false%20+working:true/' - - data: privacy-data-category - json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-data-category*%20+languageId:1%20+deleted:false%20+working:true/' - - data: privacy-eu-rights - json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-european-rights*%20+languageId:1%20+deleted:false%20+working:true/' + # - data: privacy-index + # json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-index*%20+languageId:1%20+deleted:false%20+working:true/' + # - data: privacy-shield-notice + # json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-privacy-shield-notice*%20+languageId:1%20+deleted:false%20+working:true/' + # - data: privacy-ccpa + # json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-ccpa-policy*%20+languageId:1%20+deleted:false%20+working:true/' + # - data: privacy-data-category + # json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-data-category*%20+languageId:1%20+deleted:false%20+working:true/' + # - data: privacy-eu-rights + # json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-european-rights*%20+languageId:1%20+deleted:false%20+working:true/' diff --git a/_data/courses/GYM-001.yml b/_data/courses/GYM-001.yml index b79287551..c9b0e9ca7 100644 --- a/_data/courses/GYM-001.yml +++ b/_data/courses/GYM-001.yml @@ -5,6 +5,8 @@ date: 2019-10-28T00:00:00-04:00 course_type: short url: /courses/GYM/001/0/about poster_art: /img/course-artwork/png/gym-001.png +og_gen_data: + img_bg_color: 2c9959 live: true topic: "Career Skills" short_description: "Learn how to estimate, plan, track, and manage your time in order to complete projects. Being busy isn’t a bad thing, but not being in control of your own time is." diff --git a/_data/courses/GYM-002.yml b/_data/courses/GYM-002.yml index 15ad3cee8..3385af06a 100644 --- a/_data/courses/GYM-002.yml +++ b/_data/courses/GYM-002.yml @@ -8,6 +8,8 @@ retired_message: 1: "This course has been retired. Due to outdated content, we don’t offer a badge for this course, but you can still view the lessons. We recommend taking the updated course Introduction to Node.js (and earning a badge) instead." url: /courses/GYM/002/0/about poster_art: /img/course-artwork/png/gym-002.png +og_gen_data: + img_bg_color: 764c9f topic: "Development" short_description: "This course has been retired." short_description_orig: "Learn the basics of Node.js by building a “sample social” profile form." diff --git a/_data/courses/GYM-003.yml b/_data/courses/GYM-003.yml index f564a4c64..a03e96ecd 100644 --- a/_data/courses/GYM-003.yml +++ b/_data/courses/GYM-003.yml @@ -8,6 +8,8 @@ retired_message: 1: "This course has been retired. Due to outdated content, we don’t offer a badge for this course, but you can still view the lessons. We recommend watching the tutorial Prototyping in the Browser with CSS Grid Layout instead." url: /courses/GYM/003/0/about poster_art: /img/course-artwork/png/gym-003.png +og_gen_data: + img_bg_color: d73158 topic: "Development" short_description: "This course has been retired." short_description_orig: "Get up to speed with the Twitter Bootstrap’s grid layout system and learn how to build a responsive layout that looks great on multiple screen sizes and devices." diff --git a/_data/courses/GYM-004.yml b/_data/courses/GYM-004.yml index c9fcb1734..61d39ef25 100644 --- a/_data/courses/GYM-004.yml +++ b/_data/courses/GYM-004.yml @@ -6,6 +6,8 @@ course_type: short live: true url: /courses/GYM/004/0/about poster_art: /img/course-artwork/png/gym-004.png +og_gen_data: + img_bg_color: d73158 topic: "Development" short_description: "Learn how to convert your HTML/CSS design into a WordPress website. Discover how to set up a local development environment, and add WordPress tags to your design." instructor: ghodgkinson diff --git a/_data/courses/GYM-005.yml b/_data/courses/GYM-005.yml index 06d101744..4db0eb8db 100644 --- a/_data/courses/GYM-005.yml +++ b/_data/courses/GYM-005.yml @@ -8,6 +8,8 @@ retired_message: 1: "This course has been retired. Due to outdated content, we don’t offer a badge for this course, but you can still view the lessons." url: /courses/GYM/005/0/about poster_art: /img/course-artwork/png/gym-005.png +og_gen_data: + img_bg_color: 5ca5a0 topic: "UX" subtopics: - label: "Prototyping" diff --git a/_data/courses/GYM-006.yml b/_data/courses/GYM-006.yml index 684ac6b5a..7935c7608 100644 --- a/_data/courses/GYM-006.yml +++ b/_data/courses/GYM-006.yml @@ -6,6 +6,8 @@ course_type: short live: true url: /courses/GYM/006/0/about poster_art: /img/course-artwork/png/gym-006.png +og_gen_data: + img_bg_color: 2c9959 topic: "Development" short_description: "Learn the basics of version control and get a high-level overview of both Git and GitHub. Perfect for someone with little to no first-hand experience with either." instructor: jausura diff --git a/_data/courses/GYM-007.yml b/_data/courses/GYM-007.yml index 9cf8a3630..53104e3fb 100644 --- a/_data/courses/GYM-007.yml +++ b/_data/courses/GYM-007.yml @@ -6,6 +6,8 @@ course_type: short live: true url: /courses/GYM/007/0/about poster_art: /img/course-artwork/png/gym-007.png +og_gen_data: + img_bg_color: d73158 topic: "Development" short_description: "Learn some of the latest standards and thinking around coding HTML forms using the new HTML5 tags and attributes." instructor: jkramer diff --git a/_data/courses/GYM-008.yml b/_data/courses/GYM-008.yml index d52ea5705..70124f284 100644 --- a/_data/courses/GYM-008.yml +++ b/_data/courses/GYM-008.yml @@ -8,6 +8,8 @@ retired_message: 1: "This course has been retired. Due to outdated content, we don’t offer a badge for this course, but you can still view the lessons." url: /courses/GYM/008/0/about poster_art: /img/course-artwork/png/gym-008.png +og_gen_data: + img_bg_color: 5ca5a0 topic: "UX" subtopics: - label: "Prototyping" diff --git a/_data/courses/GYM-009.yml b/_data/courses/GYM-009.yml index 04b76adbd..fc4100594 100644 --- a/_data/courses/GYM-009.yml +++ b/_data/courses/GYM-009.yml @@ -6,6 +6,8 @@ course_type: short live: true url: /courses/GYM/009/0/about poster_art: /img/course-artwork/png/gym-009.png +og_gen_data: + img_bg_color: d73158 topic: "Development" short_description: "This course will teach you how to create themes for Drupal 8. Specifically, you will learn how to install a local development environment for Drupal 8, and use the new TWIG templating engine to customize the structure and style of your theme." instructor: ghodgkinson diff --git a/_data/courses/GYM-011.yml b/_data/courses/GYM-011.yml index 81ecf3ca6..1b2f07e8c 100644 --- a/_data/courses/GYM-011.yml +++ b/_data/courses/GYM-011.yml @@ -6,6 +6,8 @@ course_type: short live: true url: /courses/course-v1:GYM+011+0/about poster_art: /img/course-artwork/png/gym-011.png +og_gen_data: + img_bg_color: d73158 topic: "Development" short_description: "In this course, you will get a familiarity with all aspects of the built-in developer tools within the Chrome browser. Understanding how to use these tools will speed up your development time and help you create bug-free, high-performing pages and web applications." instructor: kpeters diff --git a/_data/courses/GYM-012.yml b/_data/courses/GYM-012.yml index 2439bd7fa..ad8162ce5 100644 --- a/_data/courses/GYM-012.yml +++ b/_data/courses/GYM-012.yml @@ -6,6 +6,8 @@ course_type: short live: true url: /courses/course-v1:GYM+012+0/about poster_art: /img/course-artwork/png/gym-012.png +og_gen_data: + img_bg_color: 764c9f topic: "Development" subtopics: - label: "JavaScript" diff --git a/_data/courses/GYM-013.yml b/_data/courses/GYM-013.yml index bb2356f93..202465a75 100644 --- a/_data/courses/GYM-013.yml +++ b/_data/courses/GYM-013.yml @@ -6,6 +6,8 @@ course_type: short live: true url: /courses/course-v1:GYM+013+0/about poster_art: /img/course-artwork/png/gym-013.png +og_gen_data: + img_bg_color: 5ca5a0 topic: "Design" short_description: "Learn how to create 3D generated imagery in Maya for use in Virtual Reality production." instructor: groberts diff --git a/_data/courses/GYM-014.yml b/_data/courses/GYM-014.yml index bbd9666a5..1654e416d 100644 --- a/_data/courses/GYM-014.yml +++ b/_data/courses/GYM-014.yml @@ -6,6 +6,8 @@ course_type: short live: true url: /courses/course-v1:GYM+014+0/about poster_art: /img/course-artwork/png/gym-014.png +og_gen_data: + img_bg_color: 5ca5a0 topic: "Development" subtopics: - label: "Design Systems" diff --git a/_data/courses/GYM-015.yml b/_data/courses/GYM-015.yml index b10c32cb2..6cd6bf4da 100644 --- a/_data/courses/GYM-015.yml +++ b/_data/courses/GYM-015.yml @@ -6,6 +6,8 @@ course_type: short live: true url: /courses/course-v1:GYM+015+0/about poster_art: /img/course-artwork/png/gym-015.png +og_gen_data: + img_bg_color: 5ca5a0 topic: "UX" subtopics: - label: "Prototyping" diff --git a/_data/courses/GYM-016.yml b/_data/courses/GYM-016.yml index 8d216b497..ac6d1d51f 100644 --- a/_data/courses/GYM-016.yml +++ b/_data/courses/GYM-016.yml @@ -6,6 +6,8 @@ course_type: short live: true url: /courses/course-v1:GYM+016+0/about poster_art: /img/course-artwork/png/gym-016.png +og_gen_data: + img_bg_color: d73158 topic: "Development" subtopics: - label: "Accessibility" @@ -22,4 +24,4 @@ audience: lessons_duration: "1 hour" completion_duration: "Up to 2 hours" skill_level: "Intermediate" ---- \ No newline at end of file +--- diff --git a/_data/courses/GYM-017.yml b/_data/courses/GYM-017.yml index fb7b93dd7..7cb99fc28 100644 --- a/_data/courses/GYM-017.yml +++ b/_data/courses/GYM-017.yml @@ -6,6 +6,8 @@ course_type: short live: true url: /courses/course-v1:GYM+017+0/about poster_art: /img/course-artwork/png/gym-017.png +og_gen_data: + img_bg_color: 2c9959 topic: "Design" subtopics: - label: "Design Systems" diff --git a/_data/courses/GYM-018.yml b/_data/courses/GYM-018.yml index 3e72fa969..b2862472b 100644 --- a/_data/courses/GYM-018.yml +++ b/_data/courses/GYM-018.yml @@ -6,6 +6,8 @@ course_type: short live: true url: /courses/course-v1:GYM+018+0/about poster_art: /img/course-artwork/png/gym-018.png +og_gen_data: + img_bg_color: 5ca5a0 topic: "Design" subtopics: - label: "Design Systems" diff --git a/_data/courses/GYM-019.yml b/_data/courses/GYM-019.yml index 067b1a032..579f7ec18 100644 --- a/_data/courses/GYM-019.yml +++ b/_data/courses/GYM-019.yml @@ -6,6 +6,8 @@ course_type: short live: true url: /courses/course-v1:GYM+019+0/about poster_art: /img/course-artwork/png/gym-019.png +og_gen_data: + img_bg_color: d73158 topic: "Development" subtopics: - label: "Design Systems" diff --git a/_data/courses/GYM-020.yml b/_data/courses/GYM-020.yml index 5c096caeb..549ca3d34 100644 --- a/_data/courses/GYM-020.yml +++ b/_data/courses/GYM-020.yml @@ -6,6 +6,8 @@ course_type: short live: true url: /courses/course-v1:GYM+020+0/about poster_art: /img/course-artwork/png/gym-020.png +og_gen_data: + img_bg_color: 5ca5a0 topic: "Design" subtopics: - label: "Design Systems" diff --git a/_data/courses/GYM-100.yml b/_data/courses/GYM-100.yml index 43e7e3e85..16d060057 100644 --- a/_data/courses/GYM-100.yml +++ b/_data/courses/GYM-100.yml @@ -9,6 +9,8 @@ retired_message: 2: "This course has been retired. We recommend taking the course Modern Web Design instead. It’s a bit more advanced, but we think you’d get a lot out of it." url: /courses/GYM/100/0/about poster_art: /img/course-artwork/png/gym-100.png +og_gen_data: + img_bg_color: d73158 topic: "Development" short_description: "This course has been retired." short_description_orig: "Learn HTML and CSS and become the Web Designer that Developers love. Professional design experience is a prerequisite, but no prior web or coding experience is necessary." diff --git a/_data/courses/GYM-101.yml b/_data/courses/GYM-101.yml index b8304dc10..f7eb67da4 100644 --- a/_data/courses/GYM-101.yml +++ b/_data/courses/GYM-101.yml @@ -8,6 +8,8 @@ retired_message: 1: "This course has been retired. Due to outdated content, we don’t offer a certificate for this course, but you can still view the lessons. We recommend taking the course Responsive Web Design Fundamentals (and earning a certificate) instead." url: /courses/GYM/101/0/about poster_art: /img/course-artwork/png/gym-101.png +og_gen_data: + img_bg_color: d73158 topic: "Development" short_description: "This course has been retired." short_description_orig: "In this course, you’ll learn best practices for building responsive websites that adapt to different devices and user behaviors." diff --git a/_data/courses/GYM-102.yml b/_data/courses/GYM-102.yml index bf507063a..80eb3f324 100644 --- a/_data/courses/GYM-102.yml +++ b/_data/courses/GYM-102.yml @@ -6,6 +6,8 @@ course_type: full live: true url: /courses/GYM/102/0/about poster_art: /img/course-artwork/png/gym-102.png +og_gen_data: + img_bg_color: 764c9f topic: "Development" subtopics: - label: "JavaScript" diff --git a/_data/courses/GYM-103.yml b/_data/courses/GYM-103.yml index c4eff024f..8119c612f 100644 --- a/_data/courses/GYM-103.yml +++ b/_data/courses/GYM-103.yml @@ -6,6 +6,8 @@ course_type: full live: true url: /courses/GYM/103/0/about poster_art: /img/course-artwork/png/gym-103.png +og_gen_data: + img_bg_color: 5ca5a0 topic: "UX" short_description: "Learn how to apply user-centered design principles to improve your website and mobile app design. A must-take course for anyone working in design and development." instructor: jwebb diff --git a/_data/courses/GYM-104.yml b/_data/courses/GYM-104.yml index 4d9f44319..fdfd3362f 100644 --- a/_data/courses/GYM-104.yml +++ b/_data/courses/GYM-104.yml @@ -6,6 +6,8 @@ course_type: full live: true url: /courses/GYM/104/0/about poster_art: /img/course-artwork/png/gym-104.png +og_gen_data: + img_bg_color: 764c9f topic: "Development" subtopics: - label: "JavaScript" diff --git a/_data/courses/GYM-105.yml b/_data/courses/GYM-105.yml index 65d61e1e6..9787273ae 100644 --- a/_data/courses/GYM-105.yml +++ b/_data/courses/GYM-105.yml @@ -8,6 +8,8 @@ retired_message: 1: "This course has been retired." url: /courses/GYM/105/0/about poster_art: /img/course-artwork/png/gym-105.png +og_gen_data: + img_bg_color: 2c9959 topic: "Career Skills" short_description: "This course has been retired." short_description_orig: "Learn how to write compelling content through meaningful audience research and find the right words to attract and engage users." diff --git a/_data/courses/GYM-106.yml b/_data/courses/GYM-106.yml index 6cff71fba..b8f4dd500 100644 --- a/_data/courses/GYM-106.yml +++ b/_data/courses/GYM-106.yml @@ -6,6 +6,8 @@ course_type: full live: true url: /courses/GYM/106/0/about poster_art: /img/course-artwork/png/gym-106.png +og_gen_data: + img_bg_color: 2c9959 topic: "Design" short_description: "Learn the design and visual principles needed to create effective information graphics and data visualizations." instructor: groberts diff --git a/_data/courses/GYM-107.yml b/_data/courses/GYM-107.yml index c612d001a..d57a67fd5 100644 --- a/_data/courses/GYM-107.yml +++ b/_data/courses/GYM-107.yml @@ -6,6 +6,8 @@ course_type: full live: true url: /courses/GYM/107/0/about poster_art: /img/course-artwork/png/gym-107.png +og_gen_data: + img_bg_color: d73158 topic: "Development" short_description: "This course will prepare you to be a front-end developer by walking you through the process of building a simple, responsive website using HTML, CSS, and JavaScript." instructor: agustafson diff --git a/_data/courses/GYM-108.yml b/_data/courses/GYM-108.yml index c8d4e12bd..c21eee255 100644 --- a/_data/courses/GYM-108.yml +++ b/_data/courses/GYM-108.yml @@ -6,6 +6,8 @@ course_type: full live: true url: /courses/course-v1:GYM+108+0/about poster_art: /img/course-artwork/png/gym-108.png +og_gen_data: + img_bg_color: 764c9f topic: "Development" subtopics: - label: "JavaScript" diff --git a/_data/courses/GYM-109.yml b/_data/courses/GYM-109.yml index 2c6faf2a9..d6a251e40 100644 --- a/_data/courses/GYM-109.yml +++ b/_data/courses/GYM-109.yml @@ -6,6 +6,8 @@ course_type: full live: true url: /courses/course-v1:GYM+109+0/about poster_art: /img/course-artwork/png/gym-109.png +og_gen_data: + img_bg_color: d73158 topic: "Development" short_description: "This is a hands-on, code-intensive course on how to build high-performance, responsive websites that look great across multiple screen sizes and devices." instructor: jpamental diff --git a/_data/courses/GYM-700.yml b/_data/courses/GYM-700.yml deleted file mode 100644 index d39588f22..000000000 --- a/_data/courses/GYM-700.yml +++ /dev/null @@ -1,22 +0,0 @@ ---- -course_ID: GYM-700 -title: "Portfolio Workshop" -date: 2021-11-30T00:00:00-00:00 -course_type: workshop -live: false -url: /courses/course-v1:GYM+700+0/about -poster_art: /img/course-artwork/png/gym-700.png -topic: "Portfolio Workshop" -short_description: "Portfolio Workshop" -instructor: josborn -skills: - - label: "Populate me" - - label: "Populate me" - - label: "Populate me" - - label: "Populate me" -audience: - - label: "Populate me" - - label: "Populate me" - - label: "Populate me" - - label: "Populate me" ---- diff --git a/_data/take5/GYM-5001.yml b/_data/take5/GYM-5001.yml index 756a8b6a1..96142492d 100644 --- a/_data/take5/GYM-5001.yml +++ b/_data/take5/GYM-5001.yml @@ -5,6 +5,11 @@ date: 2019-10-28T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5001/ poster_art: /img/take5/posters/gym-5001.jpg +og_gen_data: +og_gen_data: + img_bg_color: + img_offset: 520 + bg_color: d73158 live: true instructor: "Jeremy Osborn" instructor_bio: "Director of Learning at Aquent Gymnasium" diff --git a/_data/take5/GYM-5002.yml b/_data/take5/GYM-5002.yml index a74401640..b60ace536 100644 --- a/_data/take5/GYM-5002.yml +++ b/_data/take5/GYM-5002.yml @@ -5,6 +5,10 @@ date: 2019-10-29T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5002/ poster_art: /img/take5/posters/gym-5002.jpg +og_gen_data: + img_bg_color: + img_offset: 520 + bg_color: d73158 live: true instructor: "Jeremy Osborn" instructor_bio: "Director of Learning at Aquent Gymnasium" diff --git a/_data/take5/GYM-5003.yml b/_data/take5/GYM-5003.yml index 446d448fe..e83e0b01c 100644 --- a/_data/take5/GYM-5003.yml +++ b/_data/take5/GYM-5003.yml @@ -5,6 +5,10 @@ date: 2019-10-30T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5003/ poster_art: /img/take5/posters/gym-5003.jpg +og_gen_data: + img_bg_color: + img_offset: 315 + bg_color: d73158 live: true instructor: "Jeremy Osborn" instructor_bio: "Director of Learning at Aquent Gymnasium" diff --git a/_data/take5/GYM-5004.yml b/_data/take5/GYM-5004.yml index 582daf5ff..bb8f7356e 100644 --- a/_data/take5/GYM-5004.yml +++ b/_data/take5/GYM-5004.yml @@ -5,6 +5,10 @@ date: 2019-10-31T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5004/ poster_art: /img/take5/posters/gym-5004.jpg +og_gen_data: + img_bg_color: + img_offset: 385 + bg_color: d73158 live: true instructor: "Jeremy Osborn" instructor_bio: "Director of Learning at Aquent Gymnasium" diff --git a/_data/take5/GYM-5005.yml b/_data/take5/GYM-5005.yml index ea621de77..945e6097d 100644 --- a/_data/take5/GYM-5005.yml +++ b/_data/take5/GYM-5005.yml @@ -5,6 +5,10 @@ date: 2019-11-01T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5005/ poster_art: /img/take5/posters/gym-5005.jpg +og_gen_data: + img_bg_color: + img_offset: 385 + bg_color: d73158 live: true instructor: "Jeremy Osborn" instructor_bio: "Director of Learning at Aquent Gymnasium" diff --git a/_data/take5/GYM-5006.yml b/_data/take5/GYM-5006.yml index 98acdc2b0..fb38fcba7 100644 --- a/_data/take5/GYM-5006.yml +++ b/_data/take5/GYM-5006.yml @@ -5,6 +5,10 @@ date: 2019-11-18T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5006/ poster_art: /img/take5/posters/gym-5006.jpg +og_gen_data: + img_bg_color: + img_offset: 280 + bg_color: 5ca5a0 live: true instructor: "Heather O’Neill" instructor_bio: "CEO of Pixels for Humans" diff --git a/_data/take5/GYM-5007.yml b/_data/take5/GYM-5007.yml index 5af4837b9..f1bbcf248 100644 --- a/_data/take5/GYM-5007.yml +++ b/_data/take5/GYM-5007.yml @@ -5,6 +5,10 @@ date: 2019-11-19T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5007/ poster_art: /img/take5/posters/gym-5007.jpg +og_gen_data: + img_bg_color: + img_offset: 100 + bg_color: 5ca5a0 live: true instructor: "Heather O’Neill" instructor_bio: "CEO of Pixels for Humans" diff --git a/_data/take5/GYM-5008.yml b/_data/take5/GYM-5008.yml index 40928ee98..9b6cc5e1b 100644 --- a/_data/take5/GYM-5008.yml +++ b/_data/take5/GYM-5008.yml @@ -5,6 +5,10 @@ date: 2019-11-20T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5008/ poster_art: /img/take5/posters/gym-5008.jpg +og_gen_data: + img_bg_color: + img_offset: 335 + bg_color: 5ca5a0 live: true instructor: "Heather O’Neill" instructor_bio: "CEO of Pixels for Humans" diff --git a/_data/take5/GYM-5009.yml b/_data/take5/GYM-5009.yml index 62ee1a5f1..995eeb132 100644 --- a/_data/take5/GYM-5009.yml +++ b/_data/take5/GYM-5009.yml @@ -5,6 +5,10 @@ date: 2019-11-21T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5009/ poster_art: /img/take5/posters/gym-5009.jpg +og_gen_data: + img_bg_color: + img_offset: 205 + bg_color: 5ca5a0 live: true instructor: "Heather O’Neill" instructor_bio: "CEO of Pixels for Humans" diff --git a/_data/take5/GYM-5010.yml b/_data/take5/GYM-5010.yml index d4aa3643a..66303cb6d 100644 --- a/_data/take5/GYM-5010.yml +++ b/_data/take5/GYM-5010.yml @@ -5,6 +5,10 @@ date: 2019-11-22T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5010/ poster_art: /img/take5/posters/gym-5010.jpg +og_gen_data: + img_bg_color: + img_offset: 187 + bg_color: 5ca5a0 live: true instructor: "Jeremy Osborn" instructor_bio: "Director of Learning at Aquent Gymnasium" diff --git a/_data/take5/GYM-5011.yml b/_data/take5/GYM-5011.yml index 621fffb2f..4edd1762a 100644 --- a/_data/take5/GYM-5011.yml +++ b/_data/take5/GYM-5011.yml @@ -5,6 +5,10 @@ date: 2019-11-04T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5011/ poster_art: /img/take5/posters/gym-5011.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: 5ca5a0 live: true instructor: "Jeremy Osborn" instructor_bio: "Director of Learning at Aquent Gymnasium" diff --git a/_data/take5/GYM-5012.yml b/_data/take5/GYM-5012.yml index a0c985a7e..c6a466d78 100644 --- a/_data/take5/GYM-5012.yml +++ b/_data/take5/GYM-5012.yml @@ -5,6 +5,10 @@ date: 2019-11-05T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5012/ poster_art: /img/take5/posters/gym-5012.jpg +og_gen_data: + img_bg_color: + img_offset: 685 + bg_color: d73158 live: true instructor: "Jeremy Osborn" instructor_bio: "Director of Learning at Aquent Gymnasium" diff --git a/_data/take5/GYM-5013.yml b/_data/take5/GYM-5013.yml index 96671df98..bd795eeae 100644 --- a/_data/take5/GYM-5013.yml +++ b/_data/take5/GYM-5013.yml @@ -5,6 +5,10 @@ date: 2019-11-06T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5013/ poster_art: /img/take5/posters/gym-5013.jpg +og_gen_data: + img_bg_color: + img_offset: 510 + bg_color: 5ca5a0 live: true instructor: "Jeremy Osborn" instructor_bio: "Director of Learning at Aquent Gymnasium" diff --git a/_data/take5/GYM-5014.yml b/_data/take5/GYM-5014.yml index 1490eee5f..32d25d364 100644 --- a/_data/take5/GYM-5014.yml +++ b/_data/take5/GYM-5014.yml @@ -5,6 +5,10 @@ date: 2019-11-07T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5014/ poster_art: /img/take5/posters/gym-5014.jpg +og_gen_data: + img_bg_color: + img_offset: 355 + bg_color: 5ca5a0 live: true instructor: "Jeremy Osborn" instructor_bio: "Director of Learning at Aquent Gymnasium" diff --git a/_data/take5/GYM-5015.yml b/_data/take5/GYM-5015.yml index dd97f9c7a..852dcbfcc 100644 --- a/_data/take5/GYM-5015.yml +++ b/_data/take5/GYM-5015.yml @@ -5,6 +5,10 @@ date: 2019-11-08T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5015/ poster_art: /img/take5/posters/gym-5015.jpg +og_gen_data: + img_bg_color: + img_offset: 795 + bg_color: 5ca5a0 live: true instructor: "Jeremy Osborn" instructor_bio: "Director of Learning at Aquent Gymnasium" diff --git a/_data/take5/GYM-5016.yml b/_data/take5/GYM-5016.yml index fe51078d4..21abbc26f 100644 --- a/_data/take5/GYM-5016.yml +++ b/_data/take5/GYM-5016.yml @@ -5,6 +5,10 @@ date: 2019-11-11T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5016/ poster_art: /img/take5/posters/gym-5016.jpg +og_gen_data: + img_bg_color: + img_offset: 70 + bg_color: 2c9959 live: true instructor: "Lee Andrese" instructor_bio: "Vice President of Learning and Development at Onward Search" diff --git a/_data/take5/GYM-5017.yml b/_data/take5/GYM-5017.yml index 63248864d..e575b5e04 100644 --- a/_data/take5/GYM-5017.yml +++ b/_data/take5/GYM-5017.yml @@ -5,6 +5,10 @@ date: 2019-11-12T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5017/ poster_art: /img/take5/posters/gym-5017.jpg +og_gen_data: + img_bg_color: + img_offset: 175 + bg_color: 2c9959 live: true instructor: "Anne Ditmeyer" instructor_bio: "Creative Coach" diff --git a/_data/take5/GYM-5018.yml b/_data/take5/GYM-5018.yml index 5f7564542..fd67ea446 100644 --- a/_data/take5/GYM-5018.yml +++ b/_data/take5/GYM-5018.yml @@ -5,6 +5,10 @@ date: 2019-11-13T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5018/ poster_art: /img/take5/posters/gym-5018.jpg +og_gen_data: + img_bg_color: + img_offset: 95 + bg_color: 2c9959 live: true instructor: "Lee Andrese" instructor_bio: "Vice President of Learning and Development at Onward Search" diff --git a/_data/take5/GYM-5019.yml b/_data/take5/GYM-5019.yml index f11cb43b5..839f11de9 100644 --- a/_data/take5/GYM-5019.yml +++ b/_data/take5/GYM-5019.yml @@ -5,6 +5,10 @@ date: 2019-11-14T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5019/ poster_art: /img/take5/posters/gym-5019.jpg +og_gen_data: + img_bg_color: + img_offset: 390 + bg_color: 2c9959 live: true instructor: "Anne Ditmeyer" instructor_bio: "Creative Coach" diff --git a/_data/take5/GYM-5020.yml b/_data/take5/GYM-5020.yml index e9b5c6913..1cc214f85 100644 --- a/_data/take5/GYM-5020.yml +++ b/_data/take5/GYM-5020.yml @@ -5,6 +5,10 @@ date: 2019-11-15T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5020/ poster_art: /img/take5/posters/gym-5020.jpg +og_gen_data: + img_bg_color: + img_offset: 365 + bg_color: 2c9959 live: true instructor: "Lee Andrese" instructor_bio: "Vice President of Learning and Development at Onward Search" diff --git a/_data/take5/GYM-5021.yml b/_data/take5/GYM-5021.yml index 8b5fcf89c..87b16571a 100644 --- a/_data/take5/GYM-5021.yml +++ b/_data/take5/GYM-5021.yml @@ -5,6 +5,10 @@ date: 2019-12-03T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5021/ poster_art: /img/take5/posters/gym-5021.jpg +og_gen_data: + img_bg_color: + img_offset: 50 + bg_color: d73158 live: true instructor: "Jeremy Osborn" instructor_bio: "Director of Learning at Aquent Gymnasium" diff --git a/_data/take5/GYM-5022.yml b/_data/take5/GYM-5022.yml index d6ee871df..2398e5f38 100644 --- a/_data/take5/GYM-5022.yml +++ b/_data/take5/GYM-5022.yml @@ -5,6 +5,10 @@ date: 2019-12-10T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5022/ poster_art: /img/take5/posters/gym-5022.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: d73158 live: true instructor: "Jeremy Osborn" instructor_bio: "Director of Learning at Aquent Gymnasium" diff --git a/_data/take5/GYM-5023.yml b/_data/take5/GYM-5023.yml index 027ea92d1..5dbd866e6 100644 --- a/_data/take5/GYM-5023.yml +++ b/_data/take5/GYM-5023.yml @@ -5,6 +5,10 @@ date: 2020-01-13T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5023/ poster_art: /img/take5/posters/gym-5023.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: d73158 live: true instructor: "Jeremy Osborn" instructor_bio: "Director of Learning at Aquent Gymnasium" diff --git a/_data/take5/GYM-5024.yml b/_data/take5/GYM-5024.yml index 129a3182a..98e6bbe63 100644 --- a/_data/take5/GYM-5024.yml +++ b/_data/take5/GYM-5024.yml @@ -5,6 +5,10 @@ date: 2020-01-20T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5024/ poster_art: /img/take5/posters/gym-5024.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: d73158 live: true instructor: "Jeremy Osborn" instructor_bio: "Director of Learning at Aquent Gymnasium" diff --git a/_data/take5/GYM-5025.yml b/_data/take5/GYM-5025.yml index bbb992acb..fa123554a 100644 --- a/_data/take5/GYM-5025.yml +++ b/_data/take5/GYM-5025.yml @@ -5,6 +5,10 @@ date: 2020-01-27T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5025/ poster_art: /img/take5/posters/gym-5025.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: d73158 live: true instructor: "Jeremy Osborn" instructor_bio: "Director of Learning at Aquent Gymnasium" diff --git a/_data/take5/GYM-5026.yml b/_data/take5/GYM-5026.yml index 86bd45d61..6416a1c4e 100644 --- a/_data/take5/GYM-5026.yml +++ b/_data/take5/GYM-5026.yml @@ -5,6 +5,10 @@ date: 2020-02-03T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5026/ poster_art: /img/take5/posters/gym-5026.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: d73158 live: true instructor: "Mike Bifulco" instructor_bio: "Developer Advocate at Stripe" diff --git a/_data/take5/GYM-5027.yml b/_data/take5/GYM-5027.yml index 7d0537f42..5bc4157fc 100644 --- a/_data/take5/GYM-5027.yml +++ b/_data/take5/GYM-5027.yml @@ -5,6 +5,10 @@ date: 2020-02-10T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5027/ poster_art: /img/take5/posters/gym-5027.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: 2c9959 live: true instructor: "Jeremy Osborn" instructor_bio: "Director of Learning at Aquent Gymnasium" diff --git a/_data/take5/GYM-5028.yml b/_data/take5/GYM-5028.yml index 3483e67f0..b78a87a65 100644 --- a/_data/take5/GYM-5028.yml +++ b/_data/take5/GYM-5028.yml @@ -5,6 +5,10 @@ date: 2020-02-17T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5028/ poster_art: /img/take5/posters/gym-5028.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: d73158 live: true instructor: "Jeremy Osborn" instructor_bio: "Director of Learning at Aquent Gymnasium" diff --git a/_data/take5/GYM-5029.yml b/_data/take5/GYM-5029.yml index 1e6290071..0bcd31c37 100644 --- a/_data/take5/GYM-5029.yml +++ b/_data/take5/GYM-5029.yml @@ -5,6 +5,10 @@ date: 2020-02-24T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5029/ poster_art: /img/take5/posters/gym-5029.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: 5ca5a0 live: true instructor: "Jeremy Osborn" instructor_bio: "Director of Learning at Aquent Gymnasium" diff --git a/_data/take5/GYM-5030.yml b/_data/take5/GYM-5030.yml index 76d68f3e1..c43dd2c81 100644 --- a/_data/take5/GYM-5030.yml +++ b/_data/take5/GYM-5030.yml @@ -5,6 +5,10 @@ date: 2020-03-03T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5030/ poster_art: /img/take5/posters/gym-5030.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: 5ca5a0 live: true instructor: "Jeremy Osborn" instructor_bio: "Director of Learning at Aquent Gymnasium" diff --git a/_data/take5/GYM-5031.yml b/_data/take5/GYM-5031.yml index b542eef10..c1a4c255c 100644 --- a/_data/take5/GYM-5031.yml +++ b/_data/take5/GYM-5031.yml @@ -5,6 +5,10 @@ date: 2020-03-31T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5031/ poster_art: /img/take5/posters/gym-5031.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: d73158 live: true instructor: "Jeremy Osborn" instructor_bio: "Director of Learning at Aquent Gymnasium" diff --git a/_data/take5/GYM-5032.yml b/_data/take5/GYM-5032.yml index 2bda8bcd9..428932554 100644 --- a/_data/take5/GYM-5032.yml +++ b/_data/take5/GYM-5032.yml @@ -5,6 +5,10 @@ date: 2020-06-22T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5032/ poster_art: /img/take5/posters/gym-5032.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: d73158 live: true instructor: "Ethan Marcotte" instructor_bio: "Partner at Autogram" diff --git a/_data/take5/GYM-5033.yml b/_data/take5/GYM-5033.yml index f3580f17c..540058af7 100644 --- a/_data/take5/GYM-5033.yml +++ b/_data/take5/GYM-5033.yml @@ -5,6 +5,10 @@ date: 2020-06-23T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5033/ poster_art: /img/take5/posters/gym-5033.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: d73158 live: true instructor: "Ethan Marcotte" instructor_bio: "Partner at Autogram" diff --git a/_data/take5/GYM-5034.yml b/_data/take5/GYM-5034.yml index 167e6692a..3681fface 100644 --- a/_data/take5/GYM-5034.yml +++ b/_data/take5/GYM-5034.yml @@ -5,6 +5,10 @@ date: 2020-06-24T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5034/ poster_art: /img/take5/posters/gym-5034.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: d73158 live: true instructor: "Ethan Marcotte" instructor_bio: "Partner at Autogram" diff --git a/_data/take5/GYM-5035.yml b/_data/take5/GYM-5035.yml index 1aa5f58ab..6265ce7aa 100644 --- a/_data/take5/GYM-5035.yml +++ b/_data/take5/GYM-5035.yml @@ -5,6 +5,10 @@ date: 2020-06-25T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5035/ poster_art: /img/take5/posters/gym-5035.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: d73158 live: true instructor: "Ethan Marcotte" instructor_bio: "Partner at Autogram" diff --git a/_data/take5/GYM-5036.yml b/_data/take5/GYM-5036.yml index f6654d1ea..d78c83249 100644 --- a/_data/take5/GYM-5036.yml +++ b/_data/take5/GYM-5036.yml @@ -5,6 +5,10 @@ date: 2020-06-26T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5036/ poster_art: /img/take5/posters/gym-5036.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: d73158 live: true instructor: "Ethan Marcotte" instructor_bio: "Partner at Autogram" diff --git a/_data/take5/GYM-5037.yml b/_data/take5/GYM-5037.yml index 918c545ad..516ab39d3 100644 --- a/_data/take5/GYM-5037.yml +++ b/_data/take5/GYM-5037.yml @@ -5,6 +5,10 @@ date: 2020-09-02T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5037/ poster_art: /img/take5/posters/gym-5037.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: d73158 live: true instructor: "Clarissa Peterson" instructor_bio: "Strategy Director at Forum One" diff --git a/_data/take5/GYM-5038.yml b/_data/take5/GYM-5038.yml index 3a961bcbc..c4305c94a 100644 --- a/_data/take5/GYM-5038.yml +++ b/_data/take5/GYM-5038.yml @@ -5,6 +5,10 @@ date: 2020-09-15T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5038/ poster_art: /img/take5/posters/gym-5038.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: d73158 live: true instructor: "Clarissa Peterson" instructor_bio: "Strategy Director at Forum One" diff --git a/_data/take5/GYM-5039.yml b/_data/take5/GYM-5039.yml index 535fdcc42..807850b3d 100644 --- a/_data/take5/GYM-5039.yml +++ b/_data/take5/GYM-5039.yml @@ -5,6 +5,10 @@ date: 2020-09-22T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5039/ poster_art: /img/take5/posters/gym-5039.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: d73158 live: true instructor: "Clarissa Peterson" instructor_bio: "Strategy Director at Forum One" diff --git a/_data/take5/GYM-5040.yml b/_data/take5/GYM-5040.yml index 5787436c2..297142c15 100644 --- a/_data/take5/GYM-5040.yml +++ b/_data/take5/GYM-5040.yml @@ -5,6 +5,10 @@ date: 2020-09-29T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5040/ poster_art: /img/take5/posters/gym-5040.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: d73158 live: true instructor: "Clarissa Peterson" instructor_bio: "Strategy Director at Forum One" diff --git a/_data/take5/GYM-5041.yml b/_data/take5/GYM-5041.yml index d603fb325..3338a3672 100644 --- a/_data/take5/GYM-5041.yml +++ b/_data/take5/GYM-5041.yml @@ -5,6 +5,10 @@ date: 2020-10-06T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5041/ poster_art: /img/take5/posters/gym-5041.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: d73158 live: true instructor: "Clarissa Peterson" instructor_bio: "Strategy Director at Forum One" diff --git a/_data/take5/GYM-5042.yml b/_data/take5/GYM-5042.yml index dc3da0f8a..157771209 100644 --- a/_data/take5/GYM-5042.yml +++ b/_data/take5/GYM-5042.yml @@ -5,6 +5,10 @@ date: 2020-10-13T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5042/ poster_art: /img/take5/posters/gym-5042.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: d73158 live: true instructor: "Clarissa Peterson" instructor_bio: "Strategy Director at Forum One" diff --git a/_data/take5/GYM-5043.yml b/_data/take5/GYM-5043.yml index b351a83c0..96927102f 100644 --- a/_data/take5/GYM-5043.yml +++ b/_data/take5/GYM-5043.yml @@ -5,6 +5,10 @@ date: 2020-10-20T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5043/ poster_art: /img/take5/posters/gym-5043.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: d73158 live: true instructor: "Clarissa Peterson" instructor_bio: "Strategy Director at Forum One" diff --git a/_data/take5/GYM-5044.yml b/_data/take5/GYM-5044.yml index 98f771427..c4242c7b4 100644 --- a/_data/take5/GYM-5044.yml +++ b/_data/take5/GYM-5044.yml @@ -5,6 +5,10 @@ date: 2020-10-27T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5044/ poster_art: /img/take5/posters/gym-5044.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: d73158 live: true instructor: "Clarissa Peterson" instructor_bio: "Strategy Director at Forum One" diff --git a/_data/take5/GYM-5045.yml b/_data/take5/GYM-5045.yml index a191b480c..282330a03 100644 --- a/_data/take5/GYM-5045.yml +++ b/_data/take5/GYM-5045.yml @@ -5,6 +5,10 @@ date: 2020-11-03T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5045/ poster_art: /img/take5/posters/gym-5045.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: d73158 live: true instructor: "Clarissa Peterson" instructor_bio: "Strategy Director at Forum One" diff --git a/_data/take5/GYM-5046.yml b/_data/take5/GYM-5046.yml index 997b2f052..e87fb1d88 100644 --- a/_data/take5/GYM-5046.yml +++ b/_data/take5/GYM-5046.yml @@ -5,6 +5,10 @@ date: 2020-11-10T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5046/ poster_art: /img/take5/posters/gym-5046.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: d73158 live: true instructor: "Clarissa Peterson" instructor_bio: "Strategy Director at Forum One" diff --git a/_data/take5/GYM-5047.yml b/_data/take5/GYM-5047.yml index d428e3195..bb032338d 100644 --- a/_data/take5/GYM-5047.yml +++ b/_data/take5/GYM-5047.yml @@ -5,6 +5,10 @@ date: 2020-11-17T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5047/ poster_art: /img/take5/posters/gym-5047.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: d73158 live: true instructor: "Clarissa Peterson" instructor_bio: "Strategy Director at Forum One" diff --git a/_data/take5/GYM-5048.yml b/_data/take5/GYM-5048.yml index 27a3746ac..6a43e9346 100644 --- a/_data/take5/GYM-5048.yml +++ b/_data/take5/GYM-5048.yml @@ -5,6 +5,10 @@ date: 2020-11-24T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5048/ poster_art: /img/take5/posters/gym-5048.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: d73158 live: true instructor: "Clarissa Peterson" instructor_bio: "Strategy Director at Forum One" diff --git a/_data/take5/GYM-5049.yml b/_data/take5/GYM-5049.yml index fb07239cb..d10092ece 100644 --- a/_data/take5/GYM-5049.yml +++ b/_data/take5/GYM-5049.yml @@ -5,6 +5,10 @@ date: 2021-06-01T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5049/ poster_art: /img/take5/posters/gym-5049.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: 5ca5a0 live: true instructor: "Jeremy Osborn" instructor_bio: "Director of Learning at Aquent Gymnasium" diff --git a/_data/take5/GYM-5050.yml b/_data/take5/GYM-5050.yml index 819379637..38b3b57a6 100644 --- a/_data/take5/GYM-5050.yml +++ b/_data/take5/GYM-5050.yml @@ -5,6 +5,10 @@ date: 2021-06-15T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5050/ poster_art: /img/take5/posters/gym-5050.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: 5ca5a0 live: true instructor: "Jeremy Osborn" instructor_bio: "Director of Learning at Aquent Gymnasium" diff --git a/_data/take5/GYM-5051.yml b/_data/take5/GYM-5051.yml index 4a9464d2e..4796d9dcb 100644 --- a/_data/take5/GYM-5051.yml +++ b/_data/take5/GYM-5051.yml @@ -5,6 +5,10 @@ date: 2021-06-29T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5051/ poster_art: /img/take5/posters/gym-5051.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: 5ca5a0 live: true instructor: "Jeremy Osborn" instructor_bio: "Director of Learning at Aquent Gymnasium" diff --git a/_data/take5/GYM-5052.yml b/_data/take5/GYM-5052.yml index ca207995e..e2668b70b 100644 --- a/_data/take5/GYM-5052.yml +++ b/_data/take5/GYM-5052.yml @@ -5,6 +5,10 @@ date: 2022-08-22T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5052/ poster_art: /img/take5/posters/gym-5052.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: 2c9959 live: false instructor: "Jeremy Osborn" instructor_bio: "Director of Learning at Aquent Gymnasium" diff --git a/_data/take5/GYM-5053.yml b/_data/take5/GYM-5053.yml index ef2529637..7839b97d5 100644 --- a/_data/take5/GYM-5053.yml +++ b/_data/take5/GYM-5053.yml @@ -5,6 +5,10 @@ date: 2022-08-24T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5053/ poster_art: /img/take5/posters/gym-5053.jpg +og_gen_data: + img_bg_color: + img_offset: + bg_color: 2c9959 live: false instructor: "Jeremy Osborn" instructor_bio: "Director of Learning at Aquent Gymnasium" diff --git a/_data/take5/GYM-5056.yml b/_data/take5/GYM-5056.yml index c0abd7dd5..fde9c3724 100644 --- a/_data/take5/GYM-5056.yml +++ b/_data/take5/GYM-5056.yml @@ -4,6 +4,10 @@ title: "Taking Your Portfolio Case Studies to the Next Level" date: 2022-12-05T00:00:00-04:00 course_type: take5 url: /courses/take5/GYM-5056/ +og_gen_data: + img_bg_color: + img_offset: + bg_color: 2c9959 poster_art: /img/take5/posters/gym-5056.jpg live: false instructor: "Jeremy Osborn" diff --git a/_data/workshops/GYM-700.yml b/_data/workshops/GYM-700.yml index 8b6c04b8a..0fa14eb29 100644 --- a/_data/workshops/GYM-700.yml +++ b/_data/workshops/GYM-700.yml @@ -6,6 +6,7 @@ datetime: "December 5–9, Monday–Friday, 4–5 PM EST" course_type: workshop url: /courses/GYM/700/0/about poster_art: /img/course-artwork/png/gym-700.png +img_bg_color: 2c9959 live: false topic: "Career Skills" short_description: "This workshop will teach students how to create an outstanding portfolio using content strategy and storytelling skills. Students will leave with actionable next steps to improve their portfolio." diff --git a/_dev_config.yml b/_dev_config.yml index 57f617edf..c6a72740f 100644 --- a/_dev_config.yml +++ b/_dev_config.yml @@ -16,6 +16,7 @@ exclude: - 'netlify.toml' - '.jekyll-cache' - 'local' + - '.netlify/functions/README.md' include: - '_redirects' @@ -52,14 +53,14 @@ jekyll_get_json: json: 'https://stag-assets.aquent.com/apps/gym/jobs.json?limit=1500' - data: markets json: 'https://stag-assets.aquent.com/apps/gym/markets.json' - - data: privacy-index - json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-index*%20+languageId:1%20+deleted:false%20+working:true/' - - data: privacy-shield-notice - json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-privacy-shield-notice*%20+languageId:1%20+deleted:false%20+working:true/' - - data: privacy-ccpa - json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-ccpa-policy*%20+languageId:1%20+deleted:false%20+working:true/' - - data: privacy-data-category - json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-data-category*%20+languageId:1%20+deleted:false%20+working:true/' - - data: privacy-eu-rights - json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-european-rights*%20+languageId:1%20+deleted:false%20+working:true/' + # - data: privacy-index + # json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-index*%20+languageId:1%20+deleted:false%20+working:true/' + # - data: privacy-shield-notice + # json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-privacy-shield-notice*%20+languageId:1%20+deleted:false%20+working:true/' + # - data: privacy-ccpa + # json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-ccpa-policy*%20+languageId:1%20+deleted:false%20+working:true/' + # - data: privacy-data-category + # json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-data-category*%20+languageId:1%20+deleted:false%20+working:true/' + # - data: privacy-eu-rights + # json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-european-rights*%20+languageId:1%20+deleted:false%20+working:true/' diff --git a/_includes/partials/meta/logic-courses.html b/_includes/partials/meta/logic-courses.html index 523e9cf73..d9cbffc28 100644 --- a/_includes/partials/meta/logic-courses.html +++ b/_includes/partials/meta/logic-courses.html @@ -7,3 +7,4 @@ {%- assign og_title = course.title -%} {%- assign page_title = course.title | append: " | Gymnasium" -%} {%- assign og_art = course.course_ID | downcase | append: "-social.png" | prepend: "/img/social/courses/" -%} +{%- assign data_topic = course.topic -%} diff --git a/_includes/partials/meta/logic-take5.html b/_includes/partials/meta/logic-take5.html index 793f87867..59b898f47 100644 --- a/_includes/partials/meta/logic-take5.html +++ b/_includes/partials/meta/logic-take5.html @@ -8,3 +8,4 @@ {%- assign page_title = course.title | append: " | Gymnasium" -%} {%- assign og_art = course.course_ID | downcase | append: "-og.png" | prepend: "/img/take5/og/" -%} {%- assign og_img_alt = course.title | prepend: "Video poster for tutorial titled " -%} +{%- assign data_topic = course.topic -%} diff --git a/_local_config.yml b/_local_config.yml index 719e2a238..3633d38f6 100644 --- a/_local_config.yml +++ b/_local_config.yml @@ -15,6 +15,7 @@ exclude: - 'README.md' - 'netlify.toml' - '.jekyll-cache' + - '.netlify/functions/README.md' include: - '_redirects' diff --git a/_production_config.yml b/_production_config.yml index a7e31aa7e..b9064b8ac 100644 --- a/_production_config.yml +++ b/_production_config.yml @@ -15,7 +15,8 @@ exclude: - 'README.md' - 'netlify.toml' - '.jekyll-cache' - - 'local' + - 'local' + - '.netlify/functions/README.md' include: - '_redirects' @@ -57,14 +58,14 @@ jekyll_get_json: json: 'https://assets.aquent.com/apps/gym/jobs.json?limit=1500' - data: markets json: 'https://assets.aquent.com/apps/gym/markets.json' - - data: privacy-index - json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-index*%20+languageId:1%20+deleted:false%20+working:true/' - - data: privacy-shield-notice - json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-privacy-shield-notice*%20+languageId:1%20+deleted:false%20+working:true/' - - data: privacy-ccpa - json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-ccpa-policy*%20+languageId:1%20+deleted:false%20+working:true/' - - data: privacy-data-category - json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-data-category*%20+languageId:1%20+deleted:false%20+working:true/' - - data: privacy-eu-rights - json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-european-rights*%20+languageId:1%20+deleted:false%20+working:true/' + # - data: privacy-index + # json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-index*%20+languageId:1%20+deleted:false%20+working:true/' + # - data: privacy-shield-notice + # json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-privacy-shield-notice*%20+languageId:1%20+deleted:false%20+working:true/' + # - data: privacy-ccpa + # json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-ccpa-policy*%20+languageId:1%20+deleted:false%20+working:true/' + # - data: privacy-data-category + # json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-data-category*%20+languageId:1%20+deleted:false%20+working:true/' + # - data: privacy-eu-rights + # json: 'https://assets.aquent.com/api/content/render/false/type/json/query/+contentType:webPageContent%20+webPageContent.title:*privacy-policy-european-rights*%20+languageId:1%20+deleted:false%20+working:true/' diff --git a/feeds/data.json b/feeds/data.json new file mode 100644 index 000000000..281862047 --- /dev/null +++ b/feeds/data.json @@ -0,0 +1,113 @@ +--- +layout: null +permalink: /feeds/data.json +--- +{%- if site.data -%} +{ + "title": "Gymnasium Edge Function Data Feed", + "feed_url": "{{site.url}}{{page.permalink}}", + "date_modified": "{{ site.time | date_to_xmlschema }}", + "courses":[ + {%- assign sorted = site.data.courses | sort: course_id -%} + {%- for hash in sorted -%} + {%- include_relative og-data-logic.liquid -%} + { + "id": "{{ id }}", + "title": "{{ title }}", + "type": "{{ type }}", + "topic": "{{ topic }}", + "img": "{{ img }}", + "img_offset": "{{ img_offset }}", + "img_bg_color": "{{ img_bg_color }}", + "bg_color": "{{ bg_color }}" + }, + {%- endfor -%} + + {%- assign sorted = site.data.workshops | sort: course_id -%} + {%- for hash in sorted -%} + {%- include_relative og-data-logic.liquid -%} + { + "id": "{{ id }}", + "title": "{{ title }}", + "type": "{{ type }}", + "topic": "{{ topic }}", + "img": "{{ img }}", + "img_offset": "{{ img_offset }}", + "img_bg_color": "{{ img_bg_color }}", + "bg_color": "{{ bg_color }}" + }, + {%- endfor -%} + + {%- assign sorted = site.data.take5 | sort: course_id -%} + {%- for hash in sorted -%} + {%- include_relative og-data-logic.liquid -%} + { + "id": "{{ id }}", + "title": "{{ title }}", + "type": "{{ type }}", + "topic": "{{ topic }}", + "img": "{{ img | replace: '.jpg', '-hero.jpg' }}", + "img_offset": "{{ img_offset }}", + "img_bg_color": "{{ img_bg_color }}", + "bg_color": "{{ bg_color }}" + } + {%- if forloop.index != forloop.length -%},{%- endif -%} + {%- endfor -%} + ], + "webinars":[ + {%- assign sorted = site.data.webinars | sort: event_ID -%} + {%- for hash in sorted -%} + {%- assign id = hash[0] -%} + {%- assign item = hash[1] -%} + { + "id": "{{ id | slice: 0,7 }}", + "title": "{{ item.event_title | strip_html }}", + "type": "webinar", + "topic": "{{ item.topic | strip_html }}", + "img": "/img/social/webinars/{{ item.event_ogimage }}", + "img_offset": "{{ item.img_offset }}", + "img_bg_color": "{{ item.img_bg_color }}", + "bg_color": "{{ item.bg_color }}" + } + {%- if forloop.index != forloop.length -%},{%- endif -%} + {%- endfor -%} + ], + + {%- assign sortedpages = site.pages | where_exp: 'page', "page.permalink contains '/meta/'" | sort: "url" -%} + {%- assign filtered_pages = "" | split: ", " -%} + {%- for page in sortedpages -%} + {%- unless page.permalink contains '/courses/' or page.permalink contains '/webinars/' or page.permalink contains '/tests/' -%} + {%- assign filtered_pages = filtered_pages | push: page -%} + {%- endunless -%} + {%-if page.permalink == '/courses/meta/' or page.permalink == '/webinars/meta/' or page.permalink == '/courses/take5/meta/' or page.permalink == '/courses/gym-shorts/meta/' or page.permalink == '/courses/full/meta/' -%} + {%- assign filtered_pages = filtered_pages | push: page -%} + {%- endif -%} + {%- endfor -%} + + "static":[ + {%- for page in filtered_pages -%} + { + "id": "", + "data": [{ + {%- for item in page -%} + "{{item[0] | JSON }}": "{{item[1] | JSON }}" + {%- if forloop.index != forloop.length -%},{%- endif -%} + {%- endfor -%} + }], + "path": "{{ page.permalink }}", + "title": "{{ page.og_description }}", + "type": "static", + "topic": "", + "img": "", + "img_offset": "", + "img_bg_color": "", + "bg_color": "" + } + {%- if forloop.index != forloop.length -%},{%- endif -%} + {%- endfor -%} + ] +} +{%- else -%} +{"error": "no JSON feed found!"} +{%- endif -%} + diff --git a/feeds/og-data-logic.liquid b/feeds/og-data-logic.liquid new file mode 100644 index 000000000..a36c1e265 --- /dev/null +++ b/feeds/og-data-logic.liquid @@ -0,0 +1,32 @@ +{%- assign id = hash[0] -%} +{%- assign item = hash[1] -%} +{%- assign title = item.title -%} +{%- assign type = item.course_type -%} +{%- assign topic = item.topic -%} +{%- assign img = item.poster_art -%} +{%- assign img_offset = item.img_offset -%} +{%- assign img_bg_color = item.img_bg_color -%} +{%- assign bg_color = item.bg_color -%} +{%- if item.og_gen_data -%} + {%- if item.og_gen_data.bg_color -%} + {%- assign bg_color = item.og_gen_data.bg_color -%} + {%- endif -%} + {%- if item.og_gen_data.title -%} + {%- assign title = item.og_gen_data.title -%} + {%- endif -%} + {%- if item.og_gen_data.topic -%} + {%- assign topic = item.og_gen_data.topic -%} + {%- endif -%} + {%- if item.og_gen_data.img -%} + {%- assign img = item.og_gen_data.img -%} + {%- endif -%} + {%- if item.og_gen_data.img2 -%} + {%- assign img2 = item.og_gen_data.img2 -%} + {%- endif -%} + {%- if item.og_gen_data.img_bg_color -%} + {%- assign img_bg_color = item.og_gen_data.img_bg_color -%} + {%- endif -%} + {%- if item.og_gen_data.img_offset -%} + {%- assign img_offset = item.og_gen_data.img_offset -%} + {%- endif -%} +{%- endif -%} diff --git a/index.md b/index.md index a408ae46f..7a359a1d2 100644 --- a/index.md +++ b/index.md @@ -3,7 +3,7 @@ title: thegymcms layout: default --- -{% if site.url == "http://0.0.0.0:4000" %} +{% if site.url == "http://0.0.0.0:4000" or site.url == "http://localhost:4000" %} # Local Development {% else %} # {{ site.url }} diff --git a/netlify.toml b/netlify.toml index 869953fcf..2d34f69e7 100644 --- a/netlify.toml +++ b/netlify.toml @@ -22,6 +22,13 @@ Access-Control-Allow-Origin = "*" Cache-Control = "public, max-age=31536000, immutable" +[build] +edge_functions = ".netlify/functions" + +[[edge_functions]] + function = "og" + path = "/og-image" + # dev branch build # https://dev--gymcms.netlify.com/ [context.dev]