Metadata-Version: 2.4
Name: munchboka-edutools
Version: 0.3.5
Summary: Sphinx/Jupyter Book directives and assets for Munchboka and VGS books
Project-URL: Homepage, https://github.com/reneaas/munchboka-edutools
Project-URL: Issues, https://github.com/reneaas/munchboka-edutools/issues
Author: René Ask
License: MIT License
        
        Copyright (c) [2024] [René Alexander Ask]
        
        Permission is hereby granted, free of charge, to any person obtaining a copy
        of this software and associated documentation files (the "Software"), to deal
        in the Software without restriction, including without limitation the rights
        to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
        copies of the Software, and to permit persons to whom the Software is
        furnished to do so, subject to the following conditions:
        
        The above copyright notice and this permission notice shall be included in all
        copies or substantial portions of the Software.
        
        THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
        IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
        FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
        AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
        LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
        OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
        SOFTWARE.
License-File: LICENSE
Keywords: directives,education,jupyter-book,munchboka,sphinx
Classifier: Framework :: Sphinx :: Extension
Classifier: Framework :: Sphinx :: Theme
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Documentation
Requires-Python: >=3.9
Requires-Dist: beautifulsoup4>=4.11
Requires-Dist: cairosvg>=2.7.0
Requires-Dist: click>=8.0
Requires-Dist: imageio>=2.31.0
Requires-Dist: lxml>=4.9
Requires-Dist: matplotlib>=3.7
Requires-Dist: numpy>=1.23
Requires-Dist: pillow>=10.0.0
Requires-Dist: plotmath
Requires-Dist: pyyaml>=6.0
Requires-Dist: scipy>=1.9
Requires-Dist: signchart
Requires-Dist: sphinx>=6.0
Requires-Dist: sympy>=1.11
Provides-Extra: dev
Requires-Dist: black; extra == 'dev'
Requires-Dist: build; extra == 'dev'
Requires-Dist: jupyter-book; extra == 'dev'
Requires-Dist: pytest; extra == 'dev'
Requires-Dist: ruff; extra == 'dev'
Requires-Dist: twine; extra == 'dev'
Description-Content-Type: text/markdown

# munchboka-edutools

Reusable Sphinx / Jupyter Book directives and assets for Norwegian educational content.

**NEW**: Includes `muncho` - a command-line tool for building beautiful, print-ready books with enhanced typography, layout, and **automatic LaTeX math rendering for PDFs**. See [CLI_README.md](CLI_README.md) for details.

## Key Features

✨ **Auto-configured Sphinx extensions** for Jupyter Book  
📚 **Custom educational directives** (quiz, dialogue, plots, animations, etc.)  
🖨️ **Print-optimized PDF builds** with proper typography  
🧮 **Automatic PDF math rendering** - LaTeX expressions work seamlessly in PDFs  
🎨 **Multiple build profiles** (print, web, custom)  
🎬 **Animated plots** - Create animations with transparent backgrounds (WebP/GIF)  
📄 **Print-friendly CSS** - Browser "Print to PDF" creates clean problem sheets with answer keys

## Install

```bash
pip install munchboka-edutools
```

## Usage

### As Sphinx Extensions (Jupyter Book `_config.yml`)

```yaml
sphinx:
  extra_extensions:
    - munchboka_edutools
```

All packaged directives are auto-registered. Static assets (including print-friendly CSS and JS) are placed under `_static/munchboka/` during the build.

### Print-Friendly PDFs

Simply press **Ctrl+P** (or Cmd+P) in your browser when viewing any page to create a clean PDF with:
- All tabs flattened with part labels (a, b, c, etc.)
- Answers and solutions hidden from main content
- Automatic answer key page at the end
- CAS popup buttons hidden
- Better page breaks

See [docs/print_pdf.md](docs/print_pdf.md) for details.

### As Build Tool

Build books with enhanced formatting:

```bash
# Print-optimized build (includes automatic PDF math rendering)
muncho build matematikk_1t --profile print

# Web-optimized build
muncho build matematikk_r1 --profile web

# See all options
muncho --help
```

**PDF Math Rendering**: When building PDFs, muncho automatically configures `sphinx.ext.imgmath` to render LaTeX math expressions as high-quality SVG images. No changes to your source files needed!

See [CLI_README.md](CLI_README.md) for full CLI documentation and [QUICKSTART.md](QUICKSTART.md) for a quick start guide.

## Development

Clone and install dev extras:

```bash
pip install -e .[dev]
```

### Local demo book

Build the embedded demo book:

```bash
jupyter-book build book/
```

### Adding a new directive

1. Create `src/munchboka_edutools/directives/my_directive.py` exposing `setup(app)`.
2. The package auto-loads modules under `munchboka_edutools.directives`.
3. Add an example page in `book/examples/`.

### Testing

Run tests:

```bash
pytest -q
```

## Quick Links

- **[Animation Quickstart](ANIMATE_QUICKSTART.md)** - Create animated plots
- **[CLI Documentation](CLI_README.md)** - Build tool guide
- **[Quick Start](QUICKSTART.md)** - Get started quickly
- **[Print PDF Guide](docs/print_pdf.md)** - Browser printing features
- **[Examples](book/examples/)** - See all directive examples

### Releasing

Tag a version (`v0.1.0`) and the GitHub Action will build and publish.

## License

MIT
