Log in Sign up

Documentation

Course Package Format

Everything you need to know about creating and uploading course ZIP archives.

Download .md
ZIP Archive YAML Frontmatter Markdown Sections

Course Package Format (ZIP)

Specification version: 2.0

Oceanowledge accepts two package types: course (practical lessons) and book (narrative chapters). The manifest is always named course.md.

Archive structure

course-name.zip
├── course.md
├── lessons/                 # type: course
│   └── 01-intro.md
├── chapters/                # type: book
│   └── 01-intro.md
└── assets/                  # optional PNG/SVG and other images

Manifest

---
type: course                 # course | book; defaults to course
title: "Elixir Basics"
version: "1.1"               # required MAJOR.MINOR package version
slug: elixir-basics
language: en                  # en | ru | es
level: beginner
tags: [elixir, backend]
lessons:
  - 01-intro.md
---
Description in Markdown...

Books use type: book and replace lessons: with chapters:. The matching directory and list are required; using the wrong key is a manifest error. The list order defines reading order. A published package re-upload must have a strictly greater version. Malformed versions are warnings; missing versions default to "1.1".

Course lessons

Each lesson has YAML frontmatter and all four sections: ## Theory, ## Examples, ## Checklist, and ## Questions. Questions use numbered prompts and task-list options, with exactly one [x] answer. Mermaid fences are preserved as ordinary Markdown. Relative assets/... image links are rewritten when the file exists.

Book chapters

Chapters have YAML frontmatter and free-form prose. Optional reserved sections are:

  • ## Illustration: each ### heading defines a named figure with its first image and optional italic caption.
  • ## Encyclopedia: each ### heading defines a glossary term and its definition.
  • ## Questions: the same optional self-check format as course questions.
  • ## Further Reading: Markdown content, commonly a link list.

Checklists are course-only. Book chapters may contain ordinary ##/### headings outside the reserved sections.

Validation and limits

Missing course.md, invalid type, wrong content key, missing listed files, bad content frontmatter, missing course sections, path traversal, or an archive over 50 MB/1,000 files fails the import. Unlisted content files, malformed package versions, broken image references, and questions without exactly one correct option are warnings; invalid questions are skipped.

Assets are uploaded under a versioned course path. Replacing a package replaces its content and preserves the course record while incrementing the platform’s internal course version.

Quick Reference

Archive Structure

package-name.zip
├── course.md
├── lessons/ or chapters/
└── assets/ (optional)

Required Manifest Fields

type, title, version, slug, language
lessons or chapters

Optional:
level, tags

Content Sections

Course: Theory, Examples, Checklist, Questions
Book: Illustration, Encyclopedia, Questions, Further Reading

Limits

Max ZIP size: 50 MB
Max files: 1,000
Languages: en, ru, es