2010-10-13 15 views
8

Używam Pythona i przy użyciu Markdown. Czy istnieje prosty sposób dodania niestandardowej składni? Chcę, aby coś takiego jak [ABC] rozszerzyło się do określonego tagu lub czegoś.Markdown z niestandardową składnią?

lub czy używam wyrażenia regularnego?

+0

Masz na myśli BBCode (XML z nawiasami ^^)? – AndiDog

+0

Nie jestem przywiązany do żadnej składni, tylko możliwość dodania własnego kodu – Timmy

Odpowiedz

4

Wygląda na to, że można napisać extensions dla Python-Markdown, co jest prawdopodobnie najlepszym rozwiązaniem.

Jeśli używasz innej implementacji Markdown (lub, wiesz, tylko do cholery), możesz wstępnie przetworzyć tekst, aby zaimplementować własne znaczniki (konwertując je do HTML), zanim przekażesz je do Markdown. Można to zrobić za pomocą wyrażeń regularnych lub dowolnej metody. W rozsądnych granicach, Markdown powinien leave your HTML alone.

+0

ya, jestem tylko martwi się wyciekiem niebezpiecznego html. – Timmy

+0

@Timmy: Następnie "biała lista, a nie czarna lista"; rozszerzaj tylko bardzo ograniczony zestaw tagów, o których wiadomo, że są bezpieczne. – delnan

+2

Możesz już wprowadzić dowolny HTML do Markdown. W takim wypadku możesz odświeżyć dane wejściowe, przekształcając '&' w '&', a następnie '<' w '<' (sprawiając, że cały HTML pojawia się jako tekst zamiast renderowany), a następnie, po tym kroku, zaimplementuj własne tagi, które tworzą kod HTML bez zmiany znaczenia. – kindall