Crate coursemap

Source
Expand description

Course Map - A tool to visualize course dependencies from Quarto/Markdown documents

This library provides functionality to parse Quarto/Markdown documents and generate visual dependency graphs showing the relationships between courses. It’s designed to help educators and course designers understand and visualize curriculum structures.

§Multi-Language Support

This Rust library serves as the core for bindings in multiple languages:

  • 🦀 Rust: Core library and command-line tool
  • 🐍 Python: pip install coursemap - Object-oriented API with CourseMap.show() and CourseMap.save()
  • 📊 R: install.packages("coursemap") - R package with Quarto integration

§Rust API Example

use coursemap::{Config, App};

// Load configuration
let config = Config::load_default().unwrap();

// Create app instance
let app = App::new(config);

// Generate course map
app.run("./courses", "course_map.svg", "svg").unwrap();
import coursemap

# Quick display (like matplotlib.pyplot.show())
coursemap.show("./courses")

# Object-oriented approach (recommended)
cm = coursemap.CourseMap("./courses")
cm.show()  # Display inline in Jupyter/Quarto
cm.save("course_map.svg")  # Save to file

§R API

library(coursemap)

# Object-oriented approach (recommended)
cm <- coursemap("./courses")
plot(cm)  # Display in RStudio/knitr
write_map(cm, "course_map.svg")  # Save to file

§Document Format

Course documents should include frontmatter with course metadata:

---
title: "Introduction to Economics"
course-map:
  id: intro
  phase: Pre
  prerequisites: []
---

Re-exports§

pub use config::Config;

Modules§

cli
Command-line interface for the course map tool
config
Configuration management for the course map tool
graph
Graph construction and manipulation for course dependencies
parser
Document parsing functionality for extracting course metadata
renderer
Graph rendering functionality for generating visual output

Structs§

App
The main application structure
Error
The Error type, a wrapper around a dynamic error type.

Type Aliases§

Result
Result<T, Error>