From 07bc43a62d8619899819d9f15cc3a36e666982e3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Vladim=C3=ADr=20Vondru=C5=A1?= Date: Mon, 11 Sep 2017 17:18:30 +0200 Subject: [PATCH] m.images: add outer
with all classes if the image has a target. To match the expectations of m.css. --- pelican-plugins/m/images.py | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/pelican-plugins/m/images.py b/pelican-plugins/m/images.py index fe9d1c28..db12467d 100644 --- a/pelican-plugins/m/images.py +++ b/pelican-plugins/m/images.py @@ -30,6 +30,8 @@ class Image(Directive): - the align, scale, width, height options removed (handled better by m.css) - .m-image CSS class added + - adding a outer container for clickable image to make the clickable area + cover only the image """ required_arguments = 1 @@ -40,6 +42,8 @@ class Image(Directive): 'class': directives.class_option, 'target': directives.unchanged_required} + image_class = 'm-image' + def run(self): messages = [] reference = directives.uri(self.arguments[0]) @@ -63,16 +67,26 @@ class Image(Directive): messages.append(data) # data is a system message del self.options['target'] - # Add some sane default class to the image + # Remove the classes from the image element, will be added either to it + # or to the wrapping element later set_classes(self.options) - self.options.setdefault('classes', []).append('m-image') - + classes = self.options.get('classes', []) + if 'classes' in self.options: del self.options['classes'] image_node = nodes.image(self.block_text, **self.options) + self.add_name(image_node) if reference_node: - reference_node += image_node - return messages + [reference_node] + if self.image_class: + container_node = nodes.container() + container_node['classes'] += [self.image_class] + classes + reference_node += image_node + container_node += reference_node + return messages + [container_node] + else: + reference_node += image_node + return messages + [reference_node] else: + if self.image_class: image_node['classes'] += [self.image_class] + classes return messages + [image_node] class ImageGrid(rst.Directive): -- 2.30.2