diff --git a/internal/step2/exportLinks.mjs b/internal/step2/exportLinks.mjs new file mode 100644 index 00000000..03b89387 --- /dev/null +++ b/internal/step2/exportLinks.mjs @@ -0,0 +1,56 @@ +import fs from 'fs'; +import path from 'path'; +import sanityClient from '@sanity/client'; + +const titlesFile = path.join(process.cwd(), 'posts.csv'); +const postsFile = path.join(process.cwd(), '../export.json'); +const outputFile = path.join(process.cwd(), './links.csv'); + +async function readPosts() { + const data = await fs.promises.readFile(postsFile, 'utf8'); + return JSON.parse(data); +} + + +export const client = sanityClient({ + projectId: 'o2y1bt2g', + dataset: 'seqera', + token: process.env.SANITY_TOKEN, + useCdn: false, +}); + +async function fetchNewPosts() { + return await client.fetch(`*[_type == "blogPostDev"]`); +} + + + +async function getLinks() { + console.log('🟢🟢🟢 Export'); + const fileContents = fs.readFileSync(titlesFile, 'utf8'); + const titles = fileContents.split('\n'); + + const oldPosts = await readPosts(); + const newPosts = await fetchNewPosts(); + + for (const title of titles) { + const oldPost = oldPosts.find(p => p.title === title); + const newPost = newPosts.find(p => p.title === title); + if (!oldPost) console.log('⭕ old: ', title); + if (!newPost) console.log('⭕ new: ', title); + + let id = newPost?._id || ''; + if (id.split('.')[1]) id = id.split('.')[1]; + + let newSlug = newPost?.slug?.current || ''; + + const oldURL = oldPost ? `https://nextflow.io/blog/${oldPost.slug}.html` : ''; + const devURL = newPost ? `https://seqera.io/preview?type=blogPostDev&id=${id}` : ''; + const prodURL = newPost ? `https://seqera.io/blog/${newSlug}` : ''; + + } + + +} + +getLinks(); \ No newline at end of file diff --git a/internal/step2/posts.csv b/internal/step2/posts.csv new file mode 100644 index 00000000..8658c64c --- /dev/null +++ b/internal/step2/posts.csv @@ -0,0 +1,87 @@ +Application of Nextflow and nf-core to ancient environmental eDNA +Configure Git private repositories with Nextflow +Join us in welcoming the new Nextflow Ambassadors +Leveraging nf-test for enhanced quality control in nf-core +Nextflow Training: Bridging Online Learning with In-Person Connections +Nextflow workshop at the 20th KOGO Winter Symposium +nf-schema: the new and improved nf-validation +One-Year Reflections on Nextflow Mentorship +Optimizing Nextflow for HPC and Cloud at Scale +Reflecting on a Six-Month Collaboration: Insights from a Nextflow Ambassador +My Journey with Nextflow: From Exploration to Automation +Addressing Bioinformatics Core Challenges with Nextflow and nf-core +Moving toward better support through the Community forum +Experimental cleanup with nf-boost +How I became a Nextflow Ambassador! +Fostering Bioinformatics Growth in Türkiye +Nextflow 24.04 - Release highlights +Open call for new Nextflow Ambassadors closes June 14 +Empowering Bioinformatics: Mentoring Across Continents with Nextflow +Nextflow's colorful new console output +Nextflow and nf-core Mentorship, Round 3 +Nextflow Summit 2023 Recap +Introducing community.seqera.io +Introducing the Nextflow Ambassador Program +Geraldine Van der Auwera joins Seqera +Nextflow goes to university! +A Nextflow-Docker Murder Mystery: The mysterious case of the “OOM killer” +Reflecting on ten years of Nextflow awesomeness +Nextflow on BIG IRON: Twelve tips for improving the effectiveness of pipelines on HPC clusters +Selecting the right storage architecture for your Nextflow pipelines +Celebrating our largest international training event and hackathon to date +Nextflow and nf-core Mentorship, Round 2 +The State of Kubernetes in Nextflow +Learn Nextflow in 2023 +Get started with Nextflow on Google Cloud Batch +Analyzing caching behavior of pipelines +Nextflow Summit 2022 Recap +Rethinking containers for cloud native pipelines +Turbo-charging the Nextflow command line with Fig! +Nextflow and nf-core mentorship, Round 1 +Deploy Nextflow Pipelines with Google Cloud Batch! +Evolution of the Nextflow runtime +Nextflow’s community is moving to Slack! +Learning Nextflow in 2022 +Configure Git private repositories with Nextflow +Setting up a Nextflow environment on Windows 10 +Introducing Nextflow support for SQL databases +Five more tips for Nextflow user on HPC +5 Nextflow Tips for HPC Users +6 Tips for Setting Up Your Nextflow Dev Environment +Introducing Nextflow for Azure Batch +Learning Nextflow in 2020 +More syntax sugar for Nextflow developers! +The Nextflow CLI - tricks and treats! +Nextflow DSL 2 is here! +Easy provenance reporting +Troubleshooting Nextflow resume +Demystifying Nextflow resume +One more step towards Nextflow modules +Nextflow 19.04.0 stable release is out! +Edge release 19.03: The Sequence Read Archive & more! +Bringing Nextflow to Google Cloud Platform with WuXi NextCODE +Goodbye zero, Hello Apache! +Nextflow meets Dockstore +Clarification about the Nextflow license +Conda support has landed! +Nextflow turns five! Happy birthday! +Running CAW with Singularity and Nextflow +Scaling with AWS Batch +Nexflow Hackathon 2017 +Nextflow and the Common Workflow Language +Nextflow workshop is coming! +Nextflow published in Nature Biotechnology +More fun with containers in HPC +Enabling elastic computing with Nextflow +Deploy your computational pipelines in the cloud at the snap-of-a-finger +Docker for dunces & Nextflow for nunces +Workflows & publishing: best practice for reproducibility +Error recovery and automatic resource management with Nextflow +Developing a bioinformatics pipeline across multiple environments +MPI-like distributed execution with Nextflow +The impact of Docker containers on the performance of genomic pipelines +Innovation In Science - The story behind Nextflow +Introducing Nextflow REPL Console +Using Docker for scientific data analysis in an HPC cluster +Reproducibility in Science - Nextflow meets Docker +Share Nextflow pipelines with GitHub \ No newline at end of file