diff --git a/plugins/image_captions/__init__.py b/plugins/image_captions/__init__.py new file mode 100644 index 0000000..ff44901 --- /dev/null +++ b/plugins/image_captions/__init__.py @@ -0,0 +1 @@ +from .image_captions import * diff --git a/plugins/image_captions/image_captions.py b/plugins/image_captions/image_captions.py new file mode 100644 index 0000000..8766128 --- /dev/null +++ b/plugins/image_captions/image_captions.py @@ -0,0 +1,27 @@ +""" +Image Captions +-------------- +In converting from MD to html images are wrapped in

objects. +This plugin gives those paragraphs the 'img' class for styling enhancements. + +Thanks to Low Tech Mag : https://github.com/lowtechmag/ltm-src/blob/master/pelican-plugins/addressable_paragraphs/addressable_paragraphs.py +""" + +from __future__ import unicode_literals +from pelican import signals +from bs4 import BeautifulSoup + +def content_object_init(instance): + + if instance._content is not None: + content = instance._content + soup = BeautifulSoup(content, 'html.parser') + + for p in soup(['p', 'object']): + if p.findChild('img'): + p.attrs['class'] = 'img' + + instance._content = soup.decode() + +def register(): + signals.content_object_init.connect(content_object_init)