Skip to content

Commit 68b1aa1

Browse files
Merge branch 'master' into update-kanvas-logos
2 parents be4fd74 + 252fbe1 commit 68b1aa1

2 files changed

Lines changed: 125 additions & 4 deletions

File tree

  • src
    • collections/blog/meetTheMaintainer-template
    • sections/Learn-Layer5/Chapters
Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
---
2+
title: "Meet the Maintainer: [Maintainer Name]"
3+
subtitle: "An interview series with Layer5 Maintainers"
4+
date: "2025-04-12 10:30:05 -0530"
5+
author: "Layer5 Team"
6+
thumbnail: ../../../assets/images/layer5/layer5-only/svg/layer5-black.svg
7+
darkthumbnail: ../../../assets/images/layer5/layer5-only/svg/layer5-light-bg.svg
8+
category: "Open Source"
9+
type: Blog
10+
resource: false
11+
published: false
12+
---
13+
14+
import { BlogWrapper } from "../Blog.style.js";
15+
import { MeetTheMaintainer } from "../MeetTheMaintainer.style";
16+
import { Link } from "gatsby";
17+
import ForkLift from "../../../assets/images/app/hero/forklift.svg";
18+
19+
const MaintainerName = "Interviewee";
20+
const InterviewerName = "Interviewer";
21+
const MaintainerArea = "Project, Component";
22+
23+
<BlogWrapper>
24+
<MeetTheMaintainer>
25+
<div class="intro">
26+
<p>Continuing in our Meet the Maintainer series, we have {MaintainerName}. {MaintainerName} is a [Brief introduction about the maintainer]</p>
27+
</div>
28+
<div class="interviewer">
29+
<span>{InterviewerName}:</span>
30+
<p>{MaintainerName}, thank you for taking the time to join me today. While many people, both within and beyond the Layer5 community, have witnessed the impact of your contributions, they may not know the story behind who you are and how you became a maintainer. Could you share your journey with us? How did you discover the Layer5 community, and what inspired you to stay?</p>
31+
</div>
32+
<div class="interviewee">
33+
<span>{MaintainerName}:</span>
34+
<p>[Maintainer's response]</p>
35+
</div>
36+
<div class="interviewer">
37+
<span>{InterviewerName}:</span>
38+
<p>You're a <Link to="/projects/meshery">Meshery {MaintainerArea}</Link> Maintainer. What does being a Meshery {MaintainerArea} maintainer mean to you?</p>
39+
</div>
40+
<div class="interviewee">
41+
<span>{MaintainerName}:</span>
42+
<p>[Maintainer's response]</p>
43+
</div>
44+
<div class="interviewer">
45+
<span>{InterviewerName}:</span>
46+
<p>Have you worked with any other open source project? How does Layer5 compare?</p>
47+
</div>
48+
<div class="interviewee">
49+
<span>{MaintainerName}:</span>
50+
<p>[Maintainer's response]</p>
51+
</div>
52+
<div class="interviewer">
53+
<span>{InterviewerName}:</span>
54+
<p><Link to="/projects">Layer5</Link> has a number of active, open source projects. You've been consistently contributing to a few of them. Which one(s) are you currently focusing on?</p>
55+
</div>
56+
<div class="interviewee">
57+
<span>{MaintainerName}:</span>
58+
<p>[Maintainer's response]</p>
59+
</div>
60+
<div class="interviewer">
61+
<span>{InterviewerName}:</span>
62+
<p>What's the coolest Meshery {MaintainerArea} demo you have done/seen?</p>
63+
</div>
64+
<div class="interviewee">
65+
<span>{MaintainerName}:</span>
66+
<p>[Maintainer's response]</p>
67+
</div>
68+
<div class="interviewer">
69+
<span>{InterviewerName}:</span>
70+
<p>What is your favorite feature or aspect of {MaintainerArea} in this project, and why?</p>
71+
</div>
72+
<div class="interviewee">
73+
<span>{MaintainerName}:</span>
74+
<p>[Maintainer's response]</p>
75+
</div>
76+
<div class="interviewer">
77+
<span>{InterviewerName}:</span>
78+
<p>What is your hot tip for working with Meshery that others may not know?</p>
79+
</div>
80+
<div class="interviewee">
81+
<span>{MaintainerName}:</span>
82+
<p>[Maintainer's response]</p>
83+
</div>
84+
<div class="interviewer">
85+
<span>{InterviewerName}:</span>
86+
<p>Where do you see opportunities for contributors to actively engage and contribute to {MaintainerArea} within the Meshery and Layer5 community?</p>
87+
</div>
88+
<div class="interviewee">
89+
<span>{MaintainerName}:</span>
90+
<p>[Maintainer's response]</p>
91+
</div>
92+
<div class="interviewer">
93+
<span>{InterviewerName}:</span>
94+
<p>Let's get to know you a bit better with some quick questions: What's the emoji you use most often? Do you prefer movies or books? Would you consider yourself a morning person or a night owl? Over the past year, what's a project or accomplishment you're particularly proud of?</p>
95+
</div>
96+
<div class="interviewee">
97+
<span>{MaintainerName}:</span>
98+
<p>[Maintainer's response]</p>
99+
</div>
100+
<div class="interviewer">
101+
<span>{InterviewerName}:</span>
102+
<p>Do you have any advice for individuals hopeful to become Meshery {MaintainerArea} contributors or potentially maintainers?</p>
103+
</div>
104+
<div class="interviewee">
105+
<span>{MaintainerName}:</span>
106+
<p>[Maintainer's response]</p>
107+
</div>
108+
<div class="note"> <img src={ForkLift} height="100px" />
109+
<p>The Meshery project moves at an impressive pace thanks to maintainers like {MaintainerName}. Be like {MaintainerName}. Join the <a href="https://slack.layer5.io">Layer5 Slack</a> and say "hi".</p>
110+
</div>
111+
</MeetTheMaintainer>
112+
</BlogWrapper>

src/sections/Learn-Layer5/Chapters/index.js

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,21 @@ const Chapters = ({ chapterData, courseData, location, serviceMeshesList, TOCDat
7171
const capitalize = (s) => s.charAt(0).toUpperCase() + s.slice(1);
7272

7373
const ServiceMeshesAvailable = ({ serviceMeshes }) => serviceMeshes.map((sm, index) => {
74+
const meshImage = findServiceMeshImage(serviceMeshImages, sm.section);
75+
76+
if (!meshImage?.imagepath) {
77+
if (process.env.NODE_ENV === "development") {
78+
console.warn(`[Chapters] Missing meshesYouLearn image data for: ${sm.section} (chapter: ${chapterData.fields.slug})`);
79+
}
80+
return null;
81+
}
82+
7483
return (
75-
<>
76-
<div className={`service-mesh-image ${isMeshActive(sm.section) ? "service-mesh-image-active" : ""}`} key={index}>
84+
<React.Fragment key={sm.section || index}>
85+
<div className={`service-mesh-image ${isMeshActive(sm.section) ? "service-mesh-image-active" : ""}`}>
7786
<Link to={`/${sm.slug}`} data-tooltip-id="mesh-name" data-tooltip-content={capitalize(sm.section)} className="course" key={index}>
7887
<Image
79-
{...findServiceMeshImage(serviceMeshImages, sm.section).imagepath}
88+
{...meshImage.imagepath}
8089
className="docker"
8190
alt={sm.section}
8291
/>
@@ -89,7 +98,7 @@ const Chapters = ({ chapterData, courseData, location, serviceMeshesList, TOCDat
8998
style={{ backgroundColor: "rgb(60,73,79)" }}
9099
className="mesh-tooltip"
91100
/>
92-
</>);
101+
</React.Fragment>);
93102
});
94103

95104
if (showQuizModal) {

0 commit comments

Comments
 (0)