Skip to content

Commit d4b44a6

Browse files
authored
Merge branch 'master' into fix/lfx-program-page
2 parents 2d9ce49 + 3e228e6 commit d4b44a6

File tree

237 files changed

+18618
-25508
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

237 files changed

+18618
-25508
lines changed

gatsby-node.js

Lines changed: 62 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,6 @@ const {
1515
getExcludedCollections,
1616
isFullSiteBuild,
1717
} = require("./src/utils/build-collections");
18-
const {
19-
componentsData,
20-
} = require("./src/sections/Projects/Sistent/components/content");
2118

2219
const shouldBuildFullSite = isFullSiteBuild();
2320
const excludedCollections = new Set(
@@ -358,6 +355,25 @@ exports.createPages = async ({ actions, graphql, reporter }) => {
358355
}
359356
}
360357
}
358+
sistentComponents: allMdx(
359+
filter: {
360+
fields: { collection: { eq: "sistent" } }
361+
}
362+
) {
363+
group(field: { fields: { componentName: SELECT } }) {
364+
fieldValue
365+
nodes {
366+
fields {
367+
slug
368+
componentName
369+
pageType
370+
}
371+
internal {
372+
contentFilePath
373+
}
374+
}
375+
}
376+
}
361377
}
362378
`);
363379

@@ -726,39 +742,29 @@ exports.createPages = async ({ actions, graphql, reporter }) => {
726742
}
727743
});
728744

729-
const components = componentsData.map((component) =>
730-
component.src.replace("/", ""),
731-
);
732-
const createComponentPages = (createPage, components) => {
733-
const pageTypes = [
734-
{ suffix: "", file: "index.js" },
735-
{ suffix: "/guidance", file: "guidance.js" },
736-
{ suffix: "/code", file: "code.js" },
737-
];
745+
// Create Sistent component pages dynamically from MDX
746+
// Use grouping to identify which sub-pages (Tabs) exist for each component
747+
const sistentGroups = res.data.sistentComponents.group;
748+
const sistentTemplate = path.resolve("src/templates/sistent-component.js");
738749

739-
components.forEach((name) => {
740-
pageTypes.forEach(({ suffix, file }) => {
741-
const pagePath = `/projects/sistent/components/${name}${suffix}`;
742-
const componentPath = `./src/sections/Projects/Sistent/components/${name}/${file}`;
743-
if (fs.existsSync(path.resolve(componentPath))) {
744-
try {
745-
createPage({
746-
path: pagePath,
747-
component: require.resolve(componentPath),
748-
});
749-
} catch (error) {
750-
console.error(`Error creating page for "${pagePath}":`, error);
751-
}
752-
} else {
753-
console.info(
754-
`Skipping creating page "${pagePath}" - file not found: "${componentPath}"`,
755-
);
756-
}
750+
sistentGroups.forEach((group) => {
751+
const componentName = group.fieldValue;
752+
// content-learn uses different fields, sistent uses componentName.
753+
754+
const availablePages = group.nodes.map((node) => node.fields.pageType);
755+
756+
group.nodes.forEach((node) => {
757+
createPage({
758+
path: node.fields.slug,
759+
component: `${sistentTemplate}?__contentFilePath=${node.internal.contentFilePath}`,
760+
context: {
761+
slug: node.fields.slug,
762+
componentName: componentName,
763+
availablePages: availablePages,
764+
},
757765
});
758766
});
759-
};
760-
761-
createComponentPages(createPage, components);
767+
});
762768
};
763769

764770
// slug starts and ends with '/' so parts[0] and parts[-1] will be empty
@@ -845,13 +851,11 @@ exports.onCreateNode = ({ node, actions, getNode }) => {
845851
const parent = getNode(node.parent);
846852
let collection = parent.sourceInstanceName;
847853

848-
// --- CHANGED: Consolidated Source Logic ---
849854
// If the source is "collections", we determine the actual collection
850855
// from the parent directory name (e.g., "blog", "news", etc.)
851856
if (collection === "collections") {
852857
collection = parent.relativeDirectory.split("/")[0];
853858
}
854-
// ------------------------------------------
855859

856860
createNodeField({
857861
name: "collection",
@@ -914,6 +918,29 @@ exports.onCreateNode = ({ node, actions, getNode }) => {
914918
if (node.frontmatter.title)
915919
slug = `/community/events/${slugify(node.frontmatter.title)}`;
916920
break;
921+
case "sistent": {
922+
// For sistent components, create slug from directory structure
923+
const componentSlug = parent.relativeDirectory.split("/").pop();
924+
const fileName = parent.name;
925+
const suffix = fileName === "index" ? "" : `/${fileName}`;
926+
927+
slug = `/projects/sistent/components/${componentSlug}${suffix}`;
928+
929+
createNodeField({
930+
name: "componentName",
931+
node,
932+
value: componentSlug,
933+
});
934+
935+
// "index" -> "overview", others match filename
936+
const pageType = fileName === "index" ? "overview" : fileName;
937+
createNodeField({
938+
name: "pageType",
939+
node,
940+
value: pageType,
941+
});
942+
break;
943+
}
917944
default:
918945
slug = `/${collection}/${slugify(node.frontmatter.title)}`;
919946
}

src/collections/handbook/repository-overview/repo-data.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ export const repo_data = [
4848
project: "Meshery Documentation",
4949
image: meshery,
5050
site: "http://docs.meshery.io",
51-
language: "Jekyll",
51+
language: "Hugo",
5252
maintainers_name: ["Vacant"],
5353
link: [""],
5454
repository: "https://github.com/meshery/meshery/tree/master/docs",

src/collections/members/ritesh-karankal/index.mdx

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,7 @@ linkedin: riteshkarankal
88
layer5: bf6a3e39-503c-4f58-b244-e5243cfb7cd5
99
location: Chhattisgarh, India
1010
bio: Hi, I’m Ritesh Karankal I’m a CSE graduate, always curious and always learning with a focus on DevOps and related technologies.I’m passionate about contributing to open source, building distributed systems, exploring cloud-native tech, and diving into all things automation. Always excited to learn, share, and build cool stuff with the community.
11-
badges:
12-
- community
13-
status: Active
11+
status: Inactive
1412
emeritus: yes
1513
maintainer: no
1614
published: true

src/collections/programs/gsoc-2026/index.mdx

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -42,23 +42,16 @@ import playground from "./meshery-playground-alt-4.webp";
4242
## GSoC 2026 Project Ideas
4343
<br />
4444

45-
#### Migration of docs.meshery.io from Jekyll to Hugo
45+
#### Support for Azure in Meshery
4646

47-
- **Description:** The Meshery documentation [docs.meshery.io](https://docs.meshery.io) is a critical resource for users and contributors. Currently built using Jekyll, the site faces limitations in build speed, scalability, and long-term maintainability. Hugo, a modern static site generator, offers significantly faster build times, better content organization, and an improved developer experience. This internship focuses on migrating the entire [docs.meshery.io](https://docs.meshery.io) site from Jekyll to the Hugo framework, using docs.layer5.io (already implemented in Hugo) as a reference architecture. The migration will involve porting all documentation content, assets, layouts, and configuration while preserving URLs, SEO, contributor workflows, and existing auto-generated documentation files.
47+
- **Description:** Enhance Meshery's existing orchestration capabilities to include support for Azure. The <a href="https://azure.github.io/azure-service-operator">Azure Service Operator</a>(ASO) provides a wide variety of Azure Resources via Kubernetes custom resources as first-class <a href="https://docs.meshery.io/concepts/logical/models">Meshery Models</a>. This involves enabling Meshery to manage and orchestrate Azure services and their resources, similar to how it handles other Kubernetes resources. The project will also include generating support for Azure services and their resources in Meshery's Model generator.
4848
- **Expected outcome:**
49-
- Revamp of documentation set information architecture. Alignment with Diataxis framework.
50-
- Updated contributor docs.
51-
- All self-documenting aspects accounted for:
52-
- Compatibility tests of Meshery Adapters.
53-
- End-to-end tests of Meshery UI.
54-
- Integration of Meshery Catalog and all designs.
55-
- Publication of community discussion forum activity per category.
56-
- Integration of Meshery Models (Integrations)
57-
- **Recommended Skills:** Static site generators (Jekyll and Hugo), Markdown, HTML/CSS, Git/GitHub workflows, documentation engineering, basic Go templating (Hugo), CI/CD familiarity.
58-
- **Mentor(s):** <Link to="/community/members/lee-calcote">Lee Calcote</Link>, <Link to ="mailto:kate.suttons2337@gmail.com">Kate Suttons</Link>
59-
- **Expected project size:** 175 hours
60-
- **Difficulty:** Medium
61-
- **Upstream Issue (URL):** [https://github.com/meshery/meshery/issues/17095](https://github.com/meshery/meshery/issues/17095)
49+
- Meshery will be able to orchestrate and manage all Azure services supported by ASO. This includes the ability to discover, configure, deploy, and operate the lifecycle of Azure services through Meshery. The Meshery Model generator will be updated to automatically generate models for Azure services, simplifying their integration and management within Meshery. This will be an officially supported feature of Meshery.
50+
- **Recommended Skills:** Golang, Kubernetes, Azure, well-written and well-spoken English
51+
- **Mentor(s):** <Link to="/community/members/lee-calcote">Lee Calcote</Link>, <Link to="mailto:mia.grenell2337@gmail.com">Mia Grenell</Link>
52+
- **Expected project size:** large (175 hours)
53+
- **Difficulty:** Hard
54+
- **Upstream Issue (URL):** https://github.com/meshery/meshery/issues/11244
6255

6356
#### Relationships for AWS services
6457

0 commit comments

Comments
 (0)