2017-05-13 9 views
0

私はdocutilsのrst2html.pyを使用して、最初のドキュメントをhtmlに変換しようとしています。再合成されたテキストのカスタムディレクティブですか?

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

で作成

外部ハイパーリンクは、私が代わりに次を生成することができるように、私はrst2html.py(または関連ファイル)を変更したいのですが

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

に変換されます。

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

リンクを表すために埋め込みURI形式を使用する必要はありません。

私は、構文解析/生成ルールを指定するためのカスタムディレクティブを作成することができます。

しかし、私はRSTとそのパーサーについての短い知識しか持たないため、指示文を含む文章の中に語句のリンクを埋め込むことができるかどうかはわかりません。

答えて

0

私は単純にポストプロセッサを書きます。単純な正規表現は、(少しでも、より複雑なタスクのための一般的なcursednessにもかかわらず)、ここで行います、DjangoのURLが内部マークアップや&"などのエスケープ対象の文字を持っていないと仮定するとのように:

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) 

出力:

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

ああ、素晴らしいアイデアです。ありがとう! – eugene

関連する問題