parameters: (ext_name, configs = [])
docstring: Load extension by name, then return the module.
  
      The extension name may contain arguments as part of the string in the
      following format: "extname(key1=value1,key2=value2)"
docstring_summary: Load extension by name, then return the module.
docstring_tokens: Load extension by name then return the module .
function: def load_extension(ext_name, configs = []):
      """Load extension by name, then return the module.
  
      The extension name may contain arguments as part of the string in the
      following format: "extname(key1=value1,key2=value2)"
  
      """
  
      # Parse extensions config params (ignore the order)
      configs = dict(configs)
      pos = ext_name.find("(") # find the first "("
      if pos > 0:
          ext_args = ext_name[pos+1:-1]
          ext_name = ext_name[:pos]
          pairs = [x.split("=") for x in ext_args.split(",")]
          configs.update([(x.strip(), y.strip()) for (x, y) in pairs])
  
      # Setup the module names
      ext_module = 'markdown.extensions'
      module_name_new_style = '.'.join([ext_module, ext_name])
      module_name_old_style = '_'.join(['mdx', ext_name])
  
      # Try loading the extention first from one place, then another
      try: # New style (markdown.extensons.<extension>)
          module = __import__(module_name_new_style, {}, {}, [ext_module])
      except ImportError:
          try: # Old style (mdx.<extension>)
              module = __import__(module_name_old_style)
          except ImportError:
             message(WARN, "Failed loading extension '%s' from '%s' or '%s'"
                 % (ext_name, module_name_new_style, module_name_old_style))
             # Return None so we don't try to initiate none-existant extension
             return None
  
      # If the module is loaded successfully, we expect it to define a
      # function called makeExtension()
      try:
          return module.makeExtension(configs.items())
      except AttributeError:
          message(CRITICAL, "Failed to initiate extension '%s'" % ext_name)
function_tokens: def load_extension ( ext_name , configs = [ ] ) : # Parse extensions config params (ignore the order) configs = dict ( configs ) pos = ext_name . find ( "(" ) # find the first "(" if pos > 0 : ext_args = ext_name [ pos + 1 : - 1 ] ext_name = ext_name [ : pos ] pairs = [ x . split ( "=" ) for x in ext_args . split ( "," ) ] configs . update ( [ ( x . strip ( ) , y . strip ( ) ) for ( x , y ) in pairs ] ) # Setup the module names ext_module = 'markdown.extensions' module_name_new_style = '.' . join ( [ ext_module , ext_name ] ) module_name_old_style = '_' . join ( [ 'mdx' , ext_name ] ) # Try loading the extention first from one place, then another try : # New style (markdown.extensons.<extension>) module = __import__ ( module_name_new_style , { } , { } , [ ext_module ] ) except ImportError : try : # Old style (mdx.<extension>) module = __import__ ( module_name_old_style ) except ImportError : message ( WARN , "Failed loading extension '%s' from '%s' or '%s'" % ( ext_name , module_name_new_style , module_name_old_style ) ) # Return None so we don't try to initiate none-existant extension return None # If the module is loaded successfully, we expect it to define a # function called makeExtension() try : return module . makeExtension ( configs . items ( ) ) except AttributeError : message ( CRITICAL , "Failed to initiate extension '%s'" % ext_name )