2009-12-24 5 views
2

HI,

방정식 {2} {3} 구글 차트 API 이미지 (http://chart.apis.google.com/chart?chl=\frac{3}{2}&cht=tx)

에 $

HTML 생성 방법을 사용자 정의 할 수 있습니까?

답변

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)