You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This repo is the official content repository for the Meshery Academy, which can be run stand-alone and alongside your Meshery deployment(s) for an integrated learning experience. This academy contains learning paths, challenges, and certifications, helping engineers learn how to manage cloud-native infrastructure with Meshery.
10
+
This repo is the official content repository for the Meshery Academy, which can be run stand-alone or alongside your Meshery deployment(s) for an integrated learning experience. This academy contains learning paths, challenges, and certifications, helping engineers learn how to manage cloud-native infrastructure with Meshery.
11
11
12
-
**[Academies as Meshery Extensions](https://docs.meshery.io/extensions/academies/)**
12
+
<imgsrc=".github/assets/images/meshery-academy-light.svg"alt="Meshery Academy"height="20px"valign="top" /> **[Academies as Meshery Extensions](https://docs.meshery.io/extensions/academies/)**
13
13
14
14
Academies are modular, Git-native learning management systems (LMS), which can be run stand-alone and/or as an extension of your Meshery deployment(s) for an integrated learning experience. Academies emphasize hands-on, cloud-native education (AI, Cloud, Kubernetes, CNCF projects, configuration and infrastructure management) through structured curricula, interactive Labs, embedded visualizations, and verifiable credentials.
15
15
16
-
---
16
+
---
17
+
18
+
|||
19
+
|--------------|-------------|
20
+
|**Purpose**| Primary source of Meshery learning content |
21
+
|**Platform**| Runs stand-alone or alongside your Meshery deployment(s) |
22
+
|**Authoring**| Markdown-based content with live local preview via Hugo |
_Preferred:_ Start the Hugo development server with drafts and future content enabled, using the Makefile target:
61
86
62
87
```bash
63
88
make site
64
89
```
65
90
66
-
*(This uses the locally installed `hugo-extended` version to prevent version conflicts).*
67
-
68
-
The local preview uses the academy-theme or any styling updates that you have made. When paired with a Remote Provider, academy content might be presented differently.
69
91
70
-
---
71
92
72
-
## Add Your Content
73
93
74
-
Now you're ready to create your learning path. The structure is: Learning Path → Course → Chapter → Lesson.
94
+
The site will be available at `http://localhost:1313/academy/` (or the port shown in your terminal).
75
95
76
-
A high-level view of the structure looks like this:
96
+
> **Note:** The local preview uses basic styling. Full Academy branding is applied after content is integrated into the cloud platform.
77
97
78
-
```text
79
-
content/
80
-
└── learning-paths/
81
-
├── _index.md
82
-
└── <organization-uid>/
83
-
└── <learning-path>/
84
-
├── _index.md
85
-
└── <course-1>/
86
-
└── <course-2>/
87
-
├── _index.md
88
-
└── content/
89
-
└── lesson-1.md
90
-
└── lesson-2.md
91
-
```
98
+
### 4. Other Useful Commands
92
99
93
-
- Create your folder structure following the hierarchy.
94
-
- Add your lessons as Markdown (.md) files inside the content directory of a course.
95
-
- Each `_index.md` and `lesson` file should begin with Hugo front-matter specifying title, description, and weight.
100
+
| Command | Description |
101
+
|---------|-------------|
102
+
|`make setup`| Install npm dependencies |
103
+
|`make site`| Build and run site locally with draft and future content enabled |
104
+
|`make build`| Build the site for production |
105
+
|`make build-preview`| Build site for preview draft and future content enabled (honors `BASEURL`) |
106
+
|`make clean`| Clear build cache and restart the dev server |
107
+
|`make lint-fix`| Fix Markdown linting issues with `markdownlint-cli2`|
108
+
|`make check-go`| Verify Go is installed locally |
109
+
|`make theme-update`| Update the `academy-theme` Hugo module to the latest version |
96
110
97
-
```yaml
98
-
---
99
-
title: "Title of Section"
100
-
description: "One-liner summary"
101
-
weight: 10# for menu order, lower numbers appear first
102
111
---
112
+
113
+
## 📁 Repository Structure
114
+
```text
115
+
meshery-academy/
116
+
├── .github/ # GitHub-related resources and automation
117
+
| ├── archive/meetings # Archived meeting minutes and discussion notes
118
+
| ├── assets/images # README assets
119
+
│ ├── build/ # Makefile includes
120
+
│ ├── ISSUE_TEMPLATE/ # Templates for bug reports, feature requests, and documentation issues
121
+
| ├── welcome/ # Assets used in contributor welcome messages
122
+
│ ├── workflows/ # CI/CD pipelines
123
+
│ └── PULL_REQUEST_TEMPLATE.md
124
+
├── content/ # 📝 All learning content lives here
125
+
│ ├── _index.md # Site root page
126
+
│ ├── learning-paths/ # Learning paths
127
+
│ ├── certifications/ # Certification content
128
+
│ ├── challenges/ # Challenge content
129
+
│ └── content-formatting-examples/ # Examples of Markdown and Hugo shortcodes
130
+
├── layouts/ # Hugo layout overrides & shortcodes
131
+
│ ├── _partials/ # Partial templates
132
+
│ └── shortcodes/ # Custom Hugo shortcodes
133
+
├── static/ # Static assets
134
+
├── public/ # Generated site output (git-ignored)
135
+
├── resources/ # Hugo resource cache
136
+
├── go.mod / go.sum # Go module dependencies
137
+
├── hugo.yaml # Hugo configuration
138
+
├── Makefile # Build & development commands
139
+
├── package.json # Node.js dependencies
140
+
└── README.md # Project documentation
103
141
```
104
142
105
143
---
106
-
## Developing Certification Exams
107
144
108
-
Now you're ready to create your certification exam.
109
-
A high-level view of the structure looks like this:
145
+
## ✍️ Content Authoring
146
+
147
+
### Content Hierarchy
148
+
149
+
The Academy content follows this structure: **Learning Path → Course → Chapter → Lesson**.
110
150
111
151
```text
112
152
content/
113
-
└── certifications/
153
+
└── learning-paths/
114
154
├── _index.md
115
-
└── <organization-uid>/
116
-
└── certified-meshery-associate/
155
+
└── <orgID>
156
+
└── <your-learning-path>/
117
157
├── _index.md
118
-
└── exam-1.md
119
-
└── exam-2.md
120
-
└── certified-meshery-contributor/
121
-
├── _index.md
122
-
└── exam-1.md
123
-
└── exam-2.md
124
-
```
125
-
- Create your folder structure following the hierarchy.
126
-
- Add your exam as Markdown (.md) files inside the exam directory, for e.g. in `certified-meshery-contributor` directory.
127
-
- Each `_index.md` and `exam` file should begin with Hugo frontmatter specifying title, description, weight, `passPercentage`, `maxAttempts`, `timeLimit`, `numberOfQuestions`, and `questions`.
128
-
- Give every question a stable `id`, and give every option within a question a stable `id`. These author-facing IDs may be short values like `q1`, `a`, or `true`, but question IDs must be unique within one assessment and option IDs must be unique within one question. The Academy theme converts them into stable UUIDs in the generated JSON consumed by Meshery Cloud.
- Ensure that each `exam` contains question pool as multiple of `numberOfQuestions`. For e.g., if the exam has `numberOfQuestions` is 25, the question pool could be 50 or 75 or so on.
155
-
156
-
## Managing Assets: Images, Videos, and Embedded Designs
157
-
158
-
Enhance your courses with images and rich visual content using the Page Bundling method for optimal compatibility.
159
164
160
165
### How to Add an Image
161
166
162
167
1. Place your image files directly in the same directory as your markdown content (Page Bundling method):
> Always use these shortcodes for images, videos, and embedded designs. This keeps assets portable, ensures they resolve correctly for each organization, and integrates properly with the Academy platform’s build and deployment flow.
204
207
208
+
### Adding Assessments
209
+
210
+
Assessment files use the Academy test layout. Question and option IDs must be unique within their scope.
211
+
212
+
```yaml
213
+
---
214
+
title: "Assessment Example"
215
+
id: "assessment-example"
216
+
type: "test"
217
+
layout: "test"
218
+
passPercentage: 70
219
+
maxAttempts: 3
220
+
timeLimit: 30
221
+
numberOfQuestions: 1
222
+
questions:
223
+
- id: "q1"
224
+
text: "Meshery Academy content is authored in Markdown."
225
+
type: "true-false"
226
+
marks: 1
227
+
options:
228
+
- id: "true"
229
+
text: "True"
230
+
isCorrect: true
231
+
- id: "false"
232
+
text: "False"
233
+
---
234
+
```
235
+
236
+
205
237
---
206
238
207
239
## Local Development
@@ -231,8 +263,8 @@ We welcome contributions to improve:
231
263
- Additional learning paths, challenges, or certifications
232
264
- Shortcodes, layouts, and formatting
233
265
234
-
1. See [CONTRIBUTING.md](https://github.com/meshery-extensions/meshery-academy/blob/master/CONTRIBUTING.md) for details on branching, committing, and opening PRs.
235
-
2. Please review our [CODE_OF_CONDUCT.md](https://github.com/meshery-extensions/meshery-academy/blob/master/CODE_OF_CONDUCT.md) and [SECURITY.md](https://github.com/meshery-extensions/meshery-academy/blob/master/SECURITY.md) before contributing.
266
+
1. See [CONTRIBUTING.md](CONTRIBUTING.md) for details on branching, committing, and opening PRs.
267
+
2. Please review our [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) and [SECURITY.md](SECURITY.md) before contributing.
0 commit comments