mvp implementation
This commit is contained in:
@@ -1,13 +1,33 @@
|
||||
# officeconvert
|
||||
|
||||
officeconvert is a toolset to convert common office document types images using LibreOffice (`soffice`). This repository provides three classes of projects:
|
||||
officeconvert is a multimodule conversion toolkit for turning presentation files into
|
||||
typed `SlideDeck` artifacts with rendered slide images and notes. The repository is
|
||||
organized around Protocol Buffer schemas with ConnectRPC code generation for both server
|
||||
and client compatibility.
|
||||
|
||||
- Python library responsible for actual conversion work
|
||||
- Connect gRPC Python server for easy microservice deployment
|
||||
- Client libraries for assorted languages
|
||||
## Modules
|
||||
|
||||
APIs are built on typed Protocol Buffer schemas with codegen for the server and clients based on the primary schema.
|
||||
- `proto/` contains protobuf schemas and RPC definitions.
|
||||
- `gen/python` and `gen/go` contain generated protocol and Connect code.
|
||||
- `python/packages/officeconvert` is the core conversion library (PPTX -> PDF -> images + notes).
|
||||
- `python/packages/server` is the ConnectRPC Python server with MinIO orchestration.
|
||||
- `clients/go` is the first client library with layered orchestration helpers.
|
||||
- `deploy/` contains production-ish and dev Docker Compose files.
|
||||
|
||||
## Supported Document Types
|
||||
|
||||
Currently, only PPTX and ODP documents are supported. At the time of writing, PDF and image conversion is planned, however, presentation documents can currently only be converted to a custom `SlideDeck` type that encodes slides as images and includes richly-formatted slide notes.
|
||||
MVP currently supports **PPTX only** and produces a `SlideDeck` result containing:
|
||||
|
||||
- ordered slide image URLs
|
||||
- plain-text notes per slide
|
||||
|
||||
## Quick Commands
|
||||
|
||||
Use the root `Makefile`:
|
||||
|
||||
- `make buf-lint` to lint protobufs
|
||||
- `make buf-generate` to regenerate Go and Python types
|
||||
- `make py-sync` to sync Python workspace dependencies with uv
|
||||
- `make go-test` to run Go client tests
|
||||
- `make compose-up` to run server + MinIO
|
||||
- `make compose-up-dev` to run MinIO only
|
||||
|
||||
Reference in New Issue
Block a user