diff --git a/assets/docs/fragments/cli-installation.md b/assets/docs/fragments/cli-installation.md index 67a0796c852..ea6f57b9cca 100644 --- a/assets/docs/fragments/cli-installation.md +++ b/assets/docs/fragments/cli-installation.md @@ -29,6 +29,16 @@ You can install in Linux via `dpkg`, a debian package manager: 1. `curl -OL https://github.com/asyncapi/cli/releases/latest/download/asyncapi.deb` 2. `sudo dpkg -i asyncapi.deb` + + +
+Windows + +For Windows, install the appropriate installer and follow the default installation steps to complete the installation process. + +Download [asyncapi.x64.exe](https://github.com/asyncapi/cli/releases/latest/download/asyncapi.x64.exe) for 64-bit Windows and [asyncapi.x86.exe](https://github.com/asyncapi/cli/releases/latest/download/asyncapi.x86.exe) for 32-bit Windows. + +
diff --git a/components/TOC.js b/components/TOC.js index 7cf10424a5e..1424e9b51db 100644 --- a/components/TOC.js +++ b/components/TOC.js @@ -18,7 +18,7 @@ export default function TOC({ //For TOC rendering in specification files in the spec repo we have "a" tags added manually to the spec markdown document //MDX takes these "a" tags and uses them to render the "id" for headers like a-namedefinitionsapplicationaapplication //slugWithATag contains transformed heading name that is later used for scroll spy identification - slugWithATag: item.content.replace(/<|>|"|\\|\/|=/gi, '').replace(/\s/gi, '-').toLowerCase() + slugWithATag: item.content.replace(/[<>?!:`'."\\\/=]/gi, '').replace(/\s/gi, '-').toLowerCase() })); const [open, setOpen] = useState(false); diff --git a/components/campaigns/AnnoucementHero.js b/components/campaigns/AnnoucementHero.js index d186656538a..f85a6cca4e7 100644 --- a/components/campaigns/AnnoucementHero.js +++ b/components/campaigns/AnnoucementHero.js @@ -1,35 +1,28 @@ -import YouTube from 'react-youtube-embed' +import Paragraph from '../typography/Paragraph' import Button from '../buttons/Button' import Heading from '../typography/Heading' import Container from '../layout/Container' +import AnnouncementRemainingDays from './AnnouncementRamainingDays' -function getConferenceDetails() { - const day = new Date().getUTCDate(); +function shouldShowBanner() { const month = new Date().getUTCMonth(); const year = new Date().getUTCFullYear(); - - // month=10 is November - if (year > 2022 || month !== 10) { - return; - } - - switch (day) { - // 3rd November - case 3: return { day: 1, ytId: 'NTHsezlKBh8' }; - // 4th November - case 4: return { day: 2, ytId: '8khuAfL7TSE' }; - // 5th November - case 5: return { day: 3, ytId: 'R8PYWXDDZbI' }; + + //month=4 is May + if (year > 2023 || month !== 4) { + return false; } + return true; } export default function AnnouncementHero({ className = '', small = false, hideVideo = false }) { - return null; + //return null; - const details = getConferenceDetails(); - if (!details) return null; + const showBanner = shouldShowBanner(); + if (!showBanner) return null; - const { day, ytId } = details; + const cfpDeadline = '2023-05-31T06:00:00Z' + return (
- AsyncAPI Conference 2022 Day {day} is running! + AsyncAPI Conf on Tour 2023 - {!hideVideo && ( -
- -
- )} -
- {hideVideo && ( -
diff --git a/components/layout/DocsLayout.js b/components/layout/DocsLayout.js index d38aa15773c..14d0fc96bd8 100644 --- a/components/layout/DocsLayout.js +++ b/components/layout/DocsLayout.js @@ -17,13 +17,26 @@ import { SearchButton, DOCS_INDEX_NAME } from '../AlgoliaSearch'; import IconLoupe from '../icons/Loupe'; import { getAllPosts } from '../../lib/api' import Link from 'next/link' +import editOptions from '../../config/edit-page-config.json' + function generateEditLink(post) { - if (post.slug.includes('/specifications/')) { - return Edit this page on GitHub - } - return Edit this page on GitHub -} + let last=post.id.substring(post.id.lastIndexOf("/") + 1); + const target=editOptions.find(edit=>{ return post.slug.includes(edit.value)}); + const editHref = target.href; + const hrefList = editHref.split('/'); + const lastListElement = hrefList[hrefList.length - 1].split('.'); + const isHrefToFile = lastListElement.length > 1; + const EditPage="Edit this page on GitHub" + + if(target.value==""){ + return {EditPage} + } + if (isHrefToFile) last="" + return {EditPage} + + + } export default function DocsLayout({ post, navItems = {}, children }) { const posts = getAllPosts() diff --git a/config/TSC_MEMBERS.json b/config/TSC_MEMBERS.json index c5053b31d86..91bab761dfd 100644 --- a/config/TSC_MEMBERS.json +++ b/config/TSC_MEMBERS.json @@ -152,7 +152,9 @@ "company": "Postman", "repos": [ "optimizer", - "bindings" + "bindings", + "glee", + ".github" ] }, { @@ -346,7 +348,8 @@ "company": "Postman", "repos": [ "cli", - "bundler" + "bundler", + "glee" ] }, { diff --git a/config/edit-page-config.json b/config/edit-page-config.json new file mode 100644 index 00000000000..a622b600fac --- /dev/null +++ b/config/edit-page-config.json @@ -0,0 +1,18 @@ +[ + { + "value": "/tools/generator", + "href": "https://github.com/asyncapi/generator/tree/master/docs" + }, + { + "value": "reference/specification/", + "href": "https://github.com/asyncapi/spec/blob/master/spec/asyncapi.md" + }, + { + "value":"/tools/cli", + "href":"https://github.com/asyncapi/cli/tree/master/docs" + }, + { + "value": "", + "href": "https://github.com/asyncapi/website/blob/master/pages" + } +] diff --git a/config/meetings.json b/config/meetings.json index 5b7280b51d0..3da4d4dc325 100644 --- a/config/meetings.json +++ b/config/meetings.json @@ -5,12 +5,6 @@ "url": "https://github.com/asyncapi/community/issues/587", "date": "2023-02-15T16:00:00.000Z" }, - { - "title": "Community Meeting", - "calLink": "https://www.google.com/calendar/event?eid=cTd2bGZodXU1YnVzY2Ywa2Y4aG5sZGJzYmcgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", - "url": "https://github.com/asyncapi/community/issues/589", - "date": "2023-02-07T08:00:00.000Z" - }, { "title": "Spec 3.0 Meeting", "calLink": "https://www.google.com/calendar/event?eid=M2swdGhkaG9mbmpndGZqNzQ1czY1cmd1YjggY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", @@ -138,5 +132,12 @@ "url": "https://github.com/asyncapi/community/issues/699", "banner": "", "date": "2023-05-10T16:00:00.000Z" + }, + { + "title": "Community Meeting", + "calLink": "https://www.google.com/calendar/event?eid=Nm9qbjFoNGJ1dmppaGM5bTFmdnZzZDFxNzAgY19xOXRzZWlnbG9tZHNqNm5qdWh2YnB0czExY0Bn", + "url": "https://github.com/asyncapi/community/issues/705", + "banner": "https://user-images.githubusercontent.com/40604284/238269236-93dda2ae-732c-4aab-b71e-18d077b987e7.png", + "date": "2023-05-16T16:00:00.000Z" } ] \ No newline at end of file diff --git a/config/newsroom_videos.json b/config/newsroom_videos.json index 06e11fac239..6502c2d5c3e 100644 --- a/config/newsroom_videos.json +++ b/config/newsroom_videos.json @@ -1,4 +1,16 @@ [ + { + "image_url": "https://i.ytimg.com/vi/l9Tp5eMTol4/hqdefault.jpg", + "title": "Community Health in Open-source", + "description": "Community health in open-source refers to the overall well-being of the individuals that contribute to a particular open-source ...", + "videoId": "l9Tp5eMTol4" + }, + { + "image_url": "https://i.ytimg.com/vi/4Zo59cOcFUw/hqdefault.jpg", + "title": "Community meeting (May 16th 2023)", + "description": "https://github.com/asyncapi/community/issues/705.", + "videoId": "4Zo59cOcFUw" + }, { "image_url": "https://i.ytimg.com/vi/7urTb207V-8/hqdefault.jpg", "title": "Spec 3.0 meeting (May 10th 2023)", @@ -16,17 +28,5 @@ "title": "Community meeting (May 2nd 2023)", "description": "https://github.com/asyncapi/community/issues/688.", "videoId": "Z8lnRHL-lCM" - }, - { - "image_url": "https://i.ytimg.com/vi/WcmH9ySIX9o/hqdefault.jpg", - "title": "Tackling Interoperability Challenges In Open-Source", - "description": "Interoperability refers to the ability of different systems and software applications to communicate and exchange data seamlessly.", - "videoId": "WcmH9ySIX9o" - }, - { - "image_url": "https://i.ytimg.com/vi/82xkJmn-bAc/hqdefault.jpg", - "title": "Spec 3.0 meeting (April 26th 2023)", - "description": "https://github.com/asyncapi/community/issues/670.", - "videoId": "82xkJmn-bAc" } ] \ No newline at end of file diff --git a/dashboard.json b/dashboard.json index bd8ac9c6dfa..917263ce0b4 100644 --- a/dashboard.json +++ b/dashboard.json @@ -1,5 +1,16 @@ { "hotDiscussions": [ + { + "id": "PR_kwDODCuNRs4r1oNL", + "isPR": true, + "isAssigned": false, + "title": "docs: proposed set of bindings for AWS - SNS and SQS", + "author": "iancooper", + "resourcePath": "/asyncapi/bindings/pull/84", + "repo": "asyncapi/bindings", + "labels": [], + "score": 21.825268744943667 + }, { "id": "PR_kwDODyzcIc42qjdx", "isPR": true, @@ -11,17 +22,6 @@ "labels": [], "score": 20.38939580119737 }, - { - "id": "PR_kwDODCuNRs4r1oNL", - "isPR": true, - "isAssigned": false, - "title": "docs: proposed set of bindings for AWS - SNS and SQS", - "author": "iancooper", - "resourcePath": "/asyncapi/bindings/pull/84", - "repo": "asyncapi/bindings", - "labels": [], - "score": 19.815046623698855 - }, { "id": "I_kwDOBW5R_c5J6qNe", "isPR": false, @@ -59,15 +59,28 @@ "score": 18.37917367995256 }, { - "id": "I_kwDOBGu-185CELGB", + "id": "I_kwDOG115t85D93P0", "isPR": false, - "isAssigned": false, - "title": "Work on 3.0 release", - "author": "jonaslagoni", - "resourcePath": "/asyncapi/spec/issues/691", - "repo": "asyncapi/spec", - "labels": [], - "score": 18.091999091203302 + "isAssigned": true, + "title": "Website UI Kit design/dev project", + "author": "mcturco", + "resourcePath": "/asyncapi/design-system/issues/4", + "repo": "asyncapi/design-system", + "labels": [ + { + "name": "enhancement", + "color": "a2eeef" + }, + { + "name": "gsoc", + "color": "F4D03F" + }, + { + "name": "🎨 design", + "color": "0D67D3" + } + ], + "score": 17.517649913704783 }, { "id": "I_kwDODou01c5AqLB8", @@ -86,24 +99,15 @@ "score": 16.65612614745701 }, { - "id": "MDU6SXNzdWU4MzM2NTY1ODc=", - "isPR": false, + "id": "PR_kwDOBGu-185L4xgg", + "isPR": true, "isAssigned": false, - "title": "Integrate or re-implement APIs.guru asyncapi-directory", - "author": "MikeRalphson", - "resourcePath": "/asyncapi/website/issues/204", - "repo": "asyncapi/website", - "labels": [ - { - "name": "enhancement", - "color": "84b6eb" - }, - { - "name": "stale", - "color": "ededed" - } - ], - "score": 16.08177696995849 + "title": "#622 allow defining schema format other than default", + "author": "GreenRover", + "resourcePath": "/asyncapi/spec/pull/910", + "repo": "asyncapi/spec", + "labels": [], + "score": 16.65612614745701 }, { "id": "I_kwDODou01c5E_LV0", @@ -141,17 +145,6 @@ ], "score": 15.220253203710714 }, - { - "id": "PR_kwDODyzcIc5NDHYS", - "isPR": true, - "isAssigned": false, - "title": "ci: new github action which logs all the reactions in prs and issues", - "author": "14Richa", - "resourcePath": "/asyncapi/.github/pull/220", - "repo": "asyncapi/.github", - "labels": [], - "score": 14.933078614961456 - }, { "id": "MDU6SXNzdWU5ODkyOTg0MzY=", "isPR": false, @@ -169,18 +162,103 @@ "score": 14.926933240618364 }, { - "id": "PR_kwDOBGu-185L4xgg", + "id": "PR_kwDOCoBobc4-9B_v", "isPR": true, "isAssigned": false, - "title": "#622 allow defining schema format other than default", - "author": "GreenRover", - "resourcePath": "/asyncapi/spec/pull/910", - "repo": "asyncapi/spec", - "labels": [], + "title": "refactor: add migration guide", + "author": "magicmatatjahu", + "resourcePath": "/asyncapi/parser-js/pull/611", + "repo": "asyncapi/parser-js", + "labels": [ + { + "name": "enhancement", + "color": "a2eeef" + } + ], "score": 14.645904026212197 + }, + { + "id": "MDU6SXNzdWU2MDYzODgzNzM=", + "isPR": false, + "isAssigned": false, + "title": "Improve overall performance of the website but especially Blog", + "author": "derberg", + "resourcePath": "/asyncapi/website/issues/89", + "repo": "asyncapi/website", + "labels": [ + { + "name": "enhancement", + "color": "84b6eb" + }, + { + "name": "Epic", + "color": "3E4B9E" + } + ], + "score": 13.210031082465903 } ], "goodFirstIssues": [ + { + "id": "I_kwDOE8Qh385mL9Lx", + "title": "Add runtime testing for Rust", + "isAssigned": false, + "resourcePath": "/asyncapi/modelina/issues/1295", + "repo": "asyncapi/modelina", + "author": "jonaslagoni", + "area": "rust", + "labels": [ + { + "name": "enhancement", + "color": "a2eeef" + } + ] + }, + { + "id": "I_kwDOBW5R_c5mKmgQ", + "title": "Add docs buttons to CLI and Generator landing pages", + "isAssigned": false, + "resourcePath": "/asyncapi/website/issues/1684", + "repo": "asyncapi/website", + "author": "derberg", + "area": "javascript", + "labels": [ + { + "name": "enhancement", + "color": "84b6eb" + } + ] + }, + { + "id": "I_kwDOFDnrNc5mJnw8", + "title": "extend release workflow to throw errors when it fails", + "isAssigned": false, + "resourcePath": "/asyncapi/cli/issues/563", + "repo": "asyncapi/cli", + "author": "derberg", + "area": "ci-cd", + "labels": [ + { + "name": "enhancement", + "color": "a2eeef" + } + ] + }, + { + "id": "I_kwDOBW5R_c5mIyyz", + "title": "[📑 Docs]: Update CLI installation instruction with info about windows", + "isAssigned": false, + "resourcePath": "/asyncapi/website/issues/1681", + "repo": "asyncapi/website", + "author": "derberg", + "area": "docs", + "labels": [ + { + "name": "📑 docs", + "color": "E50E99" + } + ] + }, { "id": "I_kwDOBW5R_c5lGICH", "title": "Make group dropdown for each section in Navbar", @@ -559,21 +637,6 @@ } ] }, - { - "id": "I_kwDOFDnrNc5dvrae", - "title": "Integrate CLI docs with asyncapi website", - "isAssigned": false, - "resourcePath": "/asyncapi/cli/issues/448", - "repo": "asyncapi/cli", - "author": "derberg", - "area": "ci-cd", - "labels": [ - { - "name": "enhancement", - "color": "a2eeef" - } - ] - }, { "id": "I_kwDOE8Qh385dme8W", "title": "Add Jackson annotations and a preset to the Kotlin generator", @@ -907,25 +970,6 @@ } ] }, - { - "id": "MDU6SXNzdWU4NjM2OTUzMjM=", - "title": "Move to JSX renderer", - "isAssigned": false, - "resourcePath": "/asyncapi/html-template/issues/185", - "repo": "asyncapi/html-template", - "author": "magicmatatjahu", - "area": "Unknown", - "labels": [ - { - "name": "enhancement", - "color": "a2eeef" - }, - { - "name": "stale", - "color": "ededed" - } - ] - }, { "id": "MDU6SXNzdWU4MDU4MDM5Njg=", "title": "Enhance API docs with information about results of code generation with generateFromString using entrypoint", diff --git a/pages/blog/index.js b/pages/blog/index.js index 6a91b68f940..763a5c66728 100644 --- a/pages/blog/index.js +++ b/pages/blog/index.js @@ -125,7 +125,7 @@ export default function BlogIndexPage() { ) : ( diff --git a/pages/community/ambassadors/index.js b/pages/community/ambassadors/index.js index adb480e2ba8..a68f9cbd5e6 100644 --- a/pages/community/ambassadors/index.js +++ b/pages/community/ambassadors/index.js @@ -41,7 +41,6 @@ function Index() { title="AsyncAPI Ambassador Program" description="The AsyncAPI Ambassador Program" image={image} - hideBanner={true} wide >
diff --git a/pages/community/events/index.js b/pages/community/events/index.js index dc13c406b2b..f6d372db1cd 100644 --- a/pages/community/events/index.js +++ b/pages/community/events/index.js @@ -12,6 +12,7 @@ import Meeting from '../../../components/Meeting'; import NewsletterSubscribe from '../../../components/NewsletterSubscribe'; import TextLink from '../../../components/typography/TextLink'; import meetings from '../../../config/meetings.json'; +import AnnouncementHero from '../../../components/campaigns/AnnoucementHero'; import Paragraph from '../../../components/typography/Paragraph'; @@ -26,10 +27,10 @@ function index() { title="AsyncAPI events" description="Our catalogs of events and meetups" image={image} - hideBanner={true} wide >
+

Join an AsyncAPI event from anywhere in the world. diff --git a/pages/community/index.js b/pages/community/index.js index 988cc74162c..ee53d5c3fdb 100644 --- a/pages/community/index.js +++ b/pages/community/index.js @@ -17,7 +17,6 @@ function CommunityIndexPage() { title="AsyncAPI Community Meetings" description="The home for developer communities" image={image} - hideBanner={true} wide >
diff --git a/pages/docs/tools/generator/api.md b/pages/docs/tools/generator/api.md index 1e53742b7cd..b51bc16d283 100644 --- a/pages/docs/tools/generator/api.md +++ b/pages/docs/tools/generator/api.md @@ -29,7 +29,7 @@ Reference API documentation for AsyncAPI Generator library. * [.originalAsyncAPI](#Generator+originalAsyncAPI) : `String` * [.generate(asyncapiDocument)](#Generator+generate) ⇒ `Promise` * [.configureTemplate()](#Generator+configureTemplate) - * [.generateFromString(asyncapiString, [parserOptions])](#Generator+generateFromString) ⇒ `Promise` + * [.generateFromString(asyncapiString, [parseOptions])](#Generator+generateFromString) ⇒ `Promise` * [.generateFromURL(asyncapiURL)](#Generator+generateFromURL) ⇒ `Promise` * [.generateFromFile(asyncapiFile)](#Generator+generateFromFile) ⇒ `Promise` * [.installTemplate([force])](#Generator+installTemplate) @@ -215,7 +215,7 @@ Generates files from a given template and AsyncAPI string. **Params** - asyncapiString `String` - AsyncAPI string to use as source. -- [parserOptions] `Object` ` = {}` - AsyncAPI parser options. Check out [@asyncapi/parser](https://www.github.com/asyncapi/parser-js) for more information. +- [parseOptions] `Object` ` = {}` - AsyncAPI Parser parse options. Check out [@asyncapi/parser](https://www.github.com/asyncapi/parser-js) for more information. **Example** ```js diff --git a/pages/docs/tools/generator/configuration-file.md b/pages/docs/tools/generator/configuration-file.md index 37650fef5c7..a746a3384f7 100644 --- a/pages/docs/tools/generator/configuration-file.md +++ b/pages/docs/tools/generator/configuration-file.md @@ -8,6 +8,7 @@ The `generator` property from `package.json` file must contain a JSON object tha |Name|Type|Description| |---|---|---| |`renderer`| String | Its value can be either `react` or `nunjucks` (default). +|`apiVersion`| String | Determines which **major** version of the [Parser-API](https://github.com/asyncapi/parser-api) the template uses. For example, `v1` for `v1.x.x`. If not specified, the Generator assumes the template is not compatible with the Parser-API so it will use the [Parser-JS v1 API](https://github.com/asyncapi/parser-js/tree/v1.18.1#api-documentation). If the template uses a version of the Parser-API that is not supported by the Generator, the Generator will throw an error. |`supportedProtocols`| [String] | A list with all the protocols this template supports. |`parameters`| Object[String, Object] | An object with all the parameters that can be passed when generating the template. When using the command line, it's done by indicating `--param name=value` or `-p name=value`. |`parameters[param].description`| String | A user-friendly description about the parameter. @@ -27,6 +28,7 @@ The `generator` property from `package.json` file must contain a JSON object tha "generator": { "renderer": "react", + "apiVersion": "v1", "supportedProtocols": ["amqp", "mqtt"], "parameters": { "server": { diff --git a/scripts/build-post-list.js b/scripts/build-post-list.js index 52698d31de9..9d237edfae2 100644 --- a/scripts/build-post-list.js +++ b/scripts/build-post-list.js @@ -125,6 +125,7 @@ function walkDirectories(directories, result, sectionWeight = 0, sectionTitle, s } + // To create a list of available ReleaseNotes list, which will be used to add details.releaseNoteLink attribute. if(file.startsWith("release-notes") && dir[1] === "/blog"){ const fileName_without_extension = file.slice(0,-3) @@ -134,8 +135,7 @@ function walkDirectories(directories, result, sectionWeight = 0, sectionTitle, s releaseNotes.push(version) // releaseNotes is the list of all available releaseNotes } - - + addItem(details) } }