From 75139375b76cb277546da2429d8e983ca6758f61 Mon Sep 17 00:00:00 2001 From: Rogan Creswick Date: Wed, 2 Jan 2013 14:56:40 -0800 Subject: added addon-sdk-1.7, without any changes --- .../python-lib/markdown/extensions/imagelinks.py | 119 +++++++++++++++++++++ 1 file changed, 119 insertions(+) create mode 100644 tools/addon-sdk-1.7/python-lib/markdown/extensions/imagelinks.py (limited to 'tools/addon-sdk-1.7/python-lib/markdown/extensions/imagelinks.py') diff --git a/tools/addon-sdk-1.7/python-lib/markdown/extensions/imagelinks.py b/tools/addon-sdk-1.7/python-lib/markdown/extensions/imagelinks.py new file mode 100644 index 0000000..ee0b708 --- /dev/null +++ b/tools/addon-sdk-1.7/python-lib/markdown/extensions/imagelinks.py @@ -0,0 +1,119 @@ +""" +========================= IMAGE LINKS ================================= + + +Turns paragraphs like + +<~~~~~~~~~~~~~~~~~~~~~~~~ +dir/subdir +dir/subdir +dir/subdir +~~~~~~~~~~~~~~ +dir/subdir +dir/subdir +dir/subdir +~~~~~~~~~~~~~~~~~~~> + +Into mini-photo galleries. + +""" + +import re, markdown +import url_manager + + +IMAGE_LINK = """""" +SLIDESHOW_LINK = """[slideshow]""" +ALBUM_LINK = """ [%s]""" + + +class ImageLinksExtension(markdown.Extension): + + def extendMarkdown(self, md, md_globals): + + md.preprocessors.add("imagelink", ImageLinkPreprocessor(md), "_begin") + + +class ImageLinkPreprocessor(markdown.preprocessors.Preprocessor): + + def run(self, lines): + + url = url_manager.BlogEntryUrl(url_manager.BlogUrl("all"), + "2006/08/29/the_rest_of_our") + + + all_images = [] + blocks = [] + in_image_block = False + + new_lines = [] + + for line in lines: + + if line.startswith("<~~~~~~~"): + albums = [] + rows = [] + in_image_block = True + + if not in_image_block: + + new_lines.append(line) + + else: + + line = line.strip() + + if line.endswith("~~~~~~>") or not line: + in_image_block = False + new_block = "

\n" + + album_url_hash = {} + + for row in rows: + for photo_url, title in row: + new_block += " " + new_block += IMAGE_LINK % (photo_url, + photo_url.get_thumbnail(), + title) + + album_url_hash[str(photo_url.get_album())] = 1 + + new_block += "
" + + new_block += "
" + new_block += SLIDESHOW_LINK % url.get_slideshow() + + album_urls = album_url_hash.keys() + album_urls.sort() + + if len(album_urls) == 1: + new_block += ALBUM_LINK % (album_urls[0], "complete album") + else : + for i in range(len(album_urls)) : + new_block += ALBUM_LINK % (album_urls[i], + "album %d" % (i + 1) ) + + new_lines.append(new_block + "

") + + elif line[1:6] == "~~~~~" : + rows.append([]) # start a new row + else : + parts = line.split() + line = parts[0] + title = " ".join(parts[1:]) + + album, photo = line.split("/") + photo_url = url.get_photo(album, photo, + len(all_images)+1) + all_images.append(photo_url) + rows[-1].append((photo_url, title)) + + if not album in albums : + albums.append(album) + + return new_lines + + +def makeExtension(configs): + return ImageLinksExtension(configs) + -- cgit v1.2.3