diff --git a/_includes/community b/_includes/community index a9156448f..b8c6a9ef4 160000 --- a/_includes/community +++ b/_includes/community @@ -1 +1 @@ -Subproject commit a9156448f064e6e75b33482c7e6a1ba9eb0b7d6e +Subproject commit b8c6a9ef4511bbf70de9ef0666987c9cad449b54 diff --git a/components/Layout.tsx b/components/Layout.tsx index 2fad7765b..d5dc1ec83 100644 --- a/components/Layout.tsx +++ b/components/Layout.tsx @@ -36,8 +36,8 @@ export default function Layout({ ); useEffect(() => { - // Check if the URL contains "#community" - if (window.location.hash === '#community') { + // Check if the URL contains "community" + if (window.location.hash === 'community') { // Find the anchor element by its ID const target = document.getElementById('community'); @@ -191,7 +191,7 @@ const MainNavigation = () => { /> @@ -275,7 +275,7 @@ const MobileNav = () => { /> diff --git a/data/case-studies.json b/data/case-studies.json index 6c236cfd2..adec8b8f5 100644 --- a/data/case-studies.json +++ b/data/case-studies.json @@ -1,78 +1,65 @@ [ { - "title":"How JSON Schema Was an Obvious Choice at GitHub", - "summary":"At GitHub's Docs Engineering team, while shipping releases to production 20 times per day or more, JSON Schema is critical in increasing confidence in changes to data, content and APIs.", + "title": "How JSON Schema Was an Obvious Choice at GitHub", + "summary": "At GitHub's Docs Engineering team, while shipping releases to production 20 times per day or more, JSON Schema is critical in increasing confidence in changes to data, content and APIs.", "logo": "/img/logos/github-logo.png", - "links": - { - "lang": "URL1", - "url": "/blog/posts/github-case-study" - } - }, - { - "title":"How 6 River Systems saves time and boosts collaboration with JSON Schema", - "summary":"Explore the powerful impact of JSON Schema on 6 River Systems' fulfillment operations. Discover how they enabled enhanced collaboration, time savings, and data quality assurance, propelling their successful scaling journey.", - "logo": "/img/logos/6river-logo.svg", - "links": - { - "lang": "URL1", - "url": "/blog/posts/6-river-systems-case-study" - } - - }, - { - "title":"Transforming the technical recruiting industry with JSON Schema", - "summary":"Learn how Manfred used JSON Schema to transform the technical recruiting industry.", - "logo": "/img/logos/manfred-color.svg", - "links": - { - "lang": "URL1", - "url": "/blog/posts/manfred-case-study" - } - - }, - { - "title":"How Postman uses JSON Schema", - "summary":"Learn how JSON Schema continues to be a crucial component of the Postman API Platform and the API ecosystem.", - "logo": "/img/logos/sponsors/Postman_logo-orange.svg", - "links": - { - "lang": "URL1", - "url": "/blog/posts/postman-case-study" - } - - }, - { - "title":"Using JSON Schema at Remote to scale forms and data validations", - "summary":"Using JSON Schema at Remote was the first step to solving data validation and form generation problems across all levels at Remote.", - "logo": "/img/logos/remote-logo.png", - "links": - { - "lang": "URL1", - "url": "/blog/posts/remote-case-study" - } - - }, - { - "title":"How Tyler Technologies reduced its client feedback loop with JSON Schema", - "summary":"Using JSON Schema at Tyler Technologies meant showing added value to clients could take minutes rather than days or in some cases weeks.", - "logo": "/img/logos/tyler-tech-logo.svg", - "links": - { - "lang": "URL1", - "url": "/blog/posts/tyler-technologies-case-study" - } - - }, - { - "title":"How the W3C Web of Things brings JSON Schema to the Internet of Things", - "summary":"Using JSON Schema at the W3C Web of Things to create an interoperability layer so that different IoT platforms, protocols and standards can operate together", - "logo": "/img/logos/wot-logo.png", - "links": - { - "lang": "URL1", - "url": "/blog/posts/w3c-wot-case-study" - } - + "links": { + "lang": "URL1", + "url": "/blog/posts/github-case-study" } -] \ No newline at end of file + }, + { + "title": "How 6 River Systems saves time and boosts collaboration with JSON Schema", + "summary": "Explore the powerful impact of JSON Schema on 6 River Systems' fulfillment operations. Discover how they enabled enhanced collaboration, time savings, and data quality assurance, propelling their successful scaling journey.", + "logo": "/img/logos/6river-logo.svg", + "links": { + "lang": "URL1", + "url": "/blog/posts/6-river-systems-case-study" + } + }, + { + "title": "Transforming the technical recruiting industry with JSON Schema", + "summary": "Learn how Manfred used JSON Schema to transform the technical recruiting industry.", + "logo": "/img/logos/manfred-color.svg", + "links": { + "lang": "URL1", + "url": "/blog/posts/manfred-case-study" + } + }, + { + "title": "How Postman uses JSON Schema", + "summary": "Learn how JSON Schema continues to be a crucial component of the Postman API Platform and the API ecosystem.", + "logo": "/img/logos/sponsors/Postman_logo-orange.svg", + "links": { + "lang": "URL1", + "url": "/blog/posts/postman-case-study" + } + }, + { + "title": "Using JSON Schema at Remote to scale forms and data validations", + "summary": "Using JSON Schema at Remote was the first step to solving data validation and form generation problems across all levels at Remote.", + "logo": "/img/logos/remote-logo.png", + "links": { + "lang": "URL1", + "url": "/blog/posts/remote-case-study" + } + }, + { + "title": "How Tyler Technologies reduced its client feedback loop with JSON Schema", + "summary": "Using JSON Schema at Tyler Technologies meant showing added value to clients could take minutes rather than days or in some cases weeks.", + "logo": "/img/logos/tyler-tech-logo.svg", + "links": { + "lang": "URL1", + "url": "/blog/posts/tyler-technologies-case-study" + } + }, + { + "title": "How the W3C Web of Things brings JSON Schema to the Internet of Things", + "summary": "Using JSON Schema at the W3C Web of Things to create an interoperability layer so that different IoT platforms, protocols and standards can operate together", + "logo": "/img/logos/wot-logo.png", + "links": { + "lang": "URL1", + "url": "/blog/posts/w3c-wot-case-study" + } + } +] diff --git a/data/faq.json b/data/faq.json index 6146f0fe6..13ae1c384 100644 --- a/data/faq.json +++ b/data/faq.json @@ -1,50 +1,50 @@ [ - { - "id": 1, - "question": "What is JSON Schema?", - "answer": "JSON Schema is a vocabulary that allows you to annotate and validate JSON documents. It defines the structure, data types, and constraints of JSON data.", - "category": "general" - }, - { - "id": 2, - "question": "How do I create a simple JSON Schema?", - "answer": "You can create a simple JSON Schema using a JSON object with properties like 'type', 'properties', and 'required'. These define the data type, properties, and mandatory fields of your JSON document.", - "category": "general" - }, - { - "id": 3, - "question": "What is the purpose of 'type' in JSON Schema?", - "answer": "The 'type' keyword specifies the data type of the JSON value. It can be 'string', 'number', 'object', 'array', 'boolean', 'null', or a combination of these.", - "category": "general" - }, - { - "id": 4, - "question": "How can I define default values in a JSON Schema?", - "answer": "You can use the 'default' keyword to set a default value for a property in your JSON Schema. It provides a fallback value if the property is not present in the JSON document.", - "category": "general" - }, - { - "id": 5, - "question": "What is the significance of 'required' in JSON Schema?", - "answer": "The 'required' keyword is an array that specifies which properties must be present in a JSON document. It enforces that these properties are not omitted.", - "category": "general" - }, - { - "id": 6, - "question": "How can I validate a JSON document against a JSON Schema?", - "answer": "You can use various tools and libraries, such as AJV (Another JSON Schema Validator) in JavaScript, to validate a JSON document against a JSON Schema. These tools check if the document adheres to the specified schema rules.", - "category": "general" - }, - { - "id": 7, - "question": "What is the difference between 'object' and 'array' types in JSON Schema?", - "answer": "In JSON Schema, 'object' is used to define an object with named properties, while 'array' is used to define an ordered list of values. 'object' contains key-value pairs, whereas 'array' contains elements identified by their index.", - "category": "general" - }, - { - "id": 8, - "question": "Can I use JSON Schema to describe nested structures?", - "answer": "Yes, JSON Schema supports nested structures. You can define properties with their own JSON Schema, allowing you to describe complex hierarchical data.", - "category": "general" - } - ] \ No newline at end of file + { + "id": 1, + "question": "What is JSON Schema?", + "answer": "JSON Schema is a vocabulary that allows you to annotate and validate JSON documents. It defines the structure, data types, and constraints of JSON data.", + "category": "general" + }, + { + "id": 2, + "question": "How do I create a simple JSON Schema?", + "answer": "You can create a simple JSON Schema using a JSON object with properties like 'type', 'properties', and 'required'. These define the data type, properties, and mandatory fields of your JSON document.", + "category": "general" + }, + { + "id": 3, + "question": "What is the purpose of 'type' in JSON Schema?", + "answer": "The 'type' keyword specifies the data type of the JSON value. It can be 'string', 'number', 'object', 'array', 'boolean', 'null', or a combination of these.", + "category": "general" + }, + { + "id": 4, + "question": "How can I define default values in a JSON Schema?", + "answer": "You can use the 'default' keyword to set a default value for a property in your JSON Schema. It provides a fallback value if the property is not present in the JSON document.", + "category": "general" + }, + { + "id": 5, + "question": "What is the significance of 'required' in JSON Schema?", + "answer": "The 'required' keyword is an array that specifies which properties must be present in a JSON document. It enforces that these properties are not omitted.", + "category": "general" + }, + { + "id": 6, + "question": "How can I validate a JSON document against a JSON Schema?", + "answer": "You can use various tools and libraries, such as AJV (Another JSON Schema Validator) in JavaScript, to validate a JSON document against a JSON Schema. These tools check if the document adheres to the specified schema rules.", + "category": "general" + }, + { + "id": 7, + "question": "What is the difference between 'object' and 'array' types in JSON Schema?", + "answer": "In JSON Schema, 'object' is used to define an object with named properties, while 'array' is used to define an ordered list of values. 'object' contains key-value pairs, whereas 'array' contains elements identified by their index.", + "category": "general" + }, + { + "id": 8, + "question": "Can I use JSON Schema to describe nested structures?", + "answer": "Yes, JSON Schema supports nested structures. You can define properties with their own JSON Schema, allowing you to describe complex hierarchical data.", + "category": "general" + } +] diff --git a/package.json b/package.json index 7da28a8e7..e7bdbbe43 100644 --- a/package.json +++ b/package.json @@ -73,4 +73,4 @@ "tailwindcss": "^3.3.5", "typescript": "5.2.2" } -} \ No newline at end of file +} diff --git a/pages/community/config/imageData.json b/pages/community/config/imageData.json new file mode 100644 index 000000000..0893acbcb --- /dev/null +++ b/pages/community/config/imageData.json @@ -0,0 +1,318 @@ +[ + [ + { + "id": "item", + "img": "./img/avatars/benhutton.webp", + "alt": "benhutton" + }, + { + "id": "item", + "img": "./img/avatars/benjagm.webp", + "alt": "benjagm" + }, + { + "id": "item", + "img": "./img/avatars/gregsdennis.webp", + "alt": "gregs" + }, + { + "id": "item", + "img": "./img/avatars/jasondesrosiers.jpeg", + "alt": "jason" + }, + { + "id": "item", + "img": "./img/avatars/julian.webp", + "alt": "julian" + }, + { + "id": "item", + "img": "./img/contributers/melinda.png", + "alt": "melinda" + }, + { + "id": "item", + "img": "./img/avatars/jviotti.webp", + "alt": "jviotti" + }, + { + "id": "item", + "img": "./img/contributers/musemind.png", + "alt": "musemind" + } + ], + [ + { + "id": "item-2", + "img": "./img/contributers/akanksha-kushwaha.jpeg", + "alt": "aku1310" + }, + { + "id": "item-2", + "img": "./img/contributers/OlliesWorld.jpeg", + "alt": "roni" + }, + { + "id": "item-2", + "img": "./img/contributers/darhkvoyd.jpeg", + "alt": "DV" + }, + { + "id": "item-2", + "img": "./img/contributers/dairya.jpeg", + "alt": "dairya" + }, + { + "id": "item-2", + "img": "./img/contributers/paul-waller.jpeg", + "alt": "paul-waller" + }, + { + "id": "item-2", + "img": "./img/contributers/officeneerajsaini.jpeg", + "alt": "neeraj" + }, + { + "id": "item-2", + "img": "./img/contributers/jeel-rajodiya.jpeg", + "alt": "jeel" + }, + { + "id": "item-2", + "img": "./img/contributers/tamanna-verma.jpeg", + "alt": "tamana" + } + ], + [ + { + "id": "item-3", + "img": "./img/contributers/mintu-gogoi.jpeg", + "alt": "mintu" + }, + { + "id": "item-3", + "img": "./img/contributers/aditya-sharma.jpeg", + "alt": "aditya" + }, + { + "id": "item-3", + "img": "./img/contributers/satyam-kumar.jpeg", + "alt": "satyam" + }, + { + "id": "item-3", + "img": "./img/contributers/ayush_tiwari.jpeg", + "alt": "ayush" + }, + { + "id": "item-3", + "img": "./img/contributers/sahil_shadwal.jpeg", + "alt": "sahil" + }, + { + "id": "item-3", + "img": "./img/contributers/julian-cataldo.jpeg", + "alt": "julian" + }, + { + "id": "item-3", + "img": "./img/contributers/sandrina.jpeg", + "alt": "sandrina" + }, + { + "id": "item-3", + "img": "./img/contributers/lateapexe.jpeg", + "alt": "late" + } + ], + [ + { + "id": "item-4", + "img": "./img/contributers/alok-gupta.jpeg", + "alt": "alok" + }, + { + "id": "item-4", + "img": "./img/contributers/michael-sharber.jpeg", + "alt": "michael" + }, + { + "id": "item-4", + "img": "./img/contributers/gabengar.png", + "alt": "gabengar" + }, + { + "id": "item-4", + "img": "./img/contributers/ali_haider.jpeg", + "alt": "ali" + }, + { + "id": "item-4", + "img": "./img/contributers/saksham_mishra.jpeg", + "alt": "saksham" + }, + { + "id": "item-4", + "img": "./img/contributers/sarthak.jpeg", + "alt": "sarthak" + }, + { + "id": "item-4", + "img": "./img/contributers/jayprakash.jpeg", + "alt": "jayprakash" + }, + { + "id": "item-4", + "img": "./img/contributers/vinitpandit.jpeg", + "alt": "vinit" + } + ], + [ + { + "id": "item-5", + "img": "./img/contributers/dauinh.jpeg", + "alt": "linh" + }, + { + "id": "item-5", + "img": "./img/contributers/kalivtrope.jpeg", + "alt": "kalivtrope" + }, + { + "id": "item-5", + "img": "./img/contributers/adityasingh.jpeg", + "alt": "aditya" + }, + { + "id": "item-5", + "img": "./img/contributers/Maykkkk.jpeg", + "alt": "maykkkk" + }, + { + "id": "item-5", + "img": "./img/contributers/bcherny.jpeg", + "alt": "boris" + }, + { + "id": "item-5", + "img": "./img/contributers/Saumya40-codes.jpeg", + "alt": "saumya" + }, + { + "id": "item-5", + "img": "./img/contributers/prajjwalyd.jpeg", + "alt": "prajjwal" + }, + { + "id": "item-5", + "img": "./img/contributers/abhishek-403.png", + "alt": "abhishek" + } + ], + [ + { + "id": "item-6", + "img": "./img/contributers/CarstenWickner.jpeg", + "alt": "Carsten" + }, + { + "id": "item-6", + "img": "./img/contributers/kx412764776.jpeg", + "alt": "kx412764776" + }, + { + "id": "item-6", + "img": "./img/contributers/unguul.jpeg", + "alt": "unguul" + }, + { + "id": "item-6", + "img": "./img/contributers/Akshaybagai52.jpeg", + "alt": "akshay" + }, + { + "id": "item-6", + "img": "./img/contributers/Michael-Obele.jpeg", + "alt": "michael" + }, + { + "id": "item-6", + "img": "./img/contributers/karenetheridge.jpeg", + "alt": "karene" + }, + { + "id": "item-6", + "img": "./img/contributers/eddyashton.jpeg", + "alt": "eddy" + }, + { + "id": "item-6", + "img": "./img/contributers/lalitkumawat1m.png", + "alt": "lalit" + } + ], + [ + { + "id": "item-7", + "img": "./img/contributers/justin-tay.png", + "alt": "justin" + }, + { + "id": "item-7", + "img": "./img/contributers/ThomasAribart.jpeg", + "alt": "thomas" + }, + { + "id": "item-7", + "img": "./img/contributers/Viicos.jpeg", + "alt": "viicos" + }, + { + "id": "item-7", + "img": "./img/contributers/vm-001.png", + "alt": "vm-001" + }, + { + "id": "item-7", + "img": "./img/contributers/big-andy-coates.png", + "alt": "big-andy-coates" + }, + { + "id": "item-7", + "img": "./img/contributers/smoya.jpeg", + "alt": "smoya" + }, + { + "id": "item-7", + "img": "./img/contributers/ota-meshi.jpeg", + "alt": "ota-meshi" + }, + { + "id": "item-7", + "img": "./img/contributers/michaelmior.jpeg", + "alt": "michaelmior" + } + ], + [ + { + "id": "item-8", + "img": "./img/contributers/maverox.jpeg", + "alt": "maverox" + }, + { + "id": "item-8", + "img": "./img/contributers/kurtmckee.png", + "alt": "kurtmckee" + }, + { + "id": "item-8", + "img": "./img/contributers/Mvishal123.jpeg", + "alt": "vishal" + }, + { + "id": "item-8", + "img": "./img/contributers/SimonDMC.png", + "alt": "simon" + } + ] +] diff --git a/pages/community/index.page.tsx b/pages/community/index.page.tsx new file mode 100644 index 000000000..ae4ecaf8f --- /dev/null +++ b/pages/community/index.page.tsx @@ -0,0 +1,518 @@ +import React from 'react'; +import { getLayout } from '~/components/SiteLayout'; +import { SectionContext } from '~/context'; +import imageData from './config/imageData.json'; +import fs from 'fs'; +import matter from 'gray-matter'; +const PATH = 'pages/blog/posts'; +import readingTime from 'reading-time'; +import Link from 'next/link'; +import TextTruncate from 'react-text-truncate'; +import { GetStaticProps } from 'next'; +import Card from '~/components/Card'; + +/* eslint-disable */ +import axios from 'axios'; +import ical from 'node-ical'; +import moment from 'moment-timezone'; + +/* eslint-enable */ +export const getStaticProps: GetStaticProps = async () => { + const files = fs.readdirSync(PATH); + const blogPosts = files + .filter((file) => file.substr(-3) === '.md') + .map((fileName) => { + const slug = fileName.replace('.md', ''); + const fullFileName = fs.readFileSync( + `pages/blog/posts/${slug}.md`, + 'utf-8', + ); + const { data: frontmatter, content } = matter(fullFileName); + return { + slug: slug, + frontmatter, + content, + }; + }) + .sort((a, b) => { + const dateA = new Date(a.frontmatter.date).getTime(); + const dateB = new Date(b.frontmatter.date).getTime(); + return dateA < dateB ? 1 : -1; + }) + .slice(0, 5); + + // Function to fetch the remote iCal file + async function fetchRemoteICalFile(url: string) { + try { + const response = await axios.get(url, { method: 'no-cors' }); + return response.data; + } catch (error) { + console.error('Error fetching iCal file:', error); + return null; + } + } + // Example usage: + const remoteICalUrl = + 'https://calendar.google.com/calendar/ical/c_8r4g9r3etmrmt83fm2gljbatos%40group.calendar.google.com/public/basic.ics'; // Replace with the actual URL + const datesInfo = await fetchRemoteICalFile(remoteICalUrl) + .then((icalData) => printEventsForNextFourWeeks(ical.parseICS(icalData))) + .catch((error) => console.error('Error:', error)); + // console.log('this is fetched data', datesInfo) + return { + props: { + blogPosts, + datesInfo, + fallback: false, + }, + }; +}; +// Function to filter and print events for the next 4 weeks from today +function printEventsForNextFourWeeks(icalData: { [x: string]: any }) { + const arrayDates = []; + if (!icalData) { + console.error('iCal data is empty or invalid.'); + return; + } + + // Calculate the range of dates for the next 4 weeks from today + const today = moment().startOf('day'); + const nextFourWeeksEnd = moment().add(4, 'weeks').endOf('day'); + + // Loop through the events in the iCal data + for (const k in icalData) { + const event = icalData[k]; + + if (event.type === 'VEVENT') { + const title = event.summary; + + const timezoneL = moment.tz.guess(); // Default to UTC if timezone information is not provided + const startDate = moment.tz(event.start, timezoneL); + + // Complicated case - if an RRULE exists, handle multiple recurrences of the event. + if (event.rrule !== undefined) { + // For recurring events, get the set of event start dates that fall within the range + // of dates we're looking for. + const dates = event.rrule.between( + today.toDate(), + nextFourWeeksEnd.toDate(), + true, + ); + + // Loop through the set of date entries to see which recurrences should be printed. + for (const date of dates) { + const startDate = moment.tz(date, timezoneL); + + // Check if the event falls within the next 4 weeks from today + if (startDate.isBetween(today, nextFourWeeksEnd, undefined, '[]')) { + const dateTimezone = moment.tz.zone(event.start.tz); + const localTimezone = moment.tz.guess(); + const tz = + event.rrule.origOptions.tzid === localTimezone + ? event.rrule.origOptions.tzid + : localTimezone; + const timezone = moment.tz.zone(tz); + let offset; + if (timezone && dateTimezone) + offset = timezone.utcOffset(date) - dateTimezone.utcOffset(date); + const newDate = moment(date).add(offset, 'minutes').toDate(); + + const start = moment(newDate); + const utcDate = start.utc(); + + const time = utcDate.format('MMMM Do YYYY, h:mm a'); + const day = utcDate.format('D'); + const parsedStartDate = utcDate.format('YYYY-MM-DD HH:mm:ss'); + arrayDates.push({ + title, + time, + day, + timezone: 'UTC', + parsedStartDate, + }); + } + } + } else { + // Simple case - no recurrences, just print out the calendar event. + if (startDate.isBetween(today, nextFourWeeksEnd, undefined, '[]')) { + const utcDate = startDate.utc(); + + const time = utcDate.format('MMMM Do YYYY, h:mm a'); + const day = utcDate.format('D'); + const parsedStartDate = startDate.format('YYYY-MM-DD HH:mm:ss'); + arrayDates.push({ + title, + time, + day, + timezone: 'UTC', + parsedStartDate, + }); + } + } + } + } + + arrayDates.sort( + (x, y) => + new Date(x.parsedStartDate).getTime() - + new Date(y.parsedStartDate).getTime(), + ); + + return arrayDates; +} + +export default function communityPages(props: any) { + const blogPosts = props.blogPosts; + const timeToRead = Math.ceil(readingTime(blogPosts[0].content).minutes); + + return ( + +
+
+
+
+
+

+ Welcome to the +
JSON Schema Community +

+
+
+

+ Join the Community to learn, share ideas, ask questions, build + JSON Schema tooling, and get involved in the future of the + Spec. +

+
+
+ +
+
+
+
+
+
+ {imageData[0].map((avatar, index) => ( + {avatar.alt} + ))} +
+ +
+ {imageData[1].map((avatar, index) => ( + {avatar.alt} + ))} +
+
+ {imageData[2].map((avatar, index) => ( + {avatar.alt} + ))} +
+ +
+ {imageData[3].map((avatar, index) => ( + {avatar.alt} + ))} +
+
+ {imageData[4].map((avatar, index) => ( + {avatar.alt} + ))} +
+ +
+ {imageData[5].map((avatar, index) => ( + {avatar.alt} + ))} +
+
+ {imageData[6].map((avatar, index) => ( + {avatar.alt} + ))} +
+ +
+ {imageData[7].map((avatar, index) => ( + {avatar.alt} + ))} +
+
+
+
+
+
+ + +
+
+
+
+
+
+

+ Ambassadors Program +

+

+ The JSON Schema Ambassadors Program recognize the people who + drive adoption, innovation and knowledge sharing in the JSON + Schema community. +

+ +
+
+
+
+ +
+
+
+

+ Join the JSON Schema Slack workspace! +

+

+ Join our Slack to ask questions, get feedback on your + projects, and connect with +5000 practitioners and experts. +

+ +
+
+
+
+
+ +
+
+
+
+

+ JSON Schema Community Meetings & Events +

+

+ We hold monthly Office Hours and weekly Open Community Working + Meetings. Office Hours are every first Tuesday of the month at + 15:00 BST, and by appointment. Open Community Working Meetings + are every Monday at 14:00 PT. +

+ +
+
+
+
+

+ Upcoming events +

+ {props.datesInfo.map((event: any, index: any) => ( +
+
+

{event.day}

+
+
+

+ {event.title} +
+ {event.time}({event.timezone}) +

+
+
+ ))} +
+
+
+
+
+
+
+
+

+ Welcome to +
+ the JSON Schema Blog! +

+

+

+ Want to publish a blog post? Check out the  + + guidelines + +  and submit yours! +

{' '} +

+ +
+
+
+
+ + +

+ {blogPosts[0].frontmatter.title} +

+
+ +
+
+
+
+

+ {blogPosts[0].frontmatter.authors[0].name} +

+
+ + {blogPosts[0].frontmatter.date} ·{timeToRead}{' '} + min min read + +
+
+
+ + +
+
+
+
+
+ + ); +} + +communityPages.getLayout = getLayout; diff --git a/public/icons/contribute.svg b/public/icons/contribute.svg new file mode 100644 index 000000000..dd9152e8c --- /dev/null +++ b/public/icons/contribute.svg @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/icons/roadmap.svg b/public/icons/roadmap.svg new file mode 100644 index 000000000..819c40d8f --- /dev/null +++ b/public/icons/roadmap.svg @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/public/img/contributers/Akshaybagai52.jpeg b/public/img/contributers/Akshaybagai52.jpeg new file mode 100644 index 000000000..94ffee06a Binary files /dev/null and b/public/img/contributers/Akshaybagai52.jpeg differ diff --git a/public/img/contributers/CarstenWickner.jpeg b/public/img/contributers/CarstenWickner.jpeg new file mode 100644 index 000000000..ec4edb609 Binary files /dev/null and b/public/img/contributers/CarstenWickner.jpeg differ diff --git a/public/img/contributers/Maykkkk.jpeg b/public/img/contributers/Maykkkk.jpeg new file mode 100644 index 000000000..14b000d07 Binary files /dev/null and b/public/img/contributers/Maykkkk.jpeg differ diff --git a/public/img/contributers/Michael-Obele.jpeg b/public/img/contributers/Michael-Obele.jpeg new file mode 100644 index 000000000..aa93ce8c8 Binary files /dev/null and b/public/img/contributers/Michael-Obele.jpeg differ diff --git a/public/img/contributers/Mvishal123.jpeg b/public/img/contributers/Mvishal123.jpeg new file mode 100644 index 000000000..339e19560 Binary files /dev/null and b/public/img/contributers/Mvishal123.jpeg differ diff --git a/public/img/contributers/OlliesWorld.jpeg b/public/img/contributers/OlliesWorld.jpeg new file mode 100644 index 000000000..9f4441dad Binary files /dev/null and b/public/img/contributers/OlliesWorld.jpeg differ diff --git a/public/img/contributers/Saumya40-codes.jpeg b/public/img/contributers/Saumya40-codes.jpeg new file mode 100644 index 000000000..46504d8c4 Binary files /dev/null and b/public/img/contributers/Saumya40-codes.jpeg differ diff --git a/public/img/contributers/SimonDMC.png b/public/img/contributers/SimonDMC.png new file mode 100644 index 000000000..dee52c5b9 Binary files /dev/null and b/public/img/contributers/SimonDMC.png differ diff --git a/public/img/contributers/ThomasAribart.jpeg b/public/img/contributers/ThomasAribart.jpeg new file mode 100644 index 000000000..57e04b4f3 Binary files /dev/null and b/public/img/contributers/ThomasAribart.jpeg differ diff --git a/public/img/contributers/Viicos.jpeg b/public/img/contributers/Viicos.jpeg new file mode 100644 index 000000000..44334174a Binary files /dev/null and b/public/img/contributers/Viicos.jpeg differ diff --git a/public/img/contributers/abhishek-403.png b/public/img/contributers/abhishek-403.png new file mode 100644 index 000000000..e54849382 Binary files /dev/null and b/public/img/contributers/abhishek-403.png differ diff --git a/public/img/contributers/aditya-sharma.jpeg b/public/img/contributers/aditya-sharma.jpeg new file mode 100644 index 000000000..354f7f06b Binary files /dev/null and b/public/img/contributers/aditya-sharma.jpeg differ diff --git a/public/img/contributers/adityasingh.jpeg b/public/img/contributers/adityasingh.jpeg new file mode 100644 index 000000000..5c70cdc95 Binary files /dev/null and b/public/img/contributers/adityasingh.jpeg differ diff --git a/public/img/contributers/akanksha-kushwaha.jpeg b/public/img/contributers/akanksha-kushwaha.jpeg new file mode 100644 index 000000000..81a650439 Binary files /dev/null and b/public/img/contributers/akanksha-kushwaha.jpeg differ diff --git a/public/img/contributers/ali_haider.jpeg b/public/img/contributers/ali_haider.jpeg new file mode 100644 index 000000000..460f7dd27 Binary files /dev/null and b/public/img/contributers/ali_haider.jpeg differ diff --git a/public/img/contributers/alok-gupta.jpeg b/public/img/contributers/alok-gupta.jpeg new file mode 100644 index 000000000..e6fd64076 Binary files /dev/null and b/public/img/contributers/alok-gupta.jpeg differ diff --git a/public/img/contributers/alombarte.jpeg b/public/img/contributers/alombarte.jpeg new file mode 100644 index 000000000..1507eca3f Binary files /dev/null and b/public/img/contributers/alombarte.jpeg differ diff --git a/public/img/contributers/ayush_tiwari.jpeg b/public/img/contributers/ayush_tiwari.jpeg new file mode 100644 index 000000000..88b7a0d89 Binary files /dev/null and b/public/img/contributers/ayush_tiwari.jpeg differ diff --git a/public/img/contributers/bcherny.jpeg b/public/img/contributers/bcherny.jpeg new file mode 100644 index 000000000..391ac6352 Binary files /dev/null and b/public/img/contributers/bcherny.jpeg differ diff --git a/public/img/contributers/beda-hammerschmidt.jpeg b/public/img/contributers/beda-hammerschmidt.jpeg new file mode 100644 index 000000000..ee769b8cf Binary files /dev/null and b/public/img/contributers/beda-hammerschmidt.jpeg differ diff --git a/public/img/contributers/big-andy-coates.png b/public/img/contributers/big-andy-coates.png new file mode 100644 index 000000000..1c1027dc0 Binary files /dev/null and b/public/img/contributers/big-andy-coates.png differ diff --git a/public/img/contributers/dairya.jpeg b/public/img/contributers/dairya.jpeg new file mode 100644 index 000000000..3bcd5b85a Binary files /dev/null and b/public/img/contributers/dairya.jpeg differ diff --git a/public/img/contributers/darhkvoyd.jpeg b/public/img/contributers/darhkvoyd.jpeg new file mode 100644 index 000000000..c3081b042 Binary files /dev/null and b/public/img/contributers/darhkvoyd.jpeg differ diff --git a/public/img/contributers/dauinh.jpeg b/public/img/contributers/dauinh.jpeg new file mode 100644 index 000000000..613ed0c59 Binary files /dev/null and b/public/img/contributers/dauinh.jpeg differ diff --git a/public/img/contributers/eddyashton.jpeg b/public/img/contributers/eddyashton.jpeg new file mode 100644 index 000000000..a69d9386f Binary files /dev/null and b/public/img/contributers/eddyashton.jpeg differ diff --git a/public/img/contributers/gabengar.png b/public/img/contributers/gabengar.png new file mode 100644 index 000000000..6024056b6 Binary files /dev/null and b/public/img/contributers/gabengar.png differ diff --git a/public/img/contributers/jayprakash.jpeg b/public/img/contributers/jayprakash.jpeg new file mode 100644 index 000000000..3921e8829 Binary files /dev/null and b/public/img/contributers/jayprakash.jpeg differ diff --git a/public/img/contributers/jeel-rajodiya.jpeg b/public/img/contributers/jeel-rajodiya.jpeg new file mode 100644 index 000000000..a2654050b Binary files /dev/null and b/public/img/contributers/jeel-rajodiya.jpeg differ diff --git a/public/img/contributers/jeremy-faden.jpeg b/public/img/contributers/jeremy-faden.jpeg new file mode 100644 index 000000000..6fc2654be Binary files /dev/null and b/public/img/contributers/jeremy-faden.jpeg differ diff --git a/public/img/contributers/jeremy-fiel.jpeg b/public/img/contributers/jeremy-fiel.jpeg new file mode 100644 index 000000000..93f1bb58b Binary files /dev/null and b/public/img/contributers/jeremy-fiel.jpeg differ diff --git a/public/img/contributers/jsonschema.png b/public/img/contributers/jsonschema.png new file mode 100644 index 000000000..c7618f2ea Binary files /dev/null and b/public/img/contributers/jsonschema.png differ diff --git a/public/img/contributers/julian-cataldo.jpeg b/public/img/contributers/julian-cataldo.jpeg new file mode 100644 index 000000000..ba44bb430 Binary files /dev/null and b/public/img/contributers/julian-cataldo.jpeg differ diff --git a/public/img/contributers/justin-tay.png b/public/img/contributers/justin-tay.png new file mode 100644 index 000000000..55e92be27 Binary files /dev/null and b/public/img/contributers/justin-tay.png differ diff --git a/public/img/contributers/kalivtrope.jpeg b/public/img/contributers/kalivtrope.jpeg new file mode 100644 index 000000000..3e93956ca Binary files /dev/null and b/public/img/contributers/kalivtrope.jpeg differ diff --git a/public/img/contributers/karenetheridge.jpeg b/public/img/contributers/karenetheridge.jpeg new file mode 100644 index 000000000..3a0c12b78 Binary files /dev/null and b/public/img/contributers/karenetheridge.jpeg differ diff --git a/public/img/contributers/kurtmckee.png b/public/img/contributers/kurtmckee.png new file mode 100644 index 000000000..b76674d3c Binary files /dev/null and b/public/img/contributers/kurtmckee.png differ diff --git a/public/img/contributers/kx412764776.jpeg b/public/img/contributers/kx412764776.jpeg new file mode 100644 index 000000000..4c2bc6a81 Binary files /dev/null and b/public/img/contributers/kx412764776.jpeg differ diff --git a/public/img/contributers/lalitkumawat1m.png b/public/img/contributers/lalitkumawat1m.png new file mode 100644 index 000000000..3f452352c Binary files /dev/null and b/public/img/contributers/lalitkumawat1m.png differ diff --git a/public/img/contributers/lateapexe.jpeg b/public/img/contributers/lateapexe.jpeg new file mode 100644 index 000000000..2fd1dcc14 Binary files /dev/null and b/public/img/contributers/lateapexe.jpeg differ diff --git a/public/img/contributers/matteo-collina.jpeg b/public/img/contributers/matteo-collina.jpeg new file mode 100644 index 000000000..0d692b2fb Binary files /dev/null and b/public/img/contributers/matteo-collina.jpeg differ diff --git a/public/img/contributers/maverox.jpeg b/public/img/contributers/maverox.jpeg new file mode 100644 index 000000000..694e47d58 Binary files /dev/null and b/public/img/contributers/maverox.jpeg differ diff --git a/public/img/contributers/melinda.png b/public/img/contributers/melinda.png new file mode 100644 index 000000000..f31b14791 Binary files /dev/null and b/public/img/contributers/melinda.png differ diff --git a/public/img/contributers/michael-sharber.jpeg b/public/img/contributers/michael-sharber.jpeg new file mode 100644 index 000000000..3935cbee2 Binary files /dev/null and b/public/img/contributers/michael-sharber.jpeg differ diff --git a/public/img/contributers/michaelmior.jpeg b/public/img/contributers/michaelmior.jpeg new file mode 100644 index 000000000..4895f4c6e Binary files /dev/null and b/public/img/contributers/michaelmior.jpeg differ diff --git a/public/img/contributers/mintu-gogoi.jpeg b/public/img/contributers/mintu-gogoi.jpeg new file mode 100644 index 000000000..7981a067a Binary files /dev/null and b/public/img/contributers/mintu-gogoi.jpeg differ diff --git a/public/img/contributers/musemind.png b/public/img/contributers/musemind.png new file mode 100644 index 000000000..d9f083691 Binary files /dev/null and b/public/img/contributers/musemind.png differ diff --git a/public/img/contributers/officeneerajsaini.jpeg b/public/img/contributers/officeneerajsaini.jpeg new file mode 100644 index 000000000..7a4a63e39 Binary files /dev/null and b/public/img/contributers/officeneerajsaini.jpeg differ diff --git a/public/img/contributers/ota-meshi.jpeg b/public/img/contributers/ota-meshi.jpeg new file mode 100644 index 000000000..0c55f5ebd Binary files /dev/null and b/public/img/contributers/ota-meshi.jpeg differ diff --git a/public/img/contributers/paul-waller.jpeg b/public/img/contributers/paul-waller.jpeg new file mode 100644 index 000000000..c41f27c1f Binary files /dev/null and b/public/img/contributers/paul-waller.jpeg differ diff --git a/public/img/contributers/prajjwalyd.jpeg b/public/img/contributers/prajjwalyd.jpeg new file mode 100644 index 000000000..d9e70e3a2 Binary files /dev/null and b/public/img/contributers/prajjwalyd.jpeg differ diff --git a/public/img/contributers/prince-rajput.jpeg b/public/img/contributers/prince-rajput.jpeg new file mode 100644 index 000000000..435ca3c01 Binary files /dev/null and b/public/img/contributers/prince-rajput.jpeg differ diff --git a/public/img/contributers/sahil_shadwal.jpeg b/public/img/contributers/sahil_shadwal.jpeg new file mode 100644 index 000000000..130e0bd4d Binary files /dev/null and b/public/img/contributers/sahil_shadwal.jpeg differ diff --git a/public/img/contributers/saksham_mishra.jpeg b/public/img/contributers/saksham_mishra.jpeg new file mode 100644 index 000000000..f9f78301c Binary files /dev/null and b/public/img/contributers/saksham_mishra.jpeg differ diff --git a/public/img/contributers/sandrina.jpeg b/public/img/contributers/sandrina.jpeg new file mode 100644 index 000000000..02a33857c Binary files /dev/null and b/public/img/contributers/sandrina.jpeg differ diff --git a/public/img/contributers/sarthak.jpeg b/public/img/contributers/sarthak.jpeg new file mode 100644 index 000000000..4548e0359 Binary files /dev/null and b/public/img/contributers/sarthak.jpeg differ diff --git a/public/img/contributers/satyam-kumar.jpeg b/public/img/contributers/satyam-kumar.jpeg new file mode 100644 index 000000000..ebf63c3ab Binary files /dev/null and b/public/img/contributers/satyam-kumar.jpeg differ diff --git a/public/img/contributers/smoya.jpeg b/public/img/contributers/smoya.jpeg new file mode 100644 index 000000000..ef4cf47ec Binary files /dev/null and b/public/img/contributers/smoya.jpeg differ diff --git a/public/img/contributers/tamanna-verma.jpeg b/public/img/contributers/tamanna-verma.jpeg new file mode 100644 index 000000000..18859ea94 Binary files /dev/null and b/public/img/contributers/tamanna-verma.jpeg differ diff --git a/public/img/contributers/tobie.jpeg b/public/img/contributers/tobie.jpeg new file mode 100644 index 000000000..7efe42e93 Binary files /dev/null and b/public/img/contributers/tobie.jpeg differ diff --git a/public/img/contributers/unguul.jpeg b/public/img/contributers/unguul.jpeg new file mode 100644 index 000000000..3b99bc2d1 Binary files /dev/null and b/public/img/contributers/unguul.jpeg differ diff --git a/public/img/contributers/vinitpandit.jpeg b/public/img/contributers/vinitpandit.jpeg new file mode 100644 index 000000000..2c2e7d424 Binary files /dev/null and b/public/img/contributers/vinitpandit.jpeg differ diff --git a/public/img/contributers/vm-001.png b/public/img/contributers/vm-001.png new file mode 100644 index 000000000..679c0fb94 Binary files /dev/null and b/public/img/contributers/vm-001.png differ diff --git a/public/img/event/Json-Schema-Blog.png b/public/img/event/Json-Schema-Blog.png new file mode 100644 index 000000000..1c44e7d57 Binary files /dev/null and b/public/img/event/Json-Schema-Blog.png differ diff --git a/public/img/event/meet.png b/public/img/event/meet.png new file mode 100644 index 000000000..b419ae063 Binary files /dev/null and b/public/img/event/meet.png differ diff --git a/public/img/home-page/slack.png b/public/img/home-page/slack.png new file mode 100644 index 000000000..7b5d6a1e5 Binary files /dev/null and b/public/img/home-page/slack.png differ diff --git a/styles/globals.css b/styles/globals.css index 2ef75323b..be9839cd7 100644 --- a/styles/globals.css +++ b/styles/globals.css @@ -44,42 +44,41 @@ html { } /* .herobtn { */ - /* background-color: transparent !important; */ - /* justify-content: center; */ - /* width: 168px; */ - /* height: 32px; */ - /* padding: 8px 8px; */ - /* margin-right: 10px; */ - /* display: flex; */ - /* border: 1px solid #E3E8EE; +/* background-color: transparent !important; */ +/* justify-content: center; */ +/* width: 168px; */ +/* height: 32px; */ +/* padding: 8px 8px; */ +/* margin-right: 10px; */ +/* display: flex; */ +/* border: 1px solid #E3E8EE; border-radius: 4px; */ /* } */ /* @media (max-width: 1027px) { */ - .DocSearch-Button-Container { - height: 40px; - padding: 0px; - border: none; - } +.DocSearch-Button-Container { + height: 40px; + padding: 0px; + border: none; +} - .DocSearch-Button { - margin: 0; - } +.DocSearch-Button { + margin: 0; +} - .DocSearch-Button-Placeholder { - display: none; - } +.DocSearch-Button-Placeholder { + display: none; +} - .DocSearch-Search-Icon { - width: 23px; - height: 23px; - } - +.DocSearch-Search-Icon { + width: 23px; + height: 23px; +} - .herobtn .DocSearch-Button-Container { - margin-right: 4px; - margin-left: 4px; - } +.herobtn .DocSearch-Button-Container { + margin-right: 4px; + margin-left: 4px; +} /* } */ @media (max-width: 450px) { @@ -128,8 +127,6 @@ border-radius: 4px; */ margin-left: 40px; } - - .search-input span { margin-left: 15px; } @@ -210,12 +207,49 @@ border-radius: 4px; */ margin-top: 4.4rem; } +.top-12 { + top: 48px; +} -@layer base{ - body { - @apply dark:bg-slate-800 bg-white - } +.bg-ambassador { + background-image: url(/img/avatars/benhutton.webp); } +.bg-slack { + background-image: url(/img/home-page/slack.png); + background-size: 100% 100%; +} +.bg-meeting { + background-image: url(/img/event/meet.png); +} +.bg-blog { + background-image: url(/img/event/Json-Schema-Blog.png); +} + +.bg-index-0 { + background-color: #a5b4fc8a; +} + +.bg-index-1 { + background-color: #fca5a582; +} + +.bg-index-2 { + background-color: #fdbb7483; +} + +.bg-index-3 { + background-color: #86efad85; +} + +.bg-index-4 { + background-color: #fddf4784; +} + +@layer base { + body { + @apply dark:bg-slate-800 bg-white; + } +}