OER-Forge

Build, share, and improve WCAG-compliant Open Educational Resources with Python!
Welcome
OER-Forge is an open source Python toolkit for building, organizing, and publishing accessible Open Educational Resources (OERs). Our goal: make it easy and fun to create sites and documents that meet WCAG standards.
- Accessible by design: All templates and outputs aim for WCAG compliance.
- Database-driven navigation: Section indices, menus, and hierarchy are managed in SQLite for robust, extensible site structure.
- Multi-format input: Write content in Markdown, DOCX, and Jupyter Notebooks.
- Multi-format export: Markdown, DOCX, PDF, LaTeX, and TXT.
- (optional) Validation using Pa11y: Automated checks and open reporting during and after build to ensure compliance. Pa11y on GitHub
Get Started
-
Clone the repo:
git clone https://github.com/OER-Forge/OER-Forge.git cd OER-Forge
-
(optional) Create a virtual environment and activate it:
python -m venv venv source venv/bin/activate
On Windows use:
python -m venv venv venv\Scripts\activate
-
Install dependencies:
pip install -r requirements.txt
-
Build the sample site:
python build.py
-
View your site: Open
build/index.html
ordocs/index.html
in your browser.
Features
Accessibility & Usability
- Accessible by design: ARIA labels, alt text, color contrast, and keyboard navigation.
- Adjustable interface: User controls for text size, spacing, and layout.
- Dark mode: Toggle theme for better readability.
- Responsive design: Mobile-friendly layouts and navigation.
Content & Input Formats
- Multi-format input: Markdown, DOCX, Jupyter Notebooks
- Tables & lists: Advanced Markdown tables, nested lists, and task lists.
- Inline figures: Markdown images with alt text for accessibility.
- Math support: LaTeX-style math rendering with MathJax.
- Syntax highlighting: Beautiful code blocks with Pygments.
Navigation & Structure
- Section indices & navigation: Database-driven, supports arbitrary hierarchy, top-level and nested menus.
- Cross-references: Link sections, figures, tables, and listings easily.
- Footnotes & endnotes: Standard Markdown syntax for notes.
Export & Download
- Download options: Export pages in multiple formats (PDF, DOCX, TXT, etc.).
Citations & References
- Citations & references: Manage bibliographies with BibTeX.
Presentation & Customization
- Callouts & alerts: Styled boxes for tips, warnings, and important info.
- Extensible templates: Jinja2-based, easy to customize.
Build System
- Robust build system: Automated, logs to
log/
for debugging.
Documentation
Comprehensive documentation is available and hosted on GitHub.
Get Involved
We welcome your feedback, suggestions, and contributions! Please use GitHub Issues to report bugs, request features, or ask questions.
- Contribute a Pull Request: Help wanted
- Report a bug: File an issue
- Request a feature: File an enhancement
- Ask a question: Open a question
License
Content and code are licensed under CC BY-NC-SA 4.0.
Getting OER-Forge
OER-Forge is hosted on GitHub.