bgneal@883: """
bgneal@883: A python-markdown extension to turn <img> tags with http: source attributes into
bgneal@883: <a> tags.
bgneal@883: """
bgneal@883: from urlparse import urlparse
bgneal@883: 
bgneal@883: import markdown
bgneal@883: 
bgneal@883: 
bgneal@883: class SslImagesTreeprocessor(markdown.treeprocessors.Treeprocessor):
bgneal@883: 
bgneal@883:     def run(self, root):
bgneal@883:         for node in root.iter('img'):
bgneal@883:             src = node.get('src')
bgneal@883:             if src:
bgneal@883:                 url = urlparse(src)
bgneal@883:                 if url.scheme == 'http':
bgneal@883:                     node.clear()
bgneal@883:                     node.tag = 'a'
bgneal@883:                     node.text = 'Click for image'
bgneal@883:                     node.set('href', url.geturl())
bgneal@883: 
bgneal@883: 
bgneal@883: class SslImagesExtension(markdown.Extension):
bgneal@883: 
bgneal@883:     def extendMarkdown(self, md, md_globals):
bgneal@883:         tree_proc = SslImagesTreeprocessor()
bgneal@883:         md.treeprocessors.add('ssl_images', tree_proc, '>inline')