2017-05-13 4 views
0

Ich versuche docutils rst2html.py zu verwenden, um das erste Dokument nach HTML zu konvertieren.Benutzerdefinierte Anweisung für wiederhergestellten Text?

Eine externe Hyper-Link erstellt mit

`How to create Product <Django.url('reservation:manual:product:index')>`_ 

wird

umgewandelt
<a class="reference external" href="Django.url('reservation:manual:product:index')">How to create Product</a> 

Ich möchte rst2html.py (oder verwandten Dateien) ändern, so dass ich die folgende Stelle erzeugen kann.

<Link 
to={Django.url('reservation:manual:product:index')} 
> 
</Link> 

Ich brauche nicht das eingebettete URIs-Format, um einen Link auszudrücken.

Es scheint, ich kann eine benutzerdefinierte Direktive erstellen, um eine Analyse/Generierungsregel anzugeben.

Aber mit meiner kurzen Kenntnis von RST und seinen Parsern bin ich nicht sicher, ob ich einen Link für eine Wortphrase in einem Satz mit Direktiven einbetten kann.

Antwort

0

Ich würde einfach einen Postprozessor schreiben. Unter der Annahme, dass Django URLs interne Markup nicht oder escapable Zeichen wie & und " hat, eine einfache regex wird hier tun (trotz der allgemeinen cursedness für Aufgaben noch etwas komplexer), wie:

import re 
s = ('head <a class="reference external" href="' 
    "Django.url('reservation:manual:product:index')" 
    '">How to create Product</a> tail') 
r = re.sub(r'<a class=".*?" href="(Django[.]url[(].*?[)])">.*?</a>', 
      r'<Link to={\1}></Link>', s) 
print(r) 

Ausgang:

head <Link to={Django.url('reservation:manual:product:index')}></Link> tail 
+0

ah, großartige Idee. Vielen Dank! – eugene

Verwandte Themen