Welcome!
-
-
- Learn Home
- Core Concepts
- Companies and Departments
- Courses
- Course Status and Visibility
- Sections
- Video Activities
- Reading Activities
- Document Activities
- Enrolling People in a Course
- Bulk Enroll With CSV
- Roles in a Course
- How Progress Is Tracked
- Course Reports
- Knowledge Base Overview
- Libraries and Folders
- Uploading Content Items
- Library Visibility
- AI Agent per Library
- My Courses
- Platform People
-
- Project Structure Template
- Table of Contents (TOC)
- Content Folder
- Introduction to Markdown
- Markdown Basics
- Markdown Lists
- Markdown Links
- Markdown Images
- Markdown Code
- Markdown Tables
- Markdown Equations
- Markdown Videos
- Markdown Embedded HTML
- VS Code Snippets
- Introduction to Styles
- Framed Narrations
- Markdown Configuration
- Editor Setup
-
Template
This page is for teams on the Markdown path, which the Lupo team sets up on request (see Markdown Configuration). If you create videos from PowerPoint, Google Slides or a PDF, you don't need it.
In order to generate videos, Lupo has two requirements:
A table of contents file.
A Markdown file, PowerPoint file, or Google Slides presentation for each video.
The content of the
toc.yml(table of contents) file should look like this:
Recommended:
name: [Project Name]
version: [Version]
email: [e-mail or e-mails, commas separated]
speaker: [Speaker]
chapters:
- name: [Chapter Name]
sections:
- name: [Section Name]
href: [Path/to/file.md]
As an example:
name: Hello world
version: v1
email: help@lupo.ai, dev@lupo.ai
speaker: Jenny
chapters:
- name: Sample Chapter
sections:
- name: Sample Section
href: sample/sample.md
And taking a look at the minimum:
name: [Project Name]
chapters:
- name: [Chapter Name]
sections:
- name: [Section Name]
href: [Path/to/file.md]
But considering the following:
- Indent with two spaces per level, exactly as above.
toc.ymlis read as YAML, and a file whosesections:sits deeper than its chapter'sname:is rejected before anything renders. - If
speakeris left out, the narrator is Aria (English, US). - If
emailis left out, the build notification goes to the address Lupo has on file for the GitHub account that started the build (and to help@lupo.ai when there is none).
- The content of each
.mdfile should look like this:
---
marp: true
---

# [Title]
## [Subtitle]
[text]
<!--
[Narration]
-->
---
* [Item 1]
* [Item 2]
* [Item 3]
<!--
[Narration 2]
-->
Here's an example markdown document that follows these guidelines and uses some basic Marp features:
---
marp: true
---

# Hello World with Lupo!
## lupo.ai
<!--
Welcome to our hello world with Lupo Template!
-->
---
We recommend using this template for any new project you are starting.
Below we explain what it includes.
<!--
We recommend using this template for any new project you are starting. Below we explain what it includes.
-->
---
* `toc.yml` [required]: configuration file.
* `themes/customtheme.css` [optional]: custom theme css.
* `.vscode/customsnippets.code-snippets`: [optional]: save time creating slides.
* `.vscode/extensions.json` [optional]: recommendations.
* `.vscode/settings.json` [optional]: marp theme settings.
<!--
The toc.yml contains the configuration of your project including features like speaker, speed, voice, and so on.
customtheme.css is a styles file where you can customize everything in your slides.
customsnippets.code-snippets is extremely useful for templates and saves you time when creating presentations.
extensions.json contains recommended extensions for vs code.
settings.json contains some marp configurations but it is mostly for the themes.
-->
---
<video src="https://mlgstorageaccount.blob.core.windows.net/media/samples/niagara_falls.mp4">
<!--
Thank you for your time!
-->
About .vscode/settings.json: it is optional only for a project with no custom theme. Lupo finds the theme named in a slide file's theme: header through the markdown.marp.themes list in that file, and a theme it cannot find there is skipped with a warning. The template ships it pointing at ./themes/customtheme.css.
And taking a look at the minimum:
---
marp: true
---
[text]
<!--
[Narration]
-->