Import Format
Reference for markdown file formats used in module imports
Import Format
Reference for the markdown file formats used by andamio course import and andamio course export.
Directory Structure
module-folder/
├── outline.md # Required — module metadata and SLTs
├── introduction.md # Optional — shown before lessons
├── lesson-1.md # Optional — content for SLT 1
├── lesson-2.md # Optional — content for SLT 2
├── lesson-N.md # Optional — content for SLT N
├── assignment.md # Optional — module assignment
└── assets/ # Optional — images
├── screenshot.png
└── .image-manifest.jsonoutline.md (Required)
Defines the module metadata and Student Learning Targets. Each SLT becomes a lesson slot.
---
title: Introduction to Cardano
code: intro-cardano
---
## SLTs
1. Understand blockchain fundamentals
2. Set up a Cardano wallet
3. Execute your first transactionRules:
- YAML frontmatter must include
titleandcode - The
codefield is the unique module identifier — can be numeric (101) or a slug (intro-cardano) - No
# H1heading in this file — the title comes from YAML frontmatter - SLT heading must be exactly
## SLTsor## SLT(case-insensitive) - Each numbered or bulleted item becomes one SLT
- SLT text is used exactly as written — preserve any "I can" prefix
- If
codematches an existing module, content will be updated (upsert)
lesson-N.md (Optional)
Content for each lesson, where N corresponds to the SLT index (1-indexed). File lesson-1.md maps to the first SLT, lesson-2.md to the second, etc.
# Understanding Blockchain
A blockchain is a distributed ledger...
## Key Concepts
- Decentralization
- Immutability
- Consensus mechanismsRules:
- The
# H1heading becomes the lesson title in the app - Everything after the H1 becomes the lesson content
- If no H1 is present, the lesson imports with a blank title
- Supports standard markdown: headings, lists, code blocks, blockquotes, emphasis, links, images
introduction.md (Optional)
Module introduction shown before lessons. Great for context, prerequisites, or learning objectives.
# Welcome to Cardano Development
This module covers the fundamentals
of building on the Cardano blockchain.
## Prerequisites
- Basic programming knowledge
- Curiosity about Web3Rules:
# H1heading becomes the introduction title- Rest of content becomes the introduction body
assignment.md (Optional)
Module assignment content. This is the task students complete to demonstrate mastery.
# Module Assignment
## Task
Create a simple Cardano wallet and
document the process.
## Deliverables
1. Screenshot of wallet setup
2. Your wallet address
3. Brief reflection (200 words)Rules:
# H1heading becomes the assignment title- Use
## Taskand## Deliverablessections for consistent structure - Additional sections like
## Notesare allowed
Images
Place images in an assets/ subdirectory and reference them with relative paths.
Referencing Images

Both assets/image.png and ./assets/image.png work.
Supported Formats
.png, .jpg, .jpeg, .gif, .webp, .svg (max 5MB per image)
What Happens on Import
- New images are uploaded to the CDN
- Local paths are replaced with hosted URLs
- An
.image-manifest.jsonfile is written mapping filenames to CDN URLs
Image Manifest
The .image-manifest.json file preserves CDN URLs across import/export cycles:
{
"screenshot-wallet.png": "https://storage.googleapis.com/andamio-storage/abc123.png",
"diagram-1.png": "https://storage.googleapis.com/andamio-storage/def456.png"
}On subsequent imports, images in the manifest are not re-uploaded. On export, images are downloaded from their CDN URLs and the manifest is recreated.
Best Practices
- Use lowercase filenames without spaces:
wallet-setup.pngnotWallet Setup.png - Name screenshots to match lesson flow:
1.1-connect-wallet-01.png,1.1-connect-wallet-02.png - Remove unused images and their manifest entries before importing
Common Mistakes
| Mistake | What Happens | Fix |
|---|---|---|
Adding # H1 to outline.md | Ignored, but adds confusion | Remove it — title comes from YAML title: field |
Missing # H1 in lesson files | Lesson imports with blank title | Add a descriptive H1 heading |
Using # Student Learning Targets | Parser ignores SLTs entirely | Use ## SLTs exactly |
| Placeholder lesson files (< 50 bytes) | Skipped by importer, remaining lessons re-indexed to wrong SLTs | Write real content or remove the file |
| Image filenames with spaces | May cause upload issues | Use lowercase with hyphens |