AmiFormat

Opis modułu AmiFormat do parsowania znaczników BBcode/wiki w podanym tekście do kodu XHTML. Moduł jest prosty i można go rozszerzyć o własne znaczniki i tagi.

AmiFormat to jeden z projektów rozwijanych przez twórców Skeletonz CMS na Orangoo Labs. Jest to parser tagów zbliżonych do tych spotykanych w systemach wiki. Krótka charakterystyka:
  • Moduł AmiFormat jest mały - 600 linii kodu w porównaniu do 1700 Markdowna i 2800 dla PyTextile
  • Prosty w użyciu i szybki w działaniu
  • Składnia podobna do Textile, wspiera odnośniki, nagłówki, wyświetlanie kodu, listy, style tekstu, grafiki, paragrafy, przejścia do nowych linii (Zobacz pełną listę)
  • Można rozszerzać funkcjonalność poprzez wtyczki
  • Wspiera mieszanie go z (X)HTMLem
Oto jak używać amiformat:
from amiformat import amiformat
parser = amiformat.AmiFormat()
text = """h2. Test
"Google":(http://google.com) """
print parser.htmlFormat(text)
Co da w efekcie:
<h2>Test</h2>

<p>
<a href="http://google.com">Google</a>
</p>
W powyższym przykładzie zastosowaliśmy tekst zawierający zdefiniowane w module Amiformat znaczniki. Interpretowane znaczniki można łatwo poszerzyć o własne poprzez wtyczki:
from amiformat import amiformat

# definicja taga [comment][/comment]
def commentHandler(args):
	#[comment, color=KOLOR]
	if args.has_key('color'):
		return True, '<div style="color: %(color)s">%(data)s</div>'  % args
	#[comment]
	else:
		return True, '<blockquote>%(data)s</blocquote>'  % args

parser = amiformat.AmiFormat()
parser.registerMLPlugin('comment', commentHandler)
text = """

Komentarze:
[comment, color=red]
jestem czerwony
[/comment]

a tutaj normalny
[comment]
jestem normalny
[/comment]"""
print parser.htmlFormat(text)
Wynik to:
<p>
Komentarze:
</p>
<div style="color: red">jestem czerwony</div>
<p>
a tutaj normalny
</p>
<blockquote>jestem normalny</blocquote>
blog comments powered by Disqus

Kategorie

Strony