def handle_image(elem, context=None): # only handle resized images do_thumbnail = True style = parse_style(elem.attrib.get('style', '')) if 'width' not in style or 'height' not in style: do_thumbnail = False src = desanitize(elem.attrib.get('src', '')) if not src.startswith(_files_url): return if not context or 'page' not in context: return page = context['page'] try: file = PageFile.objects.get(slug__exact=page.slug, name__exact=file_url_to_name(src), region=page.region) except PageFile.DoesNotExist: return if do_thumbnail: width = int(style['width'].replace('px', '')) height = int(style['height'].replace('px', '')) escaped_filename = escape_quotes(file.file.name) before = '{%% thumbnail "%s" "%dx%d" as im %%}' % (escaped_filename, width, height) after = '{% endthumbnail %}' # HTML will want to encode {{ }} inside a src / srcset, and we don't # want that, so we will just rename it to src_thumb until just before # it's output. del elem.attrib['src'] elem.attrib['src_thumb'] = '{{ im.url }}' elem.attrib['srcset_thumb'] = ('{{ im.url|resolution:"2x" }} 2x, ' '{{ im.url|resolution:"1.5x" }} 1.5x') insert_text_before(before, elem) elem.tail = after + (elem.tail or '') else: elem.attrib['src'] = file.file.url info_url = reverse('pages:file-info', kwargs={ 'region': page.region.slug, 'slug': page.pretty_slug, 'file': file.name }) link = etree.Element('a') link.attrib['href'] = info_url elem.addprevious(link) elem.getparent().remove(elem) link.append(elem) return False
def handle_image(elem, context=None): # only handle resized images do_thumbnail = True style = parse_style(elem.attrib.get('style', '')) if 'width' not in style or 'height' not in style: do_thumbnail = False src = desanitize(elem.attrib.get('src', '')) if not src.startswith(_files_url): return if not context or 'page' not in context: return page = context['page'] try: file = PageFile.objects.get( slug__exact=page.slug, name__exact=file_url_to_name(src), region=page.region ) except PageFile.DoesNotExist: return if do_thumbnail: width = int(style['width'].replace('px', '')) height = int(style['height'].replace('px', '')) escaped_filename = escape_quotes(file.file.name) before = '{%% thumbnail "%s" "%dx%d" as im %%}' % (escaped_filename, width, height) after = '{% endthumbnail %}' # HTML will want to encode {{ }} inside a src / srcset, and we don't # want that, so we will just rename it to src_thumb until just before # it's output. del elem.attrib['src'] elem.attrib['src_thumb'] = '{{ im.url }}' elem.attrib['srcset_thumb'] = ( '{{ im.url|resolution:"2x" }} 2x, ' '{{ im.url|resolution:"1.5x" }} 1.5x') insert_text_before(before, elem) elem.tail = after + (elem.tail or '') else: elem.attrib['src'] = file.file.url info_url = reverse('pages:file-info', kwargs={'region': page.region.slug, 'slug': page.pretty_slug, 'file': file.name}) link = etree.Element('a') link.attrib['href'] = info_url elem.addprevious(link) elem.getparent().remove(elem) link.append(elem) return False
def include_content(elem, plugin_tag, context=None): href = elem.attrib["href"] args = [] if "class" in elem.attrib: classes = elem.attrib["class"].split() args = [c[len("includepage_") :] for c in classes if c.startswith("includepage_")] args = ['"%s"' % escape_quotes(href)] + args container = etree.Element("div") container.attrib["class"] = "included_page_wrapper" align = [a for a in args if a in ["left", "right"]] if len(align): container.attrib["class"] += " includepage_" + align[0] style = parse_style(elem.attrib.get("style", "")) if "width" in style: container.attrib["style"] = "width: " + style["width"] + ";" tag_text = "{%% %s %s %%}" % (plugin_tag, " ".join(args)) container.text = tag_text elem.addprevious(container) elem.getparent().remove(elem)
def include_content(elem, plugin_tag, context=None): href = elem.attrib['href'] args = [] if 'class' in elem.attrib: classes = elem.attrib['class'].split() args = [c[len('includepage_'):] for c in classes if c.startswith('includepage_')] args = ['"%s"' % escape_quotes(href)] + args container = etree.Element('div') align = [a for a in args if a in ['left', 'right']] if len(align): container.attrib['class'] = 'includepage_' + align[0] style = parse_style(elem.attrib.get('style', '')) if 'width' in style: container.attrib['style'] = 'width: ' + style['width'] + ';' tag_text = '{%% %s %s %%}' % (plugin_tag, ' '.join(args)) container.text = tag_text elem.addprevious(container) elem.getparent().remove(elem)
def handle_image(elem, context=None): # only handle resized images do_thumbnail = True style = parse_style(elem.attrib.get('style', '')) if 'width' not in style or 'height' not in style: do_thumbnail = False src = desanitize(elem.attrib.get('src', '')) if not src.startswith(_files_url): return if not context or 'page' not in context: return page = context['page'] try: file = PageFile.objects.get(slug__exact=page.slug, name__exact=file_url_to_name(src)) except PageFile.DoesNotExist: return if do_thumbnail: width = int(style['width'].replace('px', '')) height = int(style['height'].replace('px', '')) escaped_filename = escape_quotes(file.file.name) before = '{%% thumbnail "%s" "%dx%d" as im %%}' % (escaped_filename, width, height) after = '{% endthumbnail %}' elem.attrib['src'] = '{{ im.url }}' insert_text_before(before, elem) elem.tail = after + (elem.tail or '') else: elem.attrib['src'] = file.file.url info_url = reverse('pages:file-info', args=[page.pretty_slug, file.name]) link = etree.Element('a') link.attrib['href'] = info_url elem.addprevious(link) elem.getparent().remove(elem) link.append(elem) return False
def handle_image(elem, context=None): # only handle resized images do_thumbnail = True style = parse_style(elem.attrib.get("style", "")) if "width" not in style or "height" not in style: do_thumbnail = False src = desanitize(elem.attrib.get("src", "")) if not src.startswith(_files_url): return if not context or "page" not in context: return page = context["page"] try: file = PageFile.objects.get(slug__exact=page.slug, name__exact=file_url_to_name(src)) except PageFile.DoesNotExist: return if do_thumbnail: width = int(style["width"].replace("px", "")) height = int(style["height"].replace("px", "")) escaped_filename = escape_quotes(file.file.name) before = '{%% thumbnail "%s" "%dx%d" as im %%}' % (escaped_filename, width, height) after = "{% endthumbnail %}" # HTML will want to encode {{ }} inside a src, and we don't want that, # so we will just rename it to src_thumb until just before it's output del elem.attrib["src"] elem.attrib["src_thumb"] = "{{ im.url }}" insert_text_before(before, elem) elem.tail = after + (elem.tail or "") else: elem.attrib["src"] = file.file.url info_url = reverse("pages:file-info", args=[page.pretty_slug, file.name]) link = etree.Element("a") link.attrib["href"] = info_url elem.addprevious(link) elem.getparent().remove(elem) link.append(elem) return False