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
templates
anlegen. 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
/docs
als 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_RSA
hinzufügen (siehe.github/workflows/deploy.yml
) - in
.github/workflows/deploy.yml
das Ziel-Repository unterREMOTE_REPO
eintragen - in
swiftlatex/texliveserver.js
die 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.yml
unterREMOTE_CUSTOM_URL
eingetragen; 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.