def create_generator(source_file_name=None, generator_name=None): """ Make a generator from the given information about the object, such as its source and type """ if generator_name: return LanguageInfo.find_generator_by_name(generator_name)() else: if source_file_name: try: h = LanguageInfo.guess_language_for_file(source_file_name) return h.get_default_html_generator()() except IOError: # this means silvercity tried to the file and failed raise ValueError, "Unknown extension for '%s', cannot create lexer" % source_file_name else: raise ValueError, "Unknown file type, cannot create lexer"
def generate_html( source_file_name=None, # Use clipboard, hackish way of specifying target_file_name=None, css='', generator=None, title='', view=0, clean=0, prefix=xhtml_prefix, suffix=suffix): if target_file_name is None: if view: target_file_name = tempfile.mktemp('.html') target_file = open(target_file_name, 'w') else: target_file = sys.stdout else: target_file = open(target_file_name, 'w') if not css: css = 'file:' + urllib.pathname2url( SilverCity.get_default_stylesheet_location()) if source_file_name is not None: generator = create_generator(source_file_name, generator) target_file.write(xhtml_prefix % { 'title': title or os.path.basename(source_file_name), 'css': css }) source = open(source_file_name, 'r').read() else: source = get_clipboard() if generator is not None: generator = LanguageInfo.find_generator_by_name(generator)() else: language = guess_language_for_buffer(source) generator = language.get_default_html_generator()() if clean: source = clean_source(source) generator.generate_html(target_file, source) target_file.write(suffix) if view: target_file.close() webbrowser.open(target_file_name)
def generate_html( source_file_name = None, # Use clipboard, hackish way of specifying target_file_name = None, css = '', generator = None, title = '', view = 0, clean = 0, prefix = xhtml_prefix, suffix = suffix): if target_file_name is None: if view: target_file_name = tempfile.mktemp('.html') target_file = open(target_file_name, 'w') else: target_file = sys.stdout else: target_file = open(target_file_name, 'w') if not css: css = 'file:' + urllib.request.pathname2url( SilverCity.get_default_stylesheet_location()) if source_file_name is not None: generator = create_generator(source_file_name, generator) target_file.write(xhtml_prefix % { 'title' : title or os.path.basename(source_file_name), 'css' : css}) source = open(source_file_name, 'r').read() else: source = get_clipboard() if generator is not None: generator = LanguageInfo.find_generator_by_name(generator)() else: language = guess_language_for_buffer(source) generator = language.get_default_html_generator()() if clean: source = clean_source(source) generator.generate_html(target_file, source) target_file.write(suffix) if view: target_file.close() webbrowser.open(target_file_name)
def create_generator(source_url, generator_name, content): if generator_name: return LanguageInfo.find_generator_by_name(generator_name)() else: return guess_language(source_url, content).get_default_html_generator()()
def create_generator(source_file_name, generator_name): if generator_name: return LanguageInfo.find_generator_by_name(generator_name)() else: return LanguageInfo.guess_language_for_file( source_file_name).get_default_html_generator()()