diff --git a/.github/ISSUE_TEMPLATE/release_post.md b/.github/ISSUE_TEMPLATE/release_post.md
index 612d97197..741af5941 100644
--- a/.github/ISSUE_TEMPLATE/release_post.md
+++ b/.github/ISSUE_TEMPLATE/release_post.md
@@ -4,7 +4,7 @@ title: Eclipse Temurin 8uxxx, 11.x.x, 17.x.x and 21.x.x Available
date: ""
author: pmc
about: Create a new release post
-description: Adoptium is happy to announce the immediate availability of Eclipse Temurin 8uxxx, 11.x.x, 17.x.x and 21.x.x. As always, all binaries are thoroughly tested and available free of charge without usage restrictions on a wide range of platforms.
+description: Adoptium is happy to announce the immediate availability of Eclipse Temurin 8uxxx, 11.x.x, 17.x.x and 21.x.x.
tags:
- temurin
- announcement
diff --git a/content/blog/a-month-after-eclipsecon-adoptium-community-day-summary-and-more/index.md b/content/blog/a-month-after-eclipsecon-adoptium-community-day-summary-and-more/index.md
index 3b39179f1..08c0067d2 100644
--- a/content/blog/a-month-after-eclipsecon-adoptium-community-day-summary-and-more/index.md
+++ b/content/blog/a-month-after-eclipsecon-adoptium-community-day-summary-and-more/index.md
@@ -3,6 +3,7 @@ title: A month after EclipseCon - Adoptium Community day summary, and more.
date: "2022-11-24T12:00:00+00:00"
author: carmendelgado
description: Our Community Manager gives us a summary of Eclipse Adoptium activities around the EclipseCon event.
+featuredImage: "./community-day.jpg"
tags:
- "adoptium"
---
diff --git a/content/blog/eclipse-temurin-11020.1-and-1708.1/index.md b/content/blog/eclipse-temurin-11020.1-and-1708.1/index.md
index f28cee829..1400d89dc 100644
--- a/content/blog/eclipse-temurin-11020.1-and-1708.1/index.md
+++ b/content/blog/eclipse-temurin-11020.1-and-1708.1/index.md
@@ -2,7 +2,7 @@
title: Eclipse Temurin 11.0.20.1, 17.0.8.1 now available
date: "2023-08-30T12:00:00+00:00"
author: pmc
-description: Adoptium is happy to announce the immediate availability of Eclipse Temurin 11.0.20.1 and 17.0.8.1. As always, all binaries are thoroughly tested and available free of charge without usage restrictions on a wide range of platforms.
+description: Adoptium is happy to announce the immediate availability of Eclipse Temurin 11.0.20.1 and 17.0.8.1.
tags:
- temurin
- announcement
diff --git a/content/blog/eclipse-temurin-8u312-11013-and-1701-available/index.md b/content/blog/eclipse-temurin-8u312-11013-and-1701-available/index.md
index eb567b695..ade2720ec 100644
--- a/content/blog/eclipse-temurin-8u312-11013-and-1701-available/index.md
+++ b/content/blog/eclipse-temurin-8u312-11013-and-1701-available/index.md
@@ -2,7 +2,7 @@
title: Eclipse Temurin 8u312, 11.0.13, and 17.0.1 Available
date: "2021-11-05T12:00:00+00:00"
author: georgeadams
-description: Adoptium is happy to announce the immediate availability of Eclipse Temurin 8u312, 11.0.13, and 17.0.1. As always, all binaries are thoroughly tested and available free of charge without usage restrictions on a wide range of platforms.
+description: Adoptium is happy to announce the immediate availability of Eclipse Temurin 8u312, 11.0.13, and 17.0.1.
tags:
- temurin
- announcement
diff --git a/content/blog/eclipse-temurin-8u342-11016-1704-and-1802-available/index.md b/content/blog/eclipse-temurin-8u342-11016-1704-and-1802-available/index.md
index 8d1d863d9..d2a583279 100644
--- a/content/blog/eclipse-temurin-8u342-11016-1704-and-1802-available/index.md
+++ b/content/blog/eclipse-temurin-8u342-11016-1704-and-1802-available/index.md
@@ -2,7 +2,7 @@
title: Eclipse Temurin 8u342, 11.0.16, 17.0.4 and 18.0.2 Available
date: "2022-08-03T12:00:00+00:00"
author: georgeadams
-description: Adoptium is happy to announce the immediate availability of Eclipse Temurin 8u342, 11.0.16, 17.0.4 and 18.0.2. As always, all binaries are thoroughly tested and available free of charge without usage restrictions on a wide range of platforms.
+description: Adoptium is happy to announce the immediate availability of Eclipse Temurin 8u342, 11.0.16, 17.0.4 and 18.0.2.
tags:
- temurin
- announcement
diff --git a/content/blog/eclipse-temurin-8u362-11018-1706-and-1902-available/index.md b/content/blog/eclipse-temurin-8u362-11018-1706-and-1902-available/index.md
index e6539bd7c..2c61b1535 100644
--- a/content/blog/eclipse-temurin-8u362-11018-1706-and-1902-available/index.md
+++ b/content/blog/eclipse-temurin-8u362-11018-1706-and-1902-available/index.md
@@ -2,7 +2,7 @@
title: Eclipse Temurin 8u362, 11.0.18, 17.0.6 and 19.0.2 Available
date: "2023-01-27T12:00:00+00:00"
author: pmc
-description: Adoptium is happy to announce the immediate availability of Eclipse Temurin 8u362, 11.0.18, 17.0.6 and 19.0.2. As always, all binaries are thoroughly tested and available free of charge without usage restrictions on a wide range of platforms.
+description: Adoptium is happy to announce the immediate availability of Eclipse Temurin 8u362, 11.0.18, 17.0.6 and 19.0.2.
tags:
- temurin
- announcement
diff --git a/content/blog/eclipse-temurin-8u372-11019-1707-and-2001-available/index.md b/content/blog/eclipse-temurin-8u372-11019-1707-and-2001-available/index.md
index 3a52d68fb..a41d5d108 100644
--- a/content/blog/eclipse-temurin-8u372-11019-1707-and-2001-available/index.md
+++ b/content/blog/eclipse-temurin-8u372-11019-1707-and-2001-available/index.md
@@ -2,7 +2,7 @@
title: Eclipse Temurin 8u372, 11.0.19, 17.0.7 and 20.0.1 Available
date: "2023-05-04T12:00:00+00:00"
author: pmc
-description: Adoptium is happy to announce the immediate availability of Eclipse Temurin 8u372, 11.0.19, 17.0.7 and 20.0.1. As always, all binaries are thoroughly tested and available free of charge without usage restrictions on a wide range of platforms.
+description: Adoptium is happy to announce the immediate availability of Eclipse Temurin 8u372, 11.0.19, 17.0.7 and 20.0.1.
tags:
- temurin
- announcement
diff --git a/content/blog/eclipse-temurin-8u382-11020-1708-and-2002-available/index.md b/content/blog/eclipse-temurin-8u382-11020-1708-and-2002-available/index.md
index 481f104f5..6ff37692e 100644
--- a/content/blog/eclipse-temurin-8u382-11020-1708-and-2002-available/index.md
+++ b/content/blog/eclipse-temurin-8u382-11020-1708-and-2002-available/index.md
@@ -2,7 +2,7 @@
title: Eclipse Temurin 8u382, 11.0.20, 17.0.8 and 20.0.2 Available
date: "2023-08-04T12:00:00+00:00"
author: pmc
-description: Adoptium is happy to announce the immediate availability of Eclipse Temurin 8u382, 11.0.20, 17.0.8 and 20.0.2. As always, all binaries are thoroughly tested and available free of charge without usage restrictions on a wide range of platforms.
+description: Adoptium is happy to announce the immediate availability of Eclipse Temurin 8u382, 11.0.20, 17.0.8 and 20.0.2.
tags:
- temurin
- announcement
diff --git a/content/blog/eclipse-temurin-8u392-11021-1709-and-2101-available/index.md b/content/blog/eclipse-temurin-8u392-11021-1709-and-2101-available/index.md
index 199e5b48d..545b6bd23 100644
--- a/content/blog/eclipse-temurin-8u392-11021-1709-and-2101-available/index.md
+++ b/content/blog/eclipse-temurin-8u392-11021-1709-and-2101-available/index.md
@@ -2,7 +2,7 @@
title: Eclipse Temurin 8u392, 11.0.21, 17.0.9 and 21.0.1 Available
date: "2023-11-21T12:00:00+00:00"
author: pmc
-description: Adoptium is happy to announce the immediate availability of Eclipse Temurin 8u392, 11.0.21, 17.0.9 and 21.0.1. As always, all binaries are thoroughly tested and available free of charge without usage restrictions on a wide range of platforms.
+description: Adoptium is happy to announce the immediate availability of Eclipse Temurin 8u392, 11.0.21, 17.0.9 and 21.0.1.
tags:
- temurin
- announcement
diff --git a/content/blog/eclipse-temurin-8u402-11022-1710-and-2102-available/index.md b/content/blog/eclipse-temurin-8u402-11022-1710-and-2102-available/index.md
index 31f009e08..34c081d62 100644
--- a/content/blog/eclipse-temurin-8u402-11022-1710-and-2102-available/index.md
+++ b/content/blog/eclipse-temurin-8u402-11022-1710-and-2102-available/index.md
@@ -2,7 +2,7 @@
title: Eclipse Temurin 8u402, 11.0.22, 17.0.10 and 21.0.2 Available
date: "2024-01-26"
author: pmc
-description: Adoptium is happy to announce the immediate availability of Eclipse Temurin 8u402, 11.0.22, 17.0.10 and 21.0.2. As always, all binaries are thoroughly tested and available free of charge without usage restrictions on a wide range of platforms.
+description: Adoptium is happy to announce the immediate availability of Eclipse Temurin 8u402, 11.0.22, 17.0.10 and 21.0.2.
tags:
- temurin
- announcement
diff --git a/content/blog/eclipse-temurin-8u412-11023-1711-2102-2201-available/index.md b/content/blog/eclipse-temurin-8u412-11023-1711-2102-2201-available/index.md
index af0b379d9..cc9f07556 100644
--- a/content/blog/eclipse-temurin-8u412-11023-1711-2102-2201-available/index.md
+++ b/content/blog/eclipse-temurin-8u412-11023-1711-2102-2201-available/index.md
@@ -2,7 +2,7 @@
title: Eclipse Temurin 8u412, 11.0.23, 17.0.11, 21.0.3 and 22.0.1 Available
date: "2024-04-25"
author: pmc
-description: Adoptium is happy to announce the immediate availability of Eclipse Temurin 8u412, 11.0.23, 17.0.11 21.0.3 and 22.0.1 - our biggest release set so far. As always, all binaries are thoroughly tested and available free of charge without usage restrictions on a wide range of platforms.
+description: Adoptium is happy to announce the immediate availability of Eclipse Temurin 8u412, 11.0.23, 17.0.11 21.0.3 and 22.0.1 - our biggest release set so far.
tags:
- temurin
- announcement
diff --git a/content/blog/eclipse-temurin-8u422-11024-1712-2104-2202-available/index.md b/content/blog/eclipse-temurin-8u422-11024-1712-2104-2202-available/index.md
index f67696594..fde2ef215 100644
--- a/content/blog/eclipse-temurin-8u422-11024-1712-2104-2202-available/index.md
+++ b/content/blog/eclipse-temurin-8u422-11024-1712-2104-2202-available/index.md
@@ -2,7 +2,7 @@
title: Eclipse Temurin 8u422, 11.0.24, 17.0.12, 21.0.4 and 22.0.2 Available
date: "2024-07-26"
author: pmc
-description: Adoptium is happy to announce the immediate availability of Eclipse Temurin 8u422, 11.0.24, 17.0.12 21.0.4 and 22.0.2 - surpassing April's release as the largest set of platforms published. As always, all binaries are thoroughly tested and available free of charge without usage restrictions on a wide range of platforms.
+description: Adoptium is happy to announce the immediate availability of Eclipse Temurin 8u422, 11.0.24, 17.0.12 21.0.4 and 22.0.2 - surpassing April's release as the largest set of platforms published.
tags:
- temurin
- announcement
diff --git a/content/blog/eclipse-temurin-8u432-11025-1713-2105-2301-available/index.md b/content/blog/eclipse-temurin-8u432-11025-1713-2105-2301-available/index.md
index 90b1dfa43..b361cc1f0 100644
--- a/content/blog/eclipse-temurin-8u432-11025-1713-2105-2301-available/index.md
+++ b/content/blog/eclipse-temurin-8u432-11025-1713-2105-2301-available/index.md
@@ -2,7 +2,7 @@
title: Eclipse Temurin 8u432, 11.0.25, 17.0.13, 21.0.5 and 23.0.1 Available
date: "2024-11-04"
author: pmc
-description: Adoptium is happy to announce the immediate availability of Eclipse Temurin 8u432, 11.0.25, 17.0.13, 21.0.5 and 23.0.1. As always, all binaries are thoroughly tested and available free of charge without usage restrictions on a wide range of platforms.
+description: Adoptium is happy to announce the immediate availability of Eclipse Temurin 8u432, 11.0.25, 17.0.13, 21.0.5 and 23.0.1.
tags:
- temurin
- announcement
diff --git a/content/blog/external_audit/index.md b/content/blog/external_audit/index.md
index 122c58659..979c692a3 100644
--- a/content/blog/external_audit/index.md
+++ b/content/blog/external_audit/index.md
@@ -3,6 +3,9 @@ title: External audit of Temurin build and distribution processes
date: "2024-06-17T17:00:00+00:00"
author: pmc
description:
+ Last year, the Eclipse Foundation engaged the Open Source Technology Improvement Fund to
+ perform an independent audit of the build and distribution processes for
+ Eclipse Temurin.
tags:
- temurin
- security
diff --git a/content/blog/march-2024-jdk22-release/index.md b/content/blog/march-2024-jdk22-release/index.md
index 69a50cefc..80b1c2fd7 100644
--- a/content/blog/march-2024-jdk22-release/index.md
+++ b/content/blog/march-2024-jdk22-release/index.md
@@ -2,7 +2,7 @@
title: Eclipse Temurin 22 Available
date: "2024-03-28"
author: pmc
-description: Adoptium is happy to announce the immediate availability of Eclipse Temurin 22.0.0+36. As always, all binaries are thoroughly tested and available free of charge without usage restrictions on a wide range of platforms.
+description: Adoptium is happy to announce the immediate availability of Eclipse Temurin 22.0.0+36.
tags:
- temurin
- announcement
diff --git a/gatsby-node.ts b/gatsby-node.ts
index b9e233802..c4c426194 100644
--- a/gatsby-node.ts
+++ b/gatsby-node.ts
@@ -10,6 +10,7 @@ import { createFilePath } from "gatsby-source-filesystem"
import locales from "./locales/i18n"
import authors from "./src/json/authors.json"
import type { GatsbyNode, Node } from "gatsby"
+import { generateFeaturedImage } from './src/util/generateFeaturedImage';
import {
localizedSlug,
@@ -35,6 +36,9 @@ interface AdoptiumData {
interface MdxNode extends Node {
frontmatter: {
date: string
+ featuredImage: string
+ title: string
+ description: string
}
fields: {
slug: string
@@ -313,6 +317,27 @@ export const onCreateNode: GatsbyNode["onCreateNode"] = async ({
const date = new Date(mdxNode.frontmatter.date)
const year = date.getFullYear()
const zeroPaddedMonth = `${date.getMonth() + 1}`.padStart(2, "0")
+ const title: string = mdxNode.frontmatter.title;
+ const description: string = mdxNode.frontmatter.description;
+ const featuredImage: string | undefined = mdxNode.frontmatter.featuredImage;
+
+ // If no featured image is provided and both title and subtitle exist:
+ if (!featuredImage && title && description) {
+ const outputFileName = "banner.png";
+ const outputDir = path.join(`static/images/blog/${slug}`);
+ const outputPath = path.join(outputDir, outputFileName);
+
+ try {
+ await generateFeaturedImage(title, description, outputPath);
+ createNodeField({
+ node,
+ name: 'generatedFeaturedImage',
+ value: `/images/blog/${slug}/${outputFileName}`,
+ });
+ } catch (error) {
+ console.error(`Error generating featured image for ${title}: ${error}`);
+ }
+ }
createNodeField({
name: "slug",
@@ -322,7 +347,7 @@ export const onCreateNode: GatsbyNode["onCreateNode"] = async ({
createNodeField({
name: "postPath",
node,
- value: `/blog/${year}/${zeroPaddedMonth}${slug}`,
+ value: `/news/${year}/${zeroPaddedMonth}${slug}`,
})
}
}
@@ -461,7 +486,7 @@ export const createPages: GatsbyNode["createPages"] = async ({
},
)
- // Query all blog posts by author to determine the number of pages needed
+ // Query all news posts by author to determine the number of pages needed
const authorPosts = await graphql<{
allMdx: {
totalCount: number
@@ -497,8 +522,8 @@ export const createPages: GatsbyNode["createPages"] = async ({
createPage({
path:
index === 0
- ? `/blog/author/${author}`
- : `/blog/author/${author}/page/${index + 1}`,
+ ? `/news/author/${author}`
+ : `/news/author/${author}/page/${index + 1}`,
component: authorPage,
context: {
author,
@@ -516,11 +541,11 @@ export const createPages: GatsbyNode["createPages"] = async ({
})
}
- // Create blog posts pages.
+ // Create news posts pages.
const tagTemplate = path.resolve("./src/templates/tagPage.tsx")
- const blogPost = path.resolve("./src/templates/blogPost.tsx")
+ const newsPost = path.resolve("./src/templates/newsPost.tsx")
- const blogPostResults = await graphql<{
+ const newsPostResults = await graphql<{
allMdx: {
edges: Array<{
node: {
@@ -541,6 +566,7 @@ export const createPages: GatsbyNode["createPages"] = async ({
tagsGroup: {
group: Array<{
fieldValue: string
+ totalCount: number
}>
}
}>(`
@@ -565,20 +591,21 @@ export const createPages: GatsbyNode["createPages"] = async ({
tagsGroup: allMdx(limit: 2000) {
group(field: { frontmatter: { tags: SELECT } }) {
fieldValue
+ totalCount
}
}
}
`)
- if (blogPostResults.errors) {
- throw blogPostResults.errors
+ if (newsPostResults.errors) {
+ throw newsPostResults.errors
}
- if (!blogPostResults.data) {
- throw new Error("Error retrieving blog posts")
+ if (!newsPostResults.data) {
+ throw new Error("Error retrieving news posts")
}
- const posts = blogPostResults.data.allMdx.edges
+ const posts = newsPostResults.data.allMdx.edges
posts.forEach((post, index) => {
const previous = index === posts.length - 1 ? null : posts[index + 1].node
@@ -586,7 +613,7 @@ export const createPages: GatsbyNode["createPages"] = async ({
createPage({
path: `${post.node.fields.postPath}`,
- component: `${blogPost}?__contentFilePath=${post.node.internal.contentFilePath}`,
+ component: `${newsPost}?__contentFilePath=${post.node.internal.contentFilePath}`,
context: {
slug: post.node.fields.slug,
postPath: `${post.node.fields.postPath}`,
@@ -597,38 +624,58 @@ export const createPages: GatsbyNode["createPages"] = async ({
})
// Extract tag data from query
- const tags = blogPostResults.data.tagsGroup.group
+ const tags = newsPostResults.data.tagsGroup.group
// Make tag pages
tags.forEach(tag => {
- createPage({
- path: `/news/tags/${tag.fieldValue}/`,
- component: tagTemplate,
- context: {
- tag: tag.fieldValue,
- },
+ // Calculate how many pages we need for this tag.
+ const numTagPages = Math.ceil(tag.totalCount / postsPerPage)
+
+ Array.from({ length: numTagPages }).forEach((_, index) => {
+ const currentPageNumber = index + 1
+ const previousPageNumber =
+ currentPageNumber === 1 ? null : currentPageNumber - 1
+ const nextPageNumber =
+ currentPageNumber === numTagPages ? null : currentPageNumber + 1
+
+ createPage({
+ // Use a friendly URL for the first page; then add /page/2, etc.
+ path:
+ index === 0
+ ? `/news/tags/${tag.fieldValue}/`
+ : `/news/tags/${tag.fieldValue}/page/${index + 1}`,
+ component: tagTemplate,
+ context: {
+ tag: tag.fieldValue,
+ limit: postsPerPage,
+ skip: index * postsPerPage,
+ numTagPages,
+ currentPageNumber,
+ previousPageNumber,
+ nextPageNumber,
+ },
+ })
})
})
const numPages = Math.ceil(posts.length / postsPerPage)
Array.from({ length: numPages }).forEach((_, index) => {
- const currentPageNumber = index + 1
- const previousPageNumber =
- currentPageNumber === 1 ? null : currentPageNumber - 1
- const nextPageNumber =
- currentPageNumber === numPages ? null : currentPageNumber + 1
-
+ const currentPage = index + 1;
+ const previousPageNumber = currentPage === 1 ? null : currentPage - 1;
+ const nextPageNumber = currentPage === numPages ? null : currentPage + 1;
+
createPage({
- path: `/news/page/${index + 1}`,
+ path: currentPage === 1 ? `/news` : `/news/page/${currentPage}`,
component: path.resolve("./src/templates/newsPage.tsx"),
context: {
limit: postsPerPage,
skip: index * postsPerPage,
- numPages,
- currentPageNumber,
+ currentPage,
+ totalPages: numPages,
previousPageNumber,
nextPageNumber,
+ baseUrl: "/news",
},
- })
- })
+ });
+ });
}
diff --git a/package-lock.json b/package-lock.json
index 341427272..0d9323d21 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -81,6 +81,7 @@
"@testing-library/jest-dom": "^6.6.3",
"@testing-library/react": "^16.2.0",
"@testing-library/user-event": "^14.6.1",
+ "@types/fs-extra": "^11.0.4",
"@types/gatsbyjs__reach-router": "^2.0.5",
"@types/prismjs": "^1.26.5",
"@types/react": "^18.3.13",
@@ -92,6 +93,8 @@
"autoprefixer": "^10.4.20",
"axios-mock-adapter": "^2.1.0",
"babel-preset-gatsby": "^3.14.0",
+ "canvas": "^3.1.0",
+ "fs-extra": "^11.3.0",
"gatsby-cli": "^5.14.0",
"gatsby-plugin-postcss": "^6.14.0",
"jest-canvas-mock": "^2.5.2",
@@ -6796,6 +6799,16 @@
"resolved": "https://registry.npmjs.org/@types/extend/-/extend-3.0.4.tgz",
"integrity": "sha512-ArMouDUTJEz1SQRpFsT2rIw7DeqICFv5aaVzLSIYMYQSLcwcGOfT3VyglQs/p7K3F7fT4zxr0NWxYZIdifD6dA=="
},
+ "node_modules/@types/fs-extra": {
+ "version": "11.0.4",
+ "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-11.0.4.tgz",
+ "integrity": "sha512-yTbItCNreRooED33qjunPthRcSjERP1r4MqCZc7wv0u2sUkzTFp45tgUfS5+r7FrZPdmCCNflLhVSP/o+SemsQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/jsonfile": "*",
+ "@types/node": "*"
+ }
+ },
"node_modules/@types/gatsbyjs__reach-router": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/@types/gatsbyjs__reach-router/-/gatsbyjs__reach-router-2.0.5.tgz",
@@ -6851,6 +6864,15 @@
"resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz",
"integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ=="
},
+ "node_modules/@types/jsonfile": {
+ "version": "6.1.4",
+ "resolved": "https://registry.npmjs.org/@types/jsonfile/-/jsonfile-6.1.4.tgz",
+ "integrity": "sha512-D5qGUYwjvnNNextdU59/+fI+spnwtTFmyQP0h+PfIOSkNfpU6AOICUOkm4i0OnSk+NyjdPJrxCDro0sJsWlRpQ==",
+ "dev": true,
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
"node_modules/@types/keyv": {
"version": "3.1.4",
"resolved": "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz",
@@ -9225,6 +9247,20 @@
],
"license": "CC-BY-4.0"
},
+ "node_modules/canvas": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/canvas/-/canvas-3.1.0.tgz",
+ "integrity": "sha512-tTj3CqqukVJ9NgSahykNwtGda7V33VLObwrHfzT0vqJXu7J4d4C/7kQQW3fOEGDfZZoILPut5H00gOjyttPGyg==",
+ "dev": true,
+ "hasInstallScript": true,
+ "dependencies": {
+ "node-addon-api": "^7.0.0",
+ "prebuild-install": "^7.1.1"
+ },
+ "engines": {
+ "node": "^18.12.0 || >= 20.9.0"
+ }
+ },
"node_modules/capital-case": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz",
@@ -13173,9 +13209,9 @@
"integrity": "sha512-kSxoARUDn4F2RPXX48UXnaFKwVU7Ivd/6qpzZL29MCDmr9sTvybv4gFCp+qaI4fM9m0z9fgz/yJvi56GAz+BZg=="
},
"node_modules/fs-extra": {
- "version": "11.2.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz",
- "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==",
+ "version": "11.3.0",
+ "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.3.0.tgz",
+ "integrity": "sha512-Z4XaCL6dUDHfP/jT25jJKMmtxvuwbkrD1vNSMFlo9lNLY2c5FHYSQgHPRZUjAB26TpDEoW9HCOgplrdbaPV/ew==",
"dependencies": {
"graceful-fs": "^4.2.0",
"jsonfile": "^6.0.1",
diff --git a/package.json b/package.json
index 08b849704..3ad37f23b 100644
--- a/package.json
+++ b/package.json
@@ -77,6 +77,7 @@
"@testing-library/jest-dom": "^6.6.3",
"@testing-library/react": "^16.2.0",
"@testing-library/user-event": "^14.6.1",
+ "@types/fs-extra": "^11.0.4",
"@types/gatsbyjs__reach-router": "^2.0.5",
"@types/prismjs": "^1.26.5",
"@types/react": "^18.3.13",
@@ -88,6 +89,8 @@
"autoprefixer": "^10.4.20",
"axios-mock-adapter": "^2.1.0",
"babel-preset-gatsby": "^3.14.0",
+ "canvas": "^3.1.0",
+ "fs-extra": "^11.3.0",
"gatsby-cli": "^5.14.0",
"gatsby-plugin-postcss": "^6.14.0",
"jest-canvas-mock": "^2.5.2",
diff --git a/src/components/Announcements/TabContent.tsx b/src/components/Announcements/TabContent.tsx
index da04211ea..c2bc92933 100644
--- a/src/components/Announcements/TabContent.tsx
+++ b/src/components/Announcements/TabContent.tsx
@@ -1,74 +1,28 @@
import React from "react"
-const testResultsText: string = `# Timestamp: Wed Mar 2 10:51:55 2022 UTC
-1..168
-ok 1 - MachineInfo_0
- ---
- duration_ms: 581
- ...
-ok 2 - ClassLoadingTest_5m_0
- ---
- duration_ms: 304339
- ...
-ok 3 - ClassLoadingTest_5m_1
- ---
- duration_ms: 303883
- ...
-etc.
- ...
-ok 168 - MauveMultiThrdLoad_5m_1
- ---
- duration_ms: 304296
- ...`
+import { Link } from "gatsby-plugin-react-i18next"
-const TabContent = () => {
+const TabContent = ({ posts }) => {
return (
-
-
- 2 weeks ago
-
-
- Announcement Title
-
-
- Eclipse Temurin offers high-performance, cross-platform, open-source
- Java runtime binaries that are enterprise-ready and Java SE TCK-tested
- for general use in the Java ecosystem.
-
-
-
-
- {testResultsText}
-
-
-
-
-
- 2 weeks ago
-
-
- Announcement Title
-
-
- Eclipse Temurin offers high-performance, cross-platform, open-source
- Java runtime binaries that are enterprise-ready and Java SE TCK-tested
- for general use in the Java ecosystem.
-
-
-
-
-
- 2 weeks ago
-
-
- Announcement Title
-
-
- Eclipse Temurin offers high-performance, cross-platform, open-source
- Java runtime binaries that are enterprise-ready and Java SE TCK-tested
- for general use in the Java ecosystem.
-
-
+ {posts.map((post, index) => (
+ <>
+
+
+
+ {Math.floor((new Date().getTime() - new Date(post.node.frontmatter.date).getTime()) / (1000 * 60 * 60 * 24 * 7))} weeks ago
+
- Eclipse Temurin offers high-performance, cross-platform, open-source Java runtime binaries that are enterprise-ready and Java SE TCK-tested for general use in the Java ecosystem.
-
- Eclipse Temurin offers high-performance, cross-platform, open-source Java runtime binaries that are enterprise-ready and Java SE TCK-tested for general use in the Java ecosystem.
-
-
+
+ 213
+ weeks ago
+
+
+ Mock Title 2
+
+
+ Mock Description 2
+
+
+
-
-
+
- 2 weeks ago
-
-
- Announcement Title
-
-
- Eclipse Temurin offers high-performance, cross-platform, open-source Java runtime binaries that are enterprise-ready and Java SE TCK-tested for general use in the Java ecosystem.
-