2009-07-15 3 views
0

J'utilise python Textile pour stocker le balisage dans la base de données. Je voudrais donner l'extrait de code HTML suivant:Est-il possible de coder (<em>asdf</em>) dans Textile python?

(<em>asdf</em>) 

L'évidence ne soit pas codé:

(_asdf_) -> <p>(_asdf_)</p> 

Les travaux suivants, mais donne un espace laid:

(_asdf_) -> <p>(<em>asdf</em>) 

Am Il me manque quelque chose d'évident ou est-ce que ce n'est pas possible d'utiliser python Textile?

Répondre

1

Il est difficile de dire s'il s'agit d'un bug ou non; sous la forme sur le Textile website, (_foo_) fonctionne comme vous voulez, mais dans l'implémentation PHP téléchargeable, il ne fonctionne pas.

Vous devriez être en mesure de le faire:

([_asdf_]) -> <p>(<em>asdf</em>)</p> 

Cependant, cela ne fonctionne pas, ce qui est un bogue dans py-textile. Soit vous devez utiliser:

(]_asdf_]) 

ou textile.py patch en ligne changeant 918 (dans la méthode Textile.span()) à:

  (?:^|(?<=[\s>%(pnct)s])|([{[])) 

(la différence est dans le dernier groupe, les supports sont à tort inversé)

Vous pouvez également changer la ligne:.

  (?:^|(?<=[\s>(%(pnct)s])|([{[])) 

(notez la parenthèse ajoutée) pour obtenir le comportement que vous désirez pour (_foo_), mais je ne suis pas sûr si cela casserait autre chose.


Suivi: le latest version of the PHP Textile class ne fait en effet un changement semblable à celui que je suggère.

+0

Réponse très complète. Merci! –

Questions connexes