2009-12-24 4 views

ответ

5

Я решил использовать markitup с расширением python-markdown, которое я написал. Вот код анализатора Google App Engine:

import markdown 

from urllib import urlencode 
from markdown.inlinepatterns import Pattern 
from google.appengine.ext import webapp 

LATEX_RE = r'\${2}([^$]+)\${2}' 
API_URL = 'http://chart.apis.google.com/chart?' 

class LatexPattern(Pattern): 
    """ 
     Searchs for LaTex equations $$\latex$$ and 
     returns img tags using google charts API 
    """ 

    def handleMatch(self, m): 
     el = markdown.etree.Element('img') 
     src = API_URL + urlencode({ 
      'chl': m.group(2), 
      'cht': 'tx' 
     }) 
     el.set('src', src) 
     el.set('alt', m.group(2)) 
     return el 

class LatexExtension(markdown.Extension): 
    def extendMarkdown(self, md, md_globals): 
     md.inlinePatterns.add(
      'latex', 
      LatexPattern(LATEX_RE, self), 
      '<automail' 
     ) 

class MarkdownHandler(webapp.RequestHandler): 
    def post(self): 
     data = self.request.get('data') 
     extension = LatexExtension(configs=[]) 
     md = markdown.Markdown(extensions=[extension]) 
     html = md.convert(data) 
     self.response.out.write(html) 

 Смежные вопросы

  • Нет связанных вопросов^_^