Dieses Projekt stellt einen webbasierten LaTeX-Editor und verschiedene LaTeX-Vorlagen bereit. Der Editor ermöglicht mittels WebAssembly das clientseitige Kompilieren von Dokumenten im Browser.
Die Webanwendung wird in einem separaten Repository gehostet: github.com/fhswf/LaTeX-Editor
- Einen neuen Ordner mit den LaTeX-Projektdateien im Verzeichnis
templatesanlegen. Der Name des Ordners dient später in der Webanwendung als Name der Vorlage. - Änderungen übernehmen und pushen. Ein GitHub-Workflow überführt die Vorlagen dann automatisch in das Ziel-Repository.
Auf dieselbe Weise findet auch das Deployment der Webanwendung statt. Änderungen oder Bugfixes werden entsprechend hier in diesem Repository durchgeführt.
Im LaTeX-Dokument können Platzhalter verwendet werden, aus welchen die Webanwendung ein Formular erzeugt. Platzhalter werden in doppelte geschweifte Klammern gefasst:
- bspw.
{{Titel}}oder{{Name des Autors}}für einfache Textfelder - bspw.
{{Abstract }}für mehrzeilige Textfelder durch Anhängen eines Leerzeichens
Die Formularfelder unterstützen das Einfügen von LaTeX-Code.
In den Platzhaltern können LaTeX-Zeilenumbrüche verwendet werden, zum Beispiel {{MfG\\Bob}}. In mehrzeiligen Eingabefeldern werden diese um tatsächliche Zeilenumbrüche ergänzt, wobei die Rückstriche erhalten bleiben.
Dieses Projekt nutzt SwiftLaTeX und WebAssembly für das clientseitige Kompilieren von LaTeX-Dokumenten im Webbrowser. Des Weiteren kommen Texlive-Ondemand, Ace und client-zip zum Einsatz.
Das Projekt beruht auf zwei Repositorys:
- Quell-Repository (dieses Repository): LaTeX-Vorlagen, Quellcode der Webanwendung, Workflow für das Deployment
- Ziel-Repository: Hier wird die Webanwendung mittels GitHub-Pages gehostet.
Für das Deployment wird ein RSA-Schlüsselpaar benötigt.
- GitHub-Pages einrichten und das Verzeichnis
/docsals Document-Root wählen - den Public-Key als deploy key hinzufügen und die Option allow write access aktivieren (siehe
.github/workflows/deploy.yml) - (optional: Custom-Domain einrichten; dazu muss beim Internet Service Provider folgender CNAME-Eintrag vorgenommen werden:
<gituser>.github.io.)
- den Private-Key als actions secret mit dem Namen
ID_RSAhinzufügen (siehe.github/workflows/deploy.yml) - in
.github/workflows/deploy.ymldas Ziel-Repository unterREMOTE_REPOeintragen - in
swiftlatex/texliveserver.jsdie URL des TeXLive-On-Demand-Servers ändern, sofern ein abweichender Server verwendet werden soll - (bei Verwendung einer Custom-Domain wird diese in
.github/workflows/deploy.ymlunterREMOTE_CUSTOM_URLeingetragen; dadurch wird automatisch eine entsprechendeCNAME-Datei erzeugt)
Falls nicht der von SwiftLaTeX bereitgestellte Server verwendet werden soll, kann ein eigener Server mithilfe eines Docker-Containers betrieben werden:
git clone https://github.com/SwiftLaTeX/Texlive-Ondemand
cd Texlive-Ondemand/
sudo docker build --tag texondemand .
sudo docker run --restart unless-stopped --detach -p 4711:5001 texondemand
Die URL (bspw. http://latex.example.net:4711/) wird dann wie oben geschildert in swiftlatex/texliveserver.js eingetragen.