Files
2026-09-18 16:36:52 +02:00

64 lines
2.6 KiB
Markdown

# CHFOIT-IPA
CHFOIT-IPA is a specialized [Typst](https://typst.app/) library and template tailored for the "Individuelle Produktivarbeit" (IPA) within
the Federal Office of Information Technology (BIT) of Switzerland.
It automates the administrative overhead of documentation-versioning, schedule syncing,
and code embedding. It allows you to focus on the technical content of your project.
## Features
- **Swiss Government Styling**: Implements the official color palette and typography of the [Swiss Design System](https://github.com/swiss/designsystem).
- **Automated Document Assembly**: A modular structure that pulls content from structured subdirectories.
- **Open API Spec renderer**: You can use `"@local/chfoit-ipa:0.0.0": oasviz` to render your swagger.json
- **Dynamic Asset Pipeline**:
- **Draw.io Integration**: Automatic export of `.drawio` diagrams to PDF.
- **Excel to Document**: Syncs Excel-based schedules into PDF attachments and provides the timetable for the "Arbeitsjournal"
- **Git-Powered Versioning**: Automatically populates the "Version History" table using `git log` metadata and person mapping.
- **Smart Appendix**: Automatically tracks and renders source code from the `04_Code/` directory with syntax highlighting.
- **Language Support**: Automatic "ß" to "ss" conversion.
## Usage
### Setup Configuration
1. Clone this Repository
2. Make a symlink to your local Typst packages:
`ln -s "$PWD" "${data-dir}/typst/packages/local/chfoit-ipa/0.0.0"`
The variable data-dir is:
- `$XDG_DATA_HOME` or `~/.local/share` on Linux
- `~/Library/Application Support` on macOS
- `%APPDATA%` on Windows
3. Initialize your IPA with this command:
```
typst init @local/chfoit-ipa:0.0.0 test
```
4. Change the placeholder Variables
5. Have a successful IPA
### Build Process
The template relies on a `Makefile` to handle external dependencies like Draw.io and Excel.
Here are the most important targets:
- **Build everything**: `make `
- **Live Preview**: `make watch` (Watches only Typst files).
- **Build Diagrams**: `make drawio`.
## Requirements
To use the full automation suite, ensure the following are installed:
- **Typst CLI**: The core compiler.
- **Draw.io Desktop**: For automated diagram exports.
If you are on macOS you may have to specify `DRAWIO_CMD="/Applications/draw.io.app/Contents/MacOS/draw.io"`
when running your makefiles.
- **LibreOffice (Headless)**: To convert `.xlsx` project plans to PDF.
- **Python 3**: For converting Excel schedules to YAML for dynamic Typst.
Make sure you have the dependencies from the `02_Zeitplan/requirements.txt` file installed.