Trac und Restructuredtext

Probleme bei der Installation?
Antworten
Benutzeravatar
Whitie
User
Beiträge: 216
Registriert: Sonntag 4. Juni 2006, 12:39
Wohnort: Schulzendorf

Hallo zusammen,
ich weiß nicht so genau, ob das hier das richtige Unterforum ist, bitte verschieben falls nicht.

Ich habe folgendes Problem:

Ich habe hier eine Trac-Instanz, in der jede Menge Sphinx-Dokumentationen liegen. Damit der Restructuredtext nicht von Trac interpretiert wird, ist der mimetype für .rst in der trac.ini auf text/plain gesetzt. Daraus ergibt sich aber, das erstens kein Syntax-Highlightning stattfindet (müsste Pygments ja können für ReST) und zweitens im Wiki auch kein ReST mehr verwendet werden kann (wird einfach als Code-Block dargestellt).

Meine Frage also, wie kann ich Trac konfigurieren, das ReST Quellen anständig angezeigt werden und gleichzeitig ReST im Wiki benutzbar bleibt? Ach ja, es handelt sich um Mercurial Repos, daher kann ich leider keine SVN Properties setzen.

Viele Grüße
Whitie

P.S. Hintergrund ist, das Wiki als Ideensammlung zu benutzen und die gesammelten und gereiften Dokumente dann einfach in die Sphinx Quellen übernehmen zu können. Sonst könnte ich im Wiki ja einfach das eigene Markup verwenden. Trac ist Version 1.1.2beta1.
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

Hallo Whitie,

nachdem Du trac > 1.0 verwendest, ist das eigentlich kein Problem: Seit Version 1.0 gibt es zusätzlich zum `mime_map` noch die `mime_map_patterns`, über die Du für bestimmte Dateien festlegen kannst, welche mimetypes verwendet werden sollen. Die jeweiligen Dateien legst Du über eine regex fest, in Deinem Fall könnte ein solcher Eintrag in der `trac.ini` also so aussehen:

Code: Alles auswählen

[mimeviewer]
...
...
mime_map_patterns = text/plain:.*rst$
Via `mime_map` solltest Du dann natürlich kein `text/x-rst' angelegt haben!
Damit erreichst Du, dass alle Dateien, deren Name mit 'rst' endet, als plain-text dargestellt werden, Wiki-Einträge können aber weiterhin reSt-like formatiert werden.

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Benutzeravatar
Whitie
User
Beiträge: 216
Registriert: Sonntag 4. Juni 2006, 12:39
Wohnort: Schulzendorf

Hallo mutetella,
vielen Dank für deine Antwort. Leider habe ich auch diese Möglichkeit schon probiert. Ob man `mime_map` oder `mime_map_patterns` verwendet spielt keine Rolle. Mit beidem kann man die Darstellung als Quellcode hinbekommen. Ich kann dann auch Pygments sagen, alles was text/plain ist als ReST hervorzuheben.
Leider ist nach dieser Einstellung im Wiki kein ReST mehr verfügbar, alle ReST Blöcke werden dann einfach in `<pre>` Tags dargestellt.

Noch weitere Ideen? Oder bin ich der Einzige, der Sphinx-Doks in einem Trac hat ;-)

Gruß
Whitie
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

Guten morgen...

Hmm, bei mir funktioniert das:

Code: http://trac.mutetella.org/code/browser/ ... s/test.rst
Wiki: http://trac.mutetella.org/code/wiki/test

Oder versteh' ich was falsch?

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Benutzeravatar
Whitie
User
Beiträge: 216
Registriert: Sonntag 4. Juni 2006, 12:39
Wohnort: Schulzendorf

Sehr schön. Genau das funktioniert bei mir nicht. Die Wikiseite zeigt bei mir dann zweimal das gleiche an (das obere bei dir). Kannst du evtl. die trac.ini (relevante Teile) posten. Vielleicht gibt es noch eine andere Einstellung, an die ich noch gar nicht gedacht habe.

Gruß
Whitie
mutetella
User
Beiträge: 1695
Registriert: Donnerstag 5. März 2009, 17:10
Kontaktdaten:

Ok, sorry, mein Fehler. Die wiki-Seite muss natürlich so aussehen! Ich hatte im erklärenden Wiki-Codeblock statt `#!rest` dummerweise `#!rst` geschrieben, was zwar eigentlich funktionieren sollte, aber... bug oder feature?

Zur Erklärung: Über `mime_map_patterns` definieren wir, dass [Dateien] mit der Endung 'rst' als plaintext dargestellt werden. Jetzt ist es so (und darum tendiere ich eher zu bug), dass `trac` diese Definition in der Wiki auch bei Codeblock-Markups verwendet. Das heißt eben, dass das Markup ``#!rst`` auch mit 'rst' endet und deshalb als plaintext dargestellt wird.

Lösung 1:Nachdem in `trac` ``#!rst`` oder ``#!rest`` auf denselben mimetype verweisen, reicht es also, einfach ``#!rest`` zu verwenden.
Lösung 2:Wir definieren einen eigenen Markupnamen, der nicht mit 'rst' endet, z. B.:

Code: Alles auswählen

mime_map = text/x-rst:rst-wiki
Somit könntest Du auch ``#!rst-wiki`` als Markup in einem Wiki-Codeblock verwenden.

Ok, momentan sieht der `[mimeviewer]` Abschnitt meiner `trac.ini` sieht so aus:

Code: Alles auswählen

[mimeviewer]                                              
max_preview_size = 262144
mime_map = text/x-dylan:dylan,text/x-idl:ice,text/x-ada:ads:adb
mime_map_patterns = text/plain:.*rst$
tab_width = 8
treat_as_binary = application/octet-stream,application/pdf,application/postscript,application/msword,application/rtf
Nochmals sorry für mein Geschussel...

mutetella
Entspanne dich und wisse, dass es Zeit für alles gibt. (YogiTea Teebeutel Weisheit ;-) )
Benutzeravatar
Whitie
User
Beiträge: 216
Registriert: Sonntag 4. Juni 2006, 12:39
Wohnort: Schulzendorf

Danke.

Da wäre ich so schnell nicht drauf gekommen. Ich glaube, ich kann damit leben, die Blöcke im Wiki mit `#!rest` zu schreiben. Das ist eine schnelle und einfache Lösung ;-)

Gruß
Whitie
Antworten