Changeset 981
- Timestamp:
- 02/28/06 08:31:44
- Files:
-
- trunk/cherrypy/filters/nsgmlsfilter.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/cherrypy/filters/nsgmlsfilter.py
r856 r981 15 15 # the tidy filter, by its very nature it's not generator friendly, 16 16 # so we just collect the body and work with it. 17 original Body = cherrypy.response.collapse_body()17 original_body = cherrypy.response.collapse_body() 18 18 19 19 fct = cherrypy.response.headers.get('Content-Type', '') … … 24 24 encoding = fct[i+8:] 25 25 if ct == 'text/html': 26 # Remove bits of Javascript (nsgmls doesn't seem to handle 27 # them correctly (for instance, if <a appears in your 28 # Javascript code nsgmls complains about it) 29 while True: 30 i = original_body.find('<script') 31 if i == -1: 32 break 33 j = original_body.find('</script>', i) 34 if j == -1: 35 break 36 original_body = original_body[:i] + original_body[j+9:] 37 26 38 tmpdir = cherrypy.config.get('nsgmls_filter.tmp_dir') 27 page File = os.path.join(tmpdir, 'page.html')28 err File = os.path.join(tmpdir, 'nsgmls.err')29 f = open(page File, 'wb')30 f.write(original Body)39 page_file = os.path.join(tmpdir, 'page.html') 40 err_file = os.path.join(tmpdir, 'nsgmls.err') 41 f = open(page_file, 'wb') 42 f.write(original_body) 31 43 f.close() 32 nsgmlsEncoding = encoding.replace('-', '') 33 nsgmlsPath = cherrypy.config.get('nsgmls_filter.nsgmls_path') 34 catalogPath = cherrypy.config.get('nsgmls_filter.catalog_path') 44 nsgmls_path = cherrypy.config.get('nsgmls_filter.nsgmls_path') 45 catalog_path = cherrypy.config.get('nsgmls_filter.catalog_path') 35 46 command = '%s -c%s -f%s -s -E10 %s' % ( 36 nsgmls Path, catalogPath, errFile, pageFile)47 nsgmls_path, catalog_path, err_file, page_file) 37 48 command = command.replace('\\', '/') 38 49 os.system(command) 39 f = open(err File, 'rb')50 f = open(err_file, 'rb') 40 51 err = f.read() 41 52 f.close() 42 err List= err.splitlines()43 new ErrList= []44 for err in err List:53 errs = err.splitlines() 54 new_errs = [] 55 for err in errs: 45 56 ignore = False 46 for err Ign in cherrypy.config.get('nsgmls_filter.errors_to_ignore', []):47 if err.find(err Ign) != -1:57 for err_ign in cherrypy.config.get('nsgmls_filter.errors_to_ignore', []): 58 if err.find(err_ign) != -1: 48 59 ignore = True 49 60 break 50 61 if not ignore: 51 new ErrList.append(err)52 if new ErrList:53 new Body = "Wrong HTML:<br />" + cgi.escape('\n'.join(newErrList)).replace('\n','<br />')54 new Body += '<br /><br />'62 new_errs.append(err) 63 if new_errs: 64 new_body = "Wrong HTML:<br />" + cgi.escape('\n'.join(new_errs)).replace('\n','<br />') 65 new_body += '<br /><br />' 55 66 i = 0 56 for line in original Body.splitlines():67 for line in original_body.splitlines(): 57 68 i += 1 58 new Body += "%03d - "%i + cgi.escape(line).replace('\t',' ').replace(' ',' ') + '<br />'69 new_body += "%03d - "%i + cgi.escape(line).replace('\t',' ').replace(' ',' ') + '<br />' 59 70 60 cherrypy.response.body = new Body71 cherrypy.response.body = new_body 61 72

