From e57b889f73dd1d3b53f61b5a8875c3a24a6c19fc Mon Sep 17 00:00:00 2001 From: Kamran Ahmed Date: Wed, 1 Mar 2023 02:28:46 +0000 Subject: [PATCH] Add script to update sponsors --- .github/workflows/update-sponsors.yml | 2 +- bin/{roadmap-ads.cjs => update-sponsors.cjs} | 35 ++++++++++++-------- src/data/roadmaps/devops/devops.md | 12 +++---- 3 files changed, 29 insertions(+), 20 deletions(-) rename bin/{roadmap-ads.cjs => update-sponsors.cjs} (75%) diff --git a/.github/workflows/update-sponsors.yml b/.github/workflows/update-sponsors.yml index 0bf07b582..b39a4560c 100644 --- a/.github/workflows/update-sponsors.yml +++ b/.github/workflows/update-sponsors.yml @@ -23,7 +23,7 @@ jobs: - name: Update the Sponsors run: | pnpm install - node bin/roadmap-ads.cjs + node bin/update-sponsors.cjs - name: Create PR uses: peter-evans/create-pull-request@v4 with: diff --git a/bin/roadmap-ads.cjs b/bin/update-sponsors.cjs similarity index 75% rename from bin/roadmap-ads.cjs rename to bin/update-sponsors.cjs index d55acd560..22ea6b896 100644 --- a/bin/roadmap-ads.cjs +++ b/bin/update-sponsors.cjs @@ -51,25 +51,34 @@ function populateRoadmapAds({ const existingFrontmatter = roadmapFileContent.match(frontMatterRegex)[1]; const contentWithoutFrontmatter = roadmapFileContent.replace(frontMatterRegex, ``).trim(); - const yamlObject = yaml.load(existingFrontmatter); + let fronmatterObj = yaml.load(existingFrontmatter); if (shouldShowAd) { - yamlObject.sponsor = { - url: redirectUrl, - title: adTitle, - imageUrl, - description: adDescription, - event: { - category: 'SponsorClick', - action: `${company} Redirect`, - label: `Clicked ${company} Link`, + const frontmatterValues = Object.entries(fronmatterObj); + + // Insert sponsor data at 10 index i.e. after + // roadmap dimensions in the fronmatter + frontmatterValues.splice(10, 0, [ + 'sponsor', + { + url: redirectUrl, + title: adTitle, + imageUrl, + description: adDescription, + event: { + category: 'SponsorClick', + action: `${company} Redirect`, + label: `Clicked ${company} Link`, + }, }, - }; + ]); + + fronmatterObj = Object.fromEntries(frontmatterValues); } else { - delete yamlObject.sponsor; + delete fronmatterObj.sponsor; } - const newFrontmatter = yaml.dump(yamlObject, { lineWidth: 10000, forceQuotes: true, quotingType: '"' }); + const newFrontmatter = yaml.dump(fronmatterObj, { lineWidth: 10000, forceQuotes: true, quotingType: '"' }); const newContent = `---\n${newFrontmatter}---\n\n${contentWithoutFrontmatter}`; fs.writeFileSync(roadmapFilePath, newContent, 'utf8'); diff --git a/src/data/roadmaps/devops/devops.md b/src/data/roadmaps/devops/devops.md index c3e14a9db..822d4c976 100644 --- a/src/data/roadmaps/devops/devops.md +++ b/src/data/roadmaps/devops/devops.md @@ -11,12 +11,6 @@ tnsBannerLink: "https://thenewstack.io?utm_source=roadmap.sh&utm_medium=Referral dimensions: width: 968 height: 2527.46 -schema: - headline: "DevOps Roadmap" - description: "Learn to become a DevOps, SRE or get any other operations role with this interactive step by step guide in 2023. We also have resources and short descriptions attached to the roadmap items so you can get everything you want to learn in one place." - imageUrl: "https://roadmap.sh/roadmaps/devops.png" - datePublished: "2023-01-05" - dateModified: "2023-01-20" sponsor: url: "https://www.getambassador.io/products/edge-stack-api-gateway?utm_source=roadmap-sh&utm_medium=edge-stack-page&utm_campaign=new-account" title: "Featured Product" @@ -26,6 +20,12 @@ sponsor: category: "SponsorClick" action: "Ambassador Redirect" label: "Clicked Ambassador Link" +schema: + headline: "DevOps Roadmap" + description: "Learn to become a DevOps, SRE or get any other operations role with this interactive step by step guide in 2023. We also have resources and short descriptions attached to the roadmap items so you can get everything you want to learn in one place." + imageUrl: "https://roadmap.sh/roadmaps/devops.png" + datePublished: "2023-01-05" + dateModified: "2023-01-20" seo: title: "DevOps Roadmap: Learn to become a DevOps Engineer or SRE" description: "Community driven, articles, resources, guides, interview questions, quizzes for DevOps. Learn to become a modern DevOps engineer by following the steps, skills, resources and guides listed in this roadmap."