You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
1.3 KiB
80 lines
1.3 KiB
#!/usr/bin/python
|
|
import os,sys,re
|
|
|
|
import urllib, cgi
|
|
|
|
import cgitb
|
|
cgitb.enable()
|
|
form = cgi.FieldStorage()
|
|
|
|
# blacklist taken from wp-latex:
|
|
# http://wordpress.org/extend/plugins/wp-latex/
|
|
blacklist=['^^',\
|
|
'afterassignment',\
|
|
'aftergroup',\
|
|
'batchmode',\
|
|
'catcode',\
|
|
'closein',\
|
|
'closeout',\
|
|
'command',\
|
|
'csname',\
|
|
'document',\
|
|
'def',\
|
|
'errhelp',\
|
|
'errcontextlines',\
|
|
'errorstopmode',\
|
|
'every',\
|
|
'expandafter',\
|
|
'immediate',\
|
|
'include',\
|
|
'input',\
|
|
'jobname',\
|
|
'loop',\
|
|
'lowercase',\
|
|
'makeat',\
|
|
'meaning',\
|
|
'message',\
|
|
'name',\
|
|
'newhelp',\
|
|
'noexpand',\
|
|
'nonstopmode',\
|
|
'open',\
|
|
'output',\
|
|
'pagestyle',\
|
|
'package',\
|
|
'pathname',\
|
|
'read',\
|
|
'relax',\
|
|
'repeat',\
|
|
'shipout',\
|
|
'show',\
|
|
'scrollmode',\
|
|
'special',\
|
|
'syscall',\
|
|
'toks',\
|
|
'tracing',\
|
|
'typeout',\
|
|
'typein',\
|
|
'uppercase',\
|
|
'write']
|
|
|
|
sys.stdout.write('Content-type: image/png\n\n')
|
|
badtex()
|
|
latex = "$$p_n=\\frac{\\pi}{n^2}$$"
|
|
|
|
def badtex():
|
|
f=open('_img/badtex.png','rb')
|
|
sys.stdout.write(f.read())
|
|
f.close()
|
|
sys.exit(0)
|
|
|
|
for word in blacklist:
|
|
if word in latex:
|
|
badtex()
|
|
|
|
if re.search("/(^|[^\\\\])\$/",latex):
|
|
badtex()
|
|
sys.exit(0)
|
|
|
|
|
|
|
|
|