-
Notifications
You must be signed in to change notification settings - Fork 679
feat: Add Learning page to Community Handbook (closes #2189) #2236
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
AumPatel1
commented
Jun 11, 2025
Yay, your first pull request! 👍 A contributor will be by to give feedback soon. In the meantime, please review the Newcomers' Guide and sure to join the community Slack. |
✅ Deploy Preview for mesheryio-preview ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Summary of Changes
Hello @AumPatel1, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!
This pull request implements a new 'Learning' page within the Meshery Community Handbook. The goal is to consolidate various resources and information related to learning about Meshery and engaging with the community's educational initiatives. It includes the page content, a custom layout, and specific styling to present the information effectively.
Highlights
- New Handbook Page: Adds a new 'Learning' page to the Community Handbook to serve as a central resource for learning about Meshery and cloud native management.
- Custom Layout and Styling: Introduces a new Jekyll layout (
_layouts/handbook-learn.html
) and dedicated CSS styles (assets/css/handbook-learn.css
) to provide a specific look and feel for the learning page, including sidebars for navigation and related links. - Learning Resources Content: Includes Markdown content (
community/handbook/learning.md
) detailing Meshery's capabilities, getting started steps, community engagement, and a comprehensive list of learning materials like the Playground, Docs, Tutorials, and YouTube channel.
Using Gemini Code Assist
The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.
Invoking Gemini
You can request assistance from Gemini at any point in your pull request via creating an issue comment (i.e. comment on the pull request page) using either /gemini <command>
or @gemini-code-assist <command>
. Below is a summary of the supported commands.
Feature | Command | Description |
---|---|---|
Code Review | /gemini review |
Performs a code review for the current pull request in its current state. |
Pull Request Summary | /gemini summary |
Provides a summary of the current pull request in its current state. |
Comment | @gemini-code-assist | Responds in comments when explicitly tagged, both in issue comments and review comments. |
Help | /gemini help |
Displays a list of available commands. |
Customization
To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/
folder in the base of the repository. Detailed instructions can be found here.
Limitations & Feedback
Gemini Code Assist is currently in preview and may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments to provide feedback.
You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.
Footnotes
-
Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configureGemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution. ↩
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code Review
This pull request introduces a new "Learning" page to the Meshery Community Handbook, including a new HTML layout (_layouts/handbook-learn.html
), custom CSS (assets/css/handbook-learn.css
), and the Markdown content for the page (community/handbook/learning.md
).
The review focuses on several key areas:
- Functionality of Navigation: Ensuring the "ON THIS PAGE" links in the layout correctly correspond to sections in the Markdown content. This requires adjustments to both the HTML links and the Markdown heading structure.
- CSS Quality: Suggestions for improving CSS maintainability by reviewing the use of
!important
, addressing potential redundancy or unused style blocks, and ensuring consistent file formatting. - Content Completeness: Pointing out a TODO comment in the Markdown that needs to be addressed.
Overall, the changes establish a good foundation for the new learning page. Addressing the feedback will enhance its functionality, maintainability, and completeness.
<li><a href="#introducing-meshery">Introducing Meshery</a></li> | ||
<li><a href="#key-capabilities">Key Capabilities</a></li> | ||
<li><a href="#getting-started">Getting Started</a></li> | ||
<li><a href="#join-the-community">Join the Community</a></li> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The "ON THIS PAGE" links are hardcoded and currently do not align with the structure of community/handbook/learning.md
or how Markdown typically generates anchors.
Specifically:
- The link
href="#introducing-meshery"
does not correspond to any clear section or heading in thelearning.md
document. The main H1 inlearning.md
is "Learning together". - Links like
href="#key-capabilities"
,href="#getting-started"
, andhref="#join-the-community"
will only function if the corresponding text inlearning.md
(e.g.,**Key Capabilities**
) is changed to actual Markdown headings (e.g.,## Key Capabilities
) that generate these specific anchors.
Please ensure these links accurately reflect the headings and generated anchors from the page content. You may need to adjust the link targets here and/or the Markdown structure in learning.md
.
For future maintainability, consider exploring methods to dynamically generate these 'On This Page' links based on the headings present in {{ content }}
.
Meshery is the cloud native manager that enables the design and operation of any service mesh and their workloads. It is an extensible platform that provides a consistent and efficient way to manage service meshes across different environments. | ||
|
||
|
||
**Key Capabilities** |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sections like "Key Capabilities", "Getting Started" (line 21), and "Join the Community" (line 33) are currently formatted using bold text (**Text**
). This formatting does not generate HTML anchors (IDs) that can be linked to from the "ON THIS PAGE" navigation in the handbook-learn.html
layout.
To ensure these sections are linkable and to improve the document's semantic structure, please change them to level 2 Markdown headings (e.g., ## Key Capabilities
). This will allow the corresponding links in the sidebar (e.g., #key-capabilities
) to function correctly.
**Key Capabilities** | |
## Key Capabilities |
</div> | ||
</footer> | ||
</body> | ||
</html> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
padding-top: 0 !important; | ||
margin-top: 0 !important; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The use of !important
for padding-top
and margin-top
on .learn-content
should be reviewed. While !important
can be a quick fix, it often makes CSS harder to maintain and debug in the long run as it breaks the natural cascade.
Could these styles be achieved with higher specificity selectors or by adjusting the order of CSS rules, rather than relying on !important
? It's worth investigating if there's a less forceful way to ensure these styles apply as intended.
.learning-page-actual-content { | ||
max-width: 680px; | ||
margin: 0 auto; | ||
padding: 0; | ||
} | ||
.learning-page-actual-content h2, | ||
.learning-page-actual-content h3 { | ||
color: #fff; | ||
font-weight: 700; | ||
margin-top: 2.2em; | ||
margin-bottom: 0.7em; | ||
letter-spacing: -0.5px; | ||
} | ||
.learning-page-actual-content h2 { | ||
font-size: 2rem; | ||
} | ||
.learning-page-actual-content h3 { | ||
font-size: 1.3rem; | ||
} | ||
.learning-page-actual-content p { | ||
color: #eceff1; | ||
font-size: 1.08rem; | ||
line-height: 1.7; | ||
margin-bottom: 1.2em; | ||
} | ||
.learning-page-actual-content ul, | ||
.learning-page-actual-content ol { | ||
margin-left: 1.5em; | ||
margin-bottom: 1.2em; | ||
} | ||
.learning-page-actual-content li { | ||
font-size: 1.08rem; | ||
line-height: 1.7; | ||
margin-bottom: 0.5em; | ||
} | ||
.learning-page-actual-content a { | ||
color: #00B39F; | ||
text-decoration: underline; | ||
transition: color 0.2s; | ||
} | ||
.learning-page-actual-content a:hover { | ||
color: #00D3A9; | ||
} | ||
.learning-page-actual-content code { | ||
font-family: 'Roboto Mono', monospace; | ||
background: #1c1c1c; | ||
color: #EBC017; | ||
padding: 2px 6px; | ||
border-radius: 4px; | ||
font-size: 0.98em; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The styles defined for the .learning-page-actual-content
selector (lines 208-258) might currently be unused. The {{ content }}
variable in _layouts/handbook-learn.html
(line 60) inserts the rendered Markdown directly. Unless this Markdown output is explicitly wrapped with an element having the class learning-page-actual-content
(either by Jekyll configuration or within the Markdown source itself), these specific styles will not be applied.
The subsequent styles targeting elements within the broader .learn-content
(from line 342 onwards) would likely be what styles the actual page content.
Please verify if the learning-page-actual-content
class is indeed being applied to the main content block.
- If it is not, these styles (lines 208-258) could potentially be removed to reduce unused code.
- If it is applied, then there's a significant overlap with the styles defined from line 342 onwards, which should be consolidated to avoid redundancy.
.learn-content { | ||
padding-top: 0 !important; | ||
margin-top: 0 !important; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
} | ||
|
||
.learn-content h1:first-child { | ||
margin-top: 0.5em !important; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The !important
flag on margin-top: 0.5em !important;
for .learn-content h1:first-child
should ideally be avoided if a less forceful method can achieve the same result. Using !important
can complicate future CSS maintenance and overrides.
Could this specific margin be enforced by ensuring this rule has higher specificity than conflicting h1
margin rules, or by adjusting the cascade order? For example, if other h1
styles are less specific, !important
might not be necessary.
|
||
.learn-content h1:first-child { | ||
margin-top: 0.5em !important; | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
- **Comprehensive Documentation:** Dive deep into [Meshery Docs](https://docs.meshery.io) for detailed guides, concepts, and operational instructions. | ||
- **Step-by-Step Tutorials:** Follow our [Hands-on Tutorials](https://docs.meshery.io/guides/tutorials) to learn specific Meshery functionalities. | ||
- **Recorded Trainings and Talks:** Watch workshops, community meetings, and presentations on the [Layer5 YouTube Channel](https://www.youtube.com/c/Layer5io). | ||
- **Cloud Native Learning Paths:** Engage with structured courses designed to build your expertise in cloud native technologies and Meshery. <!-- Add a link to Layer5 Academy or specific learning paths if available. --> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This line contains a TODO comment: <!-- Add a link to Layer5 Academy or specific learning paths if available. -->
.
Please address this by either:
- Adding the relevant link if it's now available.
- Removing the placeholder comment if the link is not forthcoming or will be added elsewhere.
- Creating a follow-up issue to track the addition of this link if it's planned but not yet ready, and then removing or updating the comment here.
|
||
## Sharing What You've Learned on Our Blog | ||
|
||
Document your learning journey, the solutions you've built with Meshery, and your experiences within the community. All community members are welcome to contribute to the [Meshery Blog](https://meshery.io/blog) and the [Layer5 Blog](https://layer5.io/blog). Sharing your insights helps others learn and grows our collective knowledge. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's a common convention and good practice to end files with a newline character. This can prevent issues with some version control systems, file concatenation tools, and diff utilities.
Document your learning journey, the solutions you've built with Meshery, and your experiences within the community. All community members are welcome to contribute to the [Meshery Blog](https://meshery.io/blog) and the [Layer5 Blog](https://layer5.io/blog). Sharing your insights helps others learn and grows our collective knowledge. | |
All community members are welcome to contribute to the [Meshery Blog](https://meshery.io/blog) and the [Layer5 Blog](https://layer5.io/blog). Sharing your insights helps others learn and grows our collective knowledge. | |
🚨 Alert! Git Police! We couldn’t help but notice that one or more of your commits is missing a sign-off. A what? A commit sign-off (your email address). To amend the commits in this PR with your signoff using the instructions provided in the DCO check. To configure your dev environment to automatically signoff on your commits in the future, see these instructions.
|
@AumPatel1 Add it as an agenda item to the meeting minutes, if you would :) |