You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
28 lines
774 B
28 lines
774 B
6 years ago
|
"""
|
||
|
Image Captions
|
||
|
--------------
|
||
|
In converting from MD to html images are wrapped in <p> 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)
|