15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)# found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import urllib 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)import urllib2 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)class HiliteMeHighlighter(object): 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) """Highlighter that calls the http://hilite.me API to highlight code. 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) """ 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) def GetCSS(self, style): 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return '' 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) def GetCodeElement(self, code, style): 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) # Call hilite.me API to do syntax highlighting 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return urllib2.urlopen('http://hilite.me/api', 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) urllib.urlencode([ 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ('code', code), 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ('lexer', 'cpp'), 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ('style', style), 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ('linenos', 1)]) 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ).read() 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) def DisplayName(self): 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return 'hilite.me (slow, requires internet)' 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) def GetStyles(self): 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return ['monokai', 'manni', 'perldoc', 'borland', 'colorful', 'default', 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'murphy', 'vs', 'trac', 'tango', 'fruity', 'autumn', 'bw', 'emacs', 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'vim', 'pastie', 'friendly', 'native'] 31