Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request migrates the project from a desktop GUI application to a modern, containerized FastAPI web API for compiling LaTeX files to PDF. It introduces Docker support, a GitHub Actions workflow for automated image publishing, and a new RESTful endpoint for LaTeX compilation. The codebase is simplified by removing all GUI-related files and logic, focusing solely on API-based PDF generation.
The most important changes are:
API and Backend Refactor:
main.py, exposing a/compileendpoint for LaTeX-to-PDF conversion, supporting both.texfiles and supplementary assets. The new implementation uses temporary directories for isolated, secure compilation and returns the generated PDF as a response.customtkinter,converting.py, andenv_setup.py, as well as the Mac/Windows packaging scriptsetup.py. [1] [2] [3]Containerization and Deployment:
Dockerfileto build a minimal Python 3.11-based image with TeX Live and all Python dependencies, exposing port 80 for the API..dockerignorefile to exclude unnecessary files from the Docker build context, such as.git, virtual environments, and OS-specific files.Continuous Integration / Delivery:
.github/workflows/docker-publish.yml) to automatically build and publish the Docker image to GitHub Container Registry (GHCR) on pushes and pull requests tomain.Documentation:
README.mdto reflect the new API-centric workflow, including Docker usage, API testing instructions, and removal of desktop-application-specific content.