Matuc: Unterschied zwischen den Versionen

Aus ELVIS-Wiki
Zur Navigation springenZur Suche springen
Keine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 1:
Matuc ist ein Konverter von Markdown zu HTML, sowie ein Werkzeug zur
Matuc ist ein Konverter von Markdown zu HTML, sowie ein Werkzeug zur Automatisierung von Arbeitsschritten bei der Bearbeitung von Lehrmaterialien. Es kann auch genutzt werden, um eigene Skripte oder andere Editor-Plugins zu entwerfen.
Automatisierung von Arbeitsschritten bei der Bearbeitung von Lehrmaterialien. Es
kann auch genutzt werden, um eigene Skripte oder andere Editor-Plugins zu
entwerfen.
 


== Installation / Download ==
== Installation / Download ==
Zeile 9: Zeile 5:
=== Windows ===
=== Windows ===


Für Windows gibt es ein Installationspaket, welches Python, GladTeX und Pandoc
Für Windows gibt es ein Installationspaket, welches Python, GladTeX und Pandoc automatisch mitliefert. Für die Benutzung von GladTeX muss aber auch eine LaTeX-Distribution instaliert sein. Am einfachsten ist es daher, zuvor [http://www.miktex.org MikTeX] zu installieren.
automatisch mitliefert. Für die Benutzung von GladTeX muss aber auch eine
LaTeX-Distribution instaliert sein. Am einfachsten ist es daher, zuvor
[http://www.miktex.org MikTeX] zu installieren.


Der aktuellste Installer kann
Der aktuellste Installer kann [https://github.com/TUD-INF-IAI-MCI/AGSBS-infrastructure/releases hier] herunter geladen werden. Des Weiteren können unter [https://github.com/TUD-INF-IAI-MCI/AGSBS-infrastructure/issues Probleme und neue Funktionen melden].
[https://elvis.inf.tu-dresden.de/downloads/matuc-installer-0.7.exe hier] herunter geladen werden.


Die Installation sollte '''NICHT''' durchgeführt werden, wenn die
Die Installation sollte '''NICHT''' durchgeführt werden, wenn die Umgebungsvariable <code>%PATH%</code> Länger als 1024 Zeichen lang ist. Wenn Sie nicht wissen, was dies bedeutet, können Sie dies getrost ignorieren. Der PATH enthält Verzeichnisse, in denen automatisch nach ausführbaren Programmen gesucht wird. Wenn Sie viele Entwicklerwerkzeuge installiert haben, sollten Sie vorher unbedingt die Länge von <code>%PATH%</code> überprüfen, da diese Variable ansonsten durch die Installationsroutine beschädigt wird.
Umgebungsvariable
<code>%PATH%</code> Länger als 1024 Zeichen lang ist. Wenn Sie nicht wissen, was
dies bedeutet, können Sie dies getrost ignorieren. Der PATH enthält
Verzeichnisse, in denen automatisch nach ausführbaren Programmen gesucht wird.
Wenn Sie viele Entwicklerwerkzeuge installiert haben, sollten Sie vorher
unbedingt die Länge von <code>%PATH%</code> überprüfen, da diese Variable ansonsten durch die
Installationsroutine beschädigt wird.


==== MikTeX - Installation von Paketen====
==== MikTeX - Installation von Paketen ====


Nach der Installation von MikTeX müssen noch einige LaTeX-Pakete manuell nachinstalliert werden.  
Nach der Installation von MikTeX müssen noch einige LaTeX-Pakete manuell nachinstalliert werden. Die Installation der Pakete(Package) erfolgt über den MikTeX Package Manager. Starten Sie den MikTeX Package Manager als Administrator.
Die Installation der Pakete(Package) erfolgt über den MikTeX Package Manager. Starten Sie den MikTeX Package Manager als Administrator.


Die nachfolgenden Pakete sind zu installieren:
Die nachfolgenden Pakete sind zu installieren:
* zhmetrics
* zhmetrics
* preview
* preview
Zeile 37: Zeile 22:
* amsmath
* amsmath


Für die Installation können Sie nach den Packagen suchen. Geben Sie den Eingabefeld Name den Namen des Pakets ein und klicken Sie anschließend auf ''Filtern''.
Für die Installation können Sie nach den Packagen suchen. Geben Sie den Eingabefeld Name den Namen des Pakets ein und klicken Sie anschließend auf ''Filtern''. Anschließend müssen Sie das zu installierende Paket in der Auflistung auswählen und das Pluszeichen für die Installation wählen.
Anschließend müssen Sie das zu installierende Paket in der Auflistung auswählen
und das Pluszeichen für die Installation wählen.


=== Andere Betriebssysteme ===
=== Andere Betriebssysteme ===


Die Installation unter anderen Betriebssystemen besteht aus mehreren Schritten.
Die Installation unter anderen Betriebssystemen besteht aus mehreren Schritten. Sie kann aber, mit einigen Anpassungen, auch unter Windows durchgeführt werden.
Sie kann aber, mit einigen Anpassungen, auch unter Windows durchgeführt werden.


Als erstes muss man alle Abhängigkeiten installieren: Pandoc (>= 1.16), python
Als erstes muss man alle Abhängigkeiten installieren: Pandoc (&gt;= 1.16), python (Version &gt;= 3.2), GladTeX ([http://gladtex.github.io 1]) und LaTeX, falls GladTeX verwendet wird.
(Version >= 3.2), GladTeX ([http://gladtex.github.io]) und LaTeX, falls GladTeX verwendet wird.


Als nächstes holt man den Quellcode mittels Git (github.com):
Als nächstes holt man den Quellcode mittels Git (github.com):


<pre>git clone https://github.com/TUD-INF-IAI-MCI/AGSBS-infrastructure.git</pre>
<pre>git clone https://github.com/TUD-INF-IAI-MCI/AGSBS-infrastructure.git</pre>
 
Nach dem Herunterladen wechselt man in das neue Verzeichnis und führt folgenden Befehl aus:
Nach dem Herunterladen wechselt man in das neue Verzeichnis und führt folgenden
Befehl aus:


<pre>sudo python3 setup.py install</pre>
<pre>sudo python3 setup.py install</pre>
== Generelle Funktionsweise ==
== Generelle Funktionsweise ==


Matuc ist ein Kommandozeilenprogramm. Da es als "eierlegende Wollmilchsau"
Matuc ist ein Kommandozeilenprogramm. Da es als &quot;eierlegende Wollmilchsau&quot; konzipiert ist, besitzt es Unterkommandos, damit man nicht von einer Fülle von Optionen erschlagen wird. Ruft man also Matuc auf, muss man dahinter angeben, welches Unterpgrogramm man möchte. Gibt man keines an, wird der Hilfebildschirm ausgegeben:
konzipiert ist, besitzt es Unterkommandos, damit man nicht von einer Fülle von
Optionen erschlagen wird.
Ruft man also Matuc auf, muss man
dahinter angeben, welches Unterpgrogramm man möchte. Gibt man keines an, wird der
Hilfebildschirm ausgegeben:


<pre>
<pre>   matuc &lt;command&gt; &lt;options&gt;
matuc <command> <options>


<command> determines which action to take. The syntax might vary between
    &lt;command&gt; determines which action to take. The syntax might vary between
commands. Use matuc <command> -h for help.
    commands. Use matuc &lt;command&gt; -h for help.


Available commands are:
    Available commands are:
 
conf            - set, init or update a configuration
conv            - convert a markdown file using pandoc
imgdsc          - generate image description (snippets)
iswithinlecture - test, whether a certain path is part of a lecture
new            - create new project structure
master          - perform toc generation (see below) and call `conv` on every file
mk              - invoke "mistkerl", a quality assurance helper
toc            - generate table of contents
version        - output program version
</pre>


    addpnum        - generate new page number, relative to its predecessors
    conf            - set, init or update a configuration
    conv            - convert a project
    fixpnums        - fix incorrect page numbering of a document
    imgdsc          - generate image description (snippets)
    iswithinlecture - test, whether a certain path is part of a project
    new            - create new project structure
    mk              - invoke &quot;mistkerl&quot;, a quality assurance helper
    toc            - generate table of contents
    version        - output program version</pre>
=== Anlegen von Lehrmaterialien ===
=== Anlegen von Lehrmaterialien ===


Wer sich gern die korrekte Verzeichnisstruktur von Matuc generieren lassen
Wer sich gern die korrekte Verzeichnisstruktur von Matuc generieren lassen möchte, der kann das Kommando new benutzen. Hilfebildschirm:
möchte, der kann das Kommando new benutzen. Hilfebildschirm:


<pre>matuc new</pre>
<pre>matuc new</pre>
Um z.B. ein Buch mit einem Vorwort, zwei Anhangkapitel, mit fünf Kapiteln und auf Englisch zu erstellen, führt man folgendes aus:


Um z.B. ein Buch mit einem Vorwort, ohne Anhang, mit fünf Kapiteln und auf
<pre>matuc new -l en -c 5 -a 2 -p &quot;Neues Material&quot;</pre>
Englisch zu erstellen, führt man folgendes aus:
Nun wird der Ordner ''&quot;Neues Material'' angelegt. Die Struktur innerhalb des Ordner ist:


<pre>matuc new -l en -c 5 -p "Neues Material"</pre>
* Neues Material
** .lecture_meta_data.dcxml
** inhalt.md
** anh01
*** anh01.md
** anh02
*** anh02.md
** k01
*** k01.md
** k02
*** k02.md
** k03
*** k03.md
** k04
*** k04.md
** k05
*** k05.md
** v01
*** v01.md


=== Konfiguration ===
=== Konfiguration ===


Matuc soll sich möglichst viele Einstellungen abhängig von Lehrmaterial
Matuc soll sich möglichst viele Einstellungen abhängig von Lehrmaterial automatisch merken. Dazu gehört u.a.:
automatisch merken. Dazu gehört u.a.:


* Bearbeiter
* Bearbeiter
Zeile 110: Zeile 98:
* ...
* ...


Dies wird in einer Datei namens ".lecturemetadata.dcxml" im obersten Verzeichnis
Dies wird in einer Datei namens &quot;.lecturemetadata.dcxml&quot; im obersten Verzeichnis des zu bearbeitenden Lehrmaterials abgelegt.
des zu bearbeitenden Lehrmaterials abgelegt.
 


==== Anlegen einer Konfiguration ====
==== Anlegen einer Konfiguration ====
Zeile 119: Zeile 105:


<pre>matuc conf init</pre>
<pre>matuc conf init</pre>
im aktuellen Verzeichnis, am besten dem Stammverzeichnis des Materials (des obersten Verzeichnisses des Bearbeiteten Lehrmaterials) an.


im aktuellen Verzeichnis, am besten dem Stammverzeichnis des Materials (des
Man sollte nun unbedingt die Werte für die Konfiguration anpassen, siehe nächster Abschnitt.
obersten Verzeichnisses des Bearbeiteten Lehrmaterials) an.


Man sollte nun unbedingt die Werte für die Konfiguration anpassen, siehe
==== Anpassung der Konfiguration ====
nächster Abschnitt.


Die Informationen der Konfiguration sind sehr wichtig, da sie in jedes konvertierte Dokument eingebettet werden und daher korrekt sein müssen. Außerdem ist das Setzen der Sprache sehr wichtig für den Bearbeitungsprozess und für den Bildschirmleser des Benutzers der fertigen Dokumente.


==== Anpassung der Konfiguration ====
Man kann sich mit


Die Informationen der Konfiguration sind sehr wichtig, da sie in jedes
<pre>matuc conf show</pre>
konvertierte Dokument eingebettet werden und daher korrekt sein müssen. Außerdem
alle Optionen anzeigen lassen, die es gibt. Mit
ist das Setzen der Sprache sehr wichtig für den Bearbeitungsprozess und für den
Bildschirmleser des Benutzers der fertigen Dokumente.


Man kann sich mit <pre>matuc conf show</pre> alle Optionen anzeigen lassen, die
<pre>matuc conf update</pre>
es  gibt. Mit <pre>matuc conf update</pre> kann man dann eine Option neu setzen.
kann man dann eine Option neu setzen. Lässt man bei genanntem Befehl die Argumente weg, so wird ein Hilfebildschir ausgegeben.
Lässt man bei genanntem Befehl die Argumente weg, so wird ein Hilfebildschir
ausgegeben.


Es folgt ein Beispiel zum Setzen des Quelldokuments:
Es folgt ein Beispiel zum Setzen des Quelldokuments:


<pre>matuc conf -s "Interne Vorlesungsunterlagen" update</pre>
<pre>matuc conf -s &quot;Interne Vorlesungsunterlagen&quot; update</pre>
 
 
===== Aufbau der Konfigurationsdatei =====
===== Aufbau der Konfigurationsdatei =====


'''Im Allgemeinen ist es nicht erforderlich die Konfigurationsdatei manuell zu
'''Im Allgemeinen ist es nicht erforderlich die Konfigurationsdatei manuell zu bearbeiten. Die Anpassung kann direkt über Matuc erfolgen (siehe [[Anpassung_der_Konfiguration|Anpassung der Konfiguration]]). Trotzdem kann man die Konfiguration auch per Hand mit einem UTF-8-fähigen Editor bearbeiten.
bearbeiten. Die Anpassung kann direkt über Matuc erfolgen (siehe [[Anpassung der
Konfiguration]]). Trotzdem kann man die Konfiguration auch per Hand mit einem
UTF-8-fähigen Editor bearbeiten.


Die Konfigurationsdatei beinhaltet Meta-Informationen über das Buch und
Die Konfigurationsdatei beinhaltet Meta-Informationen über das Buch und Zusatzinformationen, die die Konvertierung beeinflussen. Das Format der Datei ist XML. Dabei wird [http://dublincore.org/documents/dces/ das Dublincore Format] verwendet. Zusätzlich nutzt das MAGSBS-Modul einen gleichnamigen Namensraum, um zusätzliche INformationen abzuspeichern.
Zusatzinformationen, die die Konvertierung beeinflussen. Das Format der Datei
ist XML. Dabei wird [http://dublincore.org/documents/dces/ das Dublincore Format] verwendet. Zusätzlich nutzt das MAGSBS-Modul einen gleichnamigen
Namensraum, um zusätzliche INformationen abzuspeichern.


Im Folgenden sind die Felder des DublinCore-Formats bzw. des MAGSBS-Moduls mit
Im Folgenden sind die Felder des DublinCore-Formats bzw. des MAGSBS-Moduls mit ihrer jeweiligen Verwendung aufgeführt und durch ein Beispiel erklärt.
ihrer jeweiligen Verwendung aufgeführt und durch ein Beispiel erklärt.


* Autor der Quelldokumente: <pre><MAGSBS:sourceAuthor>Max Mustermann, Karla Korrekturleserin</MAGSBS:sourceAuthor></pre>
* Autor der Quelldokumente: <MAGSBS:sourceAuthor>Max Mustermann, Karla Korrekturleserin</MAGSBS:sourceAuthor>
* Bearbeiter des barrierefreien Materials: <pre><dc:creator>Max Muster</dc:creator></pre>
* Bearbeiter des barrierefreien Materials: <dc:creator>Max Muster</dc:creator>
* Herausgeber: <pre><dc:publisher>TU Dresden</dc:publisher></pre>
* Herausgeber: <dc:publisher>TU Dresden</dc:publisher>
* Arbeitsgruppe der Bearbeitung (Institution): <pre><dc:contributor>AGSBS</dc:contributor></pre>
* Arbeitsgruppe der Bearbeitung (Institution): <dc:contributor>AGSBS</dc:contributor>
* Quelle des Lehrmaterials: <pre><dc:source>Vorlesungsunterlagen des Lehrstuhls für Mensch-Computer Interaktion</dc:source></pre>
* Quelle des Lehrmaterials: <dc:source>Vorlesungsunterlagen des Lehrstuhls für Mensch-Computer Interaktion</dc:source>
* Titel des Lehrmaterials/Buches: <pre><dc:title>Titel des Buches/Vorlesung</dc:title></pre>
* Titel des Lehrmaterials/Buches: <dc:title>Titel des Buches/Vorlesung</dc:title>
* Semester der Bearbeitung <pre><dc:date>SS2016</dc:date></pre>
* Semester der Bearbeitung <dc:date>SS2016</dc:date>
** An dieser Stelle sollten nur die Bezeichner SS und WS und die zwei- bzw. vierstellige Jahreszahl verwand werden
** An dieser Stelle sollten nur die Bezeichner SS und WS und die zwei- bzw. vierstellige Jahreszahl verwand werden
* Tiefe des Inhaltsverzeichnisses: regelt, bis zu welcher Ebene Überschriften ins Inhaltsverzeichnis übernommen werden
* Tiefe des Inhaltsverzeichnisses: regelt, bis zu welcher Ebene Überschriften ins Inhaltsverzeichnis übernommen werden <MAGSBS:tocDepth>2</MAGSBS:tocDepth>
  <pre><MAGSBS:tocDepth>2</MAGSBS:tocDepth></pre>
* Abstand zwischen den Seitennavigationslinks: <MAGSBS:pageNumberingGap>5</MAGSBS:pageNumberingGap>
* Abstand zwischen den Seitennavigationslinks: <pre><MAGSBS:pageNumberingGap>5</MAGSBS:pageNumberingGap></pre>
* Präfix des Anhangs: Regelt, ob vor dem Inhaltsverzeichnis der Präfix &quot;A&quot; (Anhang) vorangestellt wird: <MAGSBS:appendixPrefix>0</MAGSBS:appendixPrefix>
* Präfix des Anhangs: Regelt, ob vor dem Inhaltsverzeichnis der Präfix "A" (Anhang) vorangestellt wird: <pre><MAGSBS:appendixPrefix>0</MAGSBS:appendixPrefix></pre>
* Sprache des bearbeiteten Materials: <dc:language>de</dc:language>
* Sprache des bearbeiteten Materials: <pre><dc:language>de</dc:language></pre>


==== Konfigurationen in Unterverzeichnissen ====
==== Konfigurationen in Unterverzeichnissen ====


Falls Lehrmaterial nicht nur von einem Studenten bearbeitet wird, sollte in dem
Falls Lehrmaterial nicht nur von einem Studenten bearbeitet wird, sollte in dem Unterverzeichnis des Materials, welches dem Studenten zugeteilt wurde, eine zusätzliche Konfiguration angelegt werden. Diese sollte dann den Namen des Beareiters enthalten.
Unterverzeichnis des Materials, welches dem Studenten zugeteilt wurde, eine
zusätzliche Konfiguration angelegt werden. Diese sollte dann den Namen des
Beareiters enthalten.


Alle Unterkommandos von Matuc werden automatisch zuerst die Konfiguration
Alle Unterkommandos von Matuc werden automatisch zuerst die Konfiguration verwenden, die &quot;am nähsten&quot; an der aktuellen Datei liegt, d.h. entweder im aktuellen Verzeichnis, dem darüber und so weiter. Damit kann z.B. im Stammverzeichnis der Bearbeiter auf &quot;Max Mustermann&quot; und im Verzeichnis anh01 der Bearbeiter auf &quot;Otto Normalverbraucher&quot; gesetzt werden.
verwenden, die "am nähsten" an der aktuellen Datei liegt, d.h. entweder im
aktuellen Verzeichnis, dem darüber und so weiter. Damit kann z.B. im
Stammverzeichnis der Bearbeiter auf "Max Mustermann" und im Verzeichnis anh01
der Bearbeiter auf "Otto Normalverbraucher" gesetzt werden.


=== Konvertierung von Dateien ===
=== Konvertierung von Dateien ===


Die Konvertierung nutzt intern Pandoc, erweitert dies aber um zusätzliche
Die Konvertierung nutzt intern Pandoc, erweitert dies aber um zusätzliche Ausgabefilter und Standardvorlagen. Pandoc sollte daher zur Umwandlung von Lehrmaterial nicht verwendet werden, da z.B. Seitenzahlen nicht umgewandelt werden.
Ausgabefilter und Standardvorlagen. Pandoc sollte daher zur Umwandlung von
Lehrmaterial nicht verwendet werden, da z.B. Seitenzahlen nicht umgewandelt
werden.


Die Konvertierung geschieht mittels des Unterkommandos "conv", die Umwandlung
==== Konvertierung einzelner Dateien ====
von "Hallo.md" würde also wie folgt ablaufen:


<pre>matuc conv "Hallo.md"</pre>
Die Konvertierung erfolgt mit dem Unterkommando &quot;conv&quot;, die Umwandlung von &quot;Hallo.md&quot; würde also wie folgt ablaufen:


Matuc wird automatisch erkennen, ob LaTeX-Formeln in das MarkDown-Dokument
<pre>matuc conv &quot;Hallo.md&quot;</pre>
eingebettet wurden und GladTeX und damit LaTeX aufrufen. Dies wird auch ein
Matuc wird automatisch erkennen, ob LaTeX-Formeln in das MarkDown-Dokument eingebettet wurden und GladTeX und damit LaTeX aufrufen. Dies wird auch ein Verzeichnis bilder anlegen, sofern es noch nicht existiert.
Verzeichnis bilder anlegen, sofern es noch nicht existiert.


=== Konvertierung mehrer Datien oder Materialien ===
==== Konvertierung mehrer Datien oder Materialien ====


Matuc master wurde konzipiert um ganze Lehrmaterialverzeichnisse auf einmal zu
<code>matuc conv VERZEICHNIS</code> konvertiert das gesamte Lehrmaterialverzeichnis.
Konvertieren. Der Aufruf ist denkbar einfach:


<pre>matuc master VERZEICHNIS</pre>
Der Aufruf ist:


Wobei VERZEICHNIS entweder "." ist, wenn man sich bereits in dem korrekten
<pre>matuc conv VERZEICHNIS</pre>
Verzeichnis befindet, oder eben der Verzeichnisname, in dem die Konvertierung
Wobei VERZEICHNIS entweder &quot;.&quot; ist, wenn man sich bereits in dem korrekten Verzeichnis befindet, oder eben der Verzeichnisname, in dem die Konvertierung stattfinden soll.
stattfinden soll.


Zuerst erstellt matuc master das Inhaltsverzeichnis, so wie es auch
Zuerst erstellt <code>matuc conv VERZEICHNIS</code> das Inhaltsverzeichnis, so wie es auch
<pre>matuc toc</pre> erstellen würde. Im Anschluss konvertiert es, mit Hilfe der
Kopfdaten über die Veranstaltung aus der Konfiguration, alle Markdown-Dateien.


<pre>matuc toc</pre>
erstellen würde. Im Anschluss konvertiert es, mit Hilfe der Kopfdaten über die Veranstaltung aus der Konfiguration, alle Markdown-Dateien.


=== Erstellung eines automatischen Inhaltsverzeichnisses ===


=== Erstellung eines automatischen Inhaltsverzeichnisses ===
Das Unterkommando '''matuc toc''' ermöglicht es automatisiert Inhaltsverzeichnisse zu erstellen. Dies wird von bei der Generierung der mehrerer Dateien mittels '''matuc conv VERZEICHNIS'''


Das Unterkommando "matuc toc" ermöglicht es automatisiert Inhaltsverzeichnisse
zu erstellen. Dies wird von bei der Verwendung von <pre>matuc master</pre>
automatisch ausgeführt.
automatisch ausgeführt.


Überschriften der jeweiligen Kapitel und Unterkapitel werden automatisch aus den
Überschriften der jeweiligen Kapitel und Unterkapitel werden automatisch aus den Dateien extrahiert und nummeriert ins Inhaltsverzeichnis übernommen. Dies setzt allerdings voraus, dass die Verzeichnisstruktur auch den Vorgaben der Tutorenanleitung entspricht.
Dateien extrahiert und nummeriert ins Inhaltsverzeichnis übernommen.
Dies setzt allerdings voraus, dass die Verzeichnisstruktur auch den Vorgaben der
Tutorenanleitung entspricht.
 
Matuc toc erwartet das Verzeichnis als Parameter, in dem nach Kapiteln gesucht
werden soll. Wenn man sich im Stammverzeichnis des Lehrmaterials befindet, tippt
man ".". Die Ausgabe wird direkt auf das Terminal geschrieben. Möchte man sie
stattdessen in einer Datei speichern, muss der Parameter "-o", gefolgt von einem
Dateinamen verwendet werden. Beispiel:


<pre>matuc toc -o "inhalt.md" .</pre>
Matuc toc erwartet das Verzeichnis als Parameter, in dem nach Kapiteln gesucht werden soll. Wenn man sich im Stammverzeichnis des Lehrmaterials befindet, tippt man &quot;.&quot;. Die Ausgabe wird direkt auf das Terminal geschrieben. Möchte man sie stattdessen in einer Datei speichern, muss der Parameter &quot;-o&quot;, gefolgt von einem Dateinamen verwendet werden. Beispiel:


<pre>matuc toc -o &quot;inhalt.md&quot; .</pre>
== Programmierschnittstelle MAGSBS ==
== Programmierschnittstelle MAGSBS ==


Das Modul MAGSBS ist ein in der Programmiersprache Python implementiertes Modul,
Das Modul MAGSBS ist ein in der Programmiersprache Python implementiertes Modul, welches folgende Funktionalitäten bereitstellt:
welches folgende Funktionalitäten bereitstellt:


* Konvertierung von Dokumenten mittels Pandoc
* Konvertierung von Dokumenten mittels Pandoc
** Modifikation einiger Konvertierungsprozesse, um die Barrierefreihei tund die Integration zu erhöhen
** Modifikation einiger Konvertierungsprozesse, um die Barrierefreihei tund die Integration zu erhöhen
** Ergänzung von Markdown um Syntaxelemente, wie z.B. Auszeichnung für
** Ergänzung von Markdown um Syntaxelemente, wie z.B. Auszeichnung für Seitenzahlen
  Seitenzahlen
* Automatisierung der Erstellung von Inhaltsverzeichnissen, Navigationsleisten o.ä.
* Automatisierung der Erstellung von Inhaltsverzeichnissen, Navigationsleisten o.ä.
* automatisierte Verlinkung von Bildbeschreibungen, automatisierte Erstellung von Formelgrafiken sowie Alternativtexten durch LaTeX
* automatisierte Verlinkung von Bildbeschreibungen, automatisierte Erstellung von Formelgrafiken sowie Alternativtexten durch LaTeX
Zeile 252: Zeile 199:
* uvm.
* uvm.


Zusammen mit dem MAGSBS-Modul kommt eine beispielhafte Kommandozeilenoberfläche
Zusammen mit dem MAGSBS-Modul kommt eine beispielhafte Kommandozeilenoberfläche mit dem Namen [[Matuc|Matuc]].
mit dem Namen [[Matuc]].

Aktuelle Version vom 6. April 2020, 09:45 Uhr

Matuc ist ein Konverter von Markdown zu HTML, sowie ein Werkzeug zur Automatisierung von Arbeitsschritten bei der Bearbeitung von Lehrmaterialien. Es kann auch genutzt werden, um eigene Skripte oder andere Editor-Plugins zu entwerfen.

Installation / Download

Windows

Für Windows gibt es ein Installationspaket, welches Python, GladTeX und Pandoc automatisch mitliefert. Für die Benutzung von GladTeX muss aber auch eine LaTeX-Distribution instaliert sein. Am einfachsten ist es daher, zuvor MikTeX zu installieren.

Der aktuellste Installer kann hier herunter geladen werden. Des Weiteren können unter Probleme und neue Funktionen melden.

Die Installation sollte NICHT durchgeführt werden, wenn die Umgebungsvariable %PATH% Länger als 1024 Zeichen lang ist. Wenn Sie nicht wissen, was dies bedeutet, können Sie dies getrost ignorieren. Der PATH enthält Verzeichnisse, in denen automatisch nach ausführbaren Programmen gesucht wird. Wenn Sie viele Entwicklerwerkzeuge installiert haben, sollten Sie vorher unbedingt die Länge von %PATH% überprüfen, da diese Variable ansonsten durch die Installationsroutine beschädigt wird.

MikTeX - Installation von Paketen

Nach der Installation von MikTeX müssen noch einige LaTeX-Pakete manuell nachinstalliert werden. Die Installation der Pakete(Package) erfolgt über den MikTeX Package Manager. Starten Sie den MikTeX Package Manager als Administrator.

Die nachfolgenden Pakete sind zu installieren:

  • zhmetrics
  • preview
  • koma-script
  • amsmath

Für die Installation können Sie nach den Packagen suchen. Geben Sie den Eingabefeld Name den Namen des Pakets ein und klicken Sie anschließend auf Filtern. Anschließend müssen Sie das zu installierende Paket in der Auflistung auswählen und das Pluszeichen für die Installation wählen.

Andere Betriebssysteme

Die Installation unter anderen Betriebssystemen besteht aus mehreren Schritten. Sie kann aber, mit einigen Anpassungen, auch unter Windows durchgeführt werden.

Als erstes muss man alle Abhängigkeiten installieren: Pandoc (>= 1.16), python (Version >= 3.2), GladTeX (1) und LaTeX, falls GladTeX verwendet wird.

Als nächstes holt man den Quellcode mittels Git (github.com):

git clone https://github.com/TUD-INF-IAI-MCI/AGSBS-infrastructure.git

Nach dem Herunterladen wechselt man in das neue Verzeichnis und führt folgenden Befehl aus:

sudo python3 setup.py install

Generelle Funktionsweise

Matuc ist ein Kommandozeilenprogramm. Da es als "eierlegende Wollmilchsau" konzipiert ist, besitzt es Unterkommandos, damit man nicht von einer Fülle von Optionen erschlagen wird. Ruft man also Matuc auf, muss man dahinter angeben, welches Unterpgrogramm man möchte. Gibt man keines an, wird der Hilfebildschirm ausgegeben:

    matuc <command> <options>

    <command> determines which action to take. The syntax might vary between
    commands. Use matuc <command> -h for help.

    Available commands are:

    addpnum         - generate new page number, relative to its predecessors
    conf            - set, init or update a configuration
    conv            - convert a project
    fixpnums        - fix incorrect page numbering of a document
    imgdsc          - generate image description (snippets)
    iswithinlecture - test, whether a certain path is part of a project
    new             - create new project structure
    mk              - invoke "mistkerl", a quality assurance helper
    toc             - generate table of contents
    version         - output program version

Anlegen von Lehrmaterialien

Wer sich gern die korrekte Verzeichnisstruktur von Matuc generieren lassen möchte, der kann das Kommando new benutzen. Hilfebildschirm:

matuc new

Um z.B. ein Buch mit einem Vorwort, zwei Anhangkapitel, mit fünf Kapiteln und auf Englisch zu erstellen, führt man folgendes aus:

matuc new -l en -c 5 -a 2 -p "Neues Material"

Nun wird der Ordner "Neues Material angelegt. Die Struktur innerhalb des Ordner ist:

  • Neues Material
    • .lecture_meta_data.dcxml
    • inhalt.md
    • anh01
      • anh01.md
    • anh02
      • anh02.md
    • k01
      • k01.md
    • k02
      • k02.md
    • k03
      • k03.md
    • k04
      • k04.md
    • k05
      • k05.md
    • v01
      • v01.md

Konfiguration

Matuc soll sich möglichst viele Einstellungen abhängig von Lehrmaterial automatisch merken. Dazu gehört u.a.:

  • Bearbeiter
  • Arbeitsgruppe, Institution
  • Titel, Quelle des Lehrmaterials
  • Semester der Bearbeitung
  • Tiefe der Nummerierung im Inhaltsverzeichnis
  • ...

Dies wird in einer Datei namens ".lecturemetadata.dcxml" im obersten Verzeichnis des zu bearbeitenden Lehrmaterials abgelegt.

Anlegen einer Konfiguration

Initial legt man eine Konfiguration mittels des Kommandos

matuc conf init

im aktuellen Verzeichnis, am besten dem Stammverzeichnis des Materials (des obersten Verzeichnisses des Bearbeiteten Lehrmaterials) an.

Man sollte nun unbedingt die Werte für die Konfiguration anpassen, siehe nächster Abschnitt.

Anpassung der Konfiguration

Die Informationen der Konfiguration sind sehr wichtig, da sie in jedes konvertierte Dokument eingebettet werden und daher korrekt sein müssen. Außerdem ist das Setzen der Sprache sehr wichtig für den Bearbeitungsprozess und für den Bildschirmleser des Benutzers der fertigen Dokumente.

Man kann sich mit

matuc conf show

alle Optionen anzeigen lassen, die es gibt. Mit

matuc conf update

kann man dann eine Option neu setzen. Lässt man bei genanntem Befehl die Argumente weg, so wird ein Hilfebildschir ausgegeben.

Es folgt ein Beispiel zum Setzen des Quelldokuments:

matuc conf -s "Interne Vorlesungsunterlagen" update
Aufbau der Konfigurationsdatei

Im Allgemeinen ist es nicht erforderlich die Konfigurationsdatei manuell zu bearbeiten. Die Anpassung kann direkt über Matuc erfolgen (siehe Anpassung der Konfiguration). Trotzdem kann man die Konfiguration auch per Hand mit einem UTF-8-fähigen Editor bearbeiten.

Die Konfigurationsdatei beinhaltet Meta-Informationen über das Buch und Zusatzinformationen, die die Konvertierung beeinflussen. Das Format der Datei ist XML. Dabei wird das Dublincore Format verwendet. Zusätzlich nutzt das MAGSBS-Modul einen gleichnamigen Namensraum, um zusätzliche INformationen abzuspeichern.

Im Folgenden sind die Felder des DublinCore-Formats bzw. des MAGSBS-Moduls mit ihrer jeweiligen Verwendung aufgeführt und durch ein Beispiel erklärt.

  • Autor der Quelldokumente: <MAGSBS:sourceAuthor>Max Mustermann, Karla Korrekturleserin</MAGSBS:sourceAuthor>
  • Bearbeiter des barrierefreien Materials: <dc:creator>Max Muster</dc:creator>
  • Herausgeber: <dc:publisher>TU Dresden</dc:publisher>
  • Arbeitsgruppe der Bearbeitung (Institution): <dc:contributor>AGSBS</dc:contributor>
  • Quelle des Lehrmaterials: <dc:source>Vorlesungsunterlagen des Lehrstuhls für Mensch-Computer Interaktion</dc:source>
  • Titel des Lehrmaterials/Buches: <dc:title>Titel des Buches/Vorlesung</dc:title>
  • Semester der Bearbeitung <dc:date>SS2016</dc:date>
    • An dieser Stelle sollten nur die Bezeichner SS und WS und die zwei- bzw. vierstellige Jahreszahl verwand werden
  • Tiefe des Inhaltsverzeichnisses: regelt, bis zu welcher Ebene Überschriften ins Inhaltsverzeichnis übernommen werden <MAGSBS:tocDepth>2</MAGSBS:tocDepth>
  • Abstand zwischen den Seitennavigationslinks: <MAGSBS:pageNumberingGap>5</MAGSBS:pageNumberingGap>
  • Präfix des Anhangs: Regelt, ob vor dem Inhaltsverzeichnis der Präfix "A" (Anhang) vorangestellt wird: <MAGSBS:appendixPrefix>0</MAGSBS:appendixPrefix>
  • Sprache des bearbeiteten Materials: <dc:language>de</dc:language>

Konfigurationen in Unterverzeichnissen

Falls Lehrmaterial nicht nur von einem Studenten bearbeitet wird, sollte in dem Unterverzeichnis des Materials, welches dem Studenten zugeteilt wurde, eine zusätzliche Konfiguration angelegt werden. Diese sollte dann den Namen des Beareiters enthalten.

Alle Unterkommandos von Matuc werden automatisch zuerst die Konfiguration verwenden, die "am nähsten" an der aktuellen Datei liegt, d.h. entweder im aktuellen Verzeichnis, dem darüber und so weiter. Damit kann z.B. im Stammverzeichnis der Bearbeiter auf "Max Mustermann" und im Verzeichnis anh01 der Bearbeiter auf "Otto Normalverbraucher" gesetzt werden.

Konvertierung von Dateien

Die Konvertierung nutzt intern Pandoc, erweitert dies aber um zusätzliche Ausgabefilter und Standardvorlagen. Pandoc sollte daher zur Umwandlung von Lehrmaterial nicht verwendet werden, da z.B. Seitenzahlen nicht umgewandelt werden.

Konvertierung einzelner Dateien

Die Konvertierung erfolgt mit dem Unterkommando "conv", die Umwandlung von "Hallo.md" würde also wie folgt ablaufen:

matuc conv "Hallo.md"

Matuc wird automatisch erkennen, ob LaTeX-Formeln in das MarkDown-Dokument eingebettet wurden und GladTeX und damit LaTeX aufrufen. Dies wird auch ein Verzeichnis bilder anlegen, sofern es noch nicht existiert.

Konvertierung mehrer Datien oder Materialien

matuc conv VERZEICHNIS konvertiert das gesamte Lehrmaterialverzeichnis.

Der Aufruf ist:

matuc conv VERZEICHNIS

Wobei VERZEICHNIS entweder "." ist, wenn man sich bereits in dem korrekten Verzeichnis befindet, oder eben der Verzeichnisname, in dem die Konvertierung stattfinden soll.

Zuerst erstellt matuc conv VERZEICHNIS das Inhaltsverzeichnis, so wie es auch

matuc toc

erstellen würde. Im Anschluss konvertiert es, mit Hilfe der Kopfdaten über die Veranstaltung aus der Konfiguration, alle Markdown-Dateien.

Erstellung eines automatischen Inhaltsverzeichnisses

Das Unterkommando matuc toc ermöglicht es automatisiert Inhaltsverzeichnisse zu erstellen. Dies wird von bei der Generierung der mehrerer Dateien mittels matuc conv VERZEICHNIS

automatisch ausgeführt.

Überschriften der jeweiligen Kapitel und Unterkapitel werden automatisch aus den Dateien extrahiert und nummeriert ins Inhaltsverzeichnis übernommen. Dies setzt allerdings voraus, dass die Verzeichnisstruktur auch den Vorgaben der Tutorenanleitung entspricht.

Matuc toc erwartet das Verzeichnis als Parameter, in dem nach Kapiteln gesucht werden soll. Wenn man sich im Stammverzeichnis des Lehrmaterials befindet, tippt man ".". Die Ausgabe wird direkt auf das Terminal geschrieben. Möchte man sie stattdessen in einer Datei speichern, muss der Parameter "-o", gefolgt von einem Dateinamen verwendet werden. Beispiel:

matuc toc -o "inhalt.md" .

Programmierschnittstelle MAGSBS

Das Modul MAGSBS ist ein in der Programmiersprache Python implementiertes Modul, welches folgende Funktionalitäten bereitstellt:

  • Konvertierung von Dokumenten mittels Pandoc
    • Modifikation einiger Konvertierungsprozesse, um die Barrierefreihei tund die Integration zu erhöhen
    • Ergänzung von Markdown um Syntaxelemente, wie z.B. Auszeichnung für Seitenzahlen
  • Automatisierung der Erstellung von Inhaltsverzeichnissen, Navigationsleisten o.ä.
  • automatisierte Verlinkung von Bildbeschreibungen, automatisierte Erstellung von Formelgrafiken sowie Alternativtexten durch LaTeX
  • Fehlersuche in Markdown-Dokumenten für häufig auftretende Fehler
  • uvm.

Zusammen mit dem MAGSBS-Modul kommt eine beispielhafte Kommandozeilenoberfläche mit dem Namen Matuc.