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 withCourseMap.show()
andCourseMap.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();
§Python API (Recommended)
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§
Type Aliases§
- Result
Result<T, Error>