Coverage for pyquickhelper/sphinxext/sphinximages/sphinxcontrib_images_lightbox2/lightbox2_backend.py: 73%
22 statements
« prev ^ index » next coverage.py v7.2.7, created at 2023-06-03 02:21 +0200
« prev ^ index » next coverage.py v7.2.7, created at 2023-06-03 02:21 +0200
1"""
2@file
3@brief Defines the backend for directive ``image``.
4"""
5from ..backend import Backend
8class LightBox2(Backend):
9 """
10 Backend for sphinx directive ``image``.
11 """
12 STATIC_FILES = (
13 'lightbox2/css/lightbox.css',
14 'lightbox2/js/jquery-1.11.0.min.js',
15 'lightbox2/js/lightbox.min.js',
16 'lightbox2_customize/jquery-noconflict.js',
17 'lightbox2/js/lightbox.min.map',
18 'lightbox2/img/close.png',
19 'lightbox2/img/next.png',
20 'lightbox2/img/prev.png',
21 'lightbox2/img/loading.gif',
22 )
24 def visit_image_node_html(self, writer, node):
25 "translator method"
26 # make links local (for local images only)
27 builder = self._app.builder
28 if node['uri'] in builder.images:
29 node['uri'] = '/'.join([builder.imgpath,
30 builder.images[node['uri']]])
32 if node['show_caption'] is True:
33 writer.body.append(
34 f'''<figure class="{' '.join(node['classes'])}">
35 ''')
36 if node['legacy_classes']:
37 writer.body.append(
38 f"<a class=\"{' '.join(node['legacy_classes'])}\"")
39 else:
40 writer.body.append('''<a ''')
41 else:
42 writer.body.append(f'''<a class="{' '.join(node['classes'])}\"''')
43 if node['target']:
44 writer.body.append(f" href=\"{node['target']}\" ")
45 writer.body.append(
46 '''
47 data-lightbox="{group}"
48 href="{href}"
49 title="{title}"
50 data-title="{title}"
51 >'''.format(group='group-%s' % node['group'] if node['group'] else node['uri'],
52 href=node['uri'],
53 title=node['title'] + node['content'],
54 ))
55 writer.body.append(
56 '''<img src="{src}"
57 class="{cls}"
58 width="{width}"
59 height="{height}"
60 alt="{alt}"/>
61 '''.format(src=node['uri'],
62 cls='align-%s' % node['align'] if node['align'] else '',
63 width=node['size'][0],
64 height=node['size'][1],
65 alt=node['alt']))
66 # , title=node['title']))
68 def depart_image_node_html(self, writer, node):
69 "translator method"
70 writer.body.append('</a>')
71 if node['show_caption'] is True:
72 writer.body.append(f'''<figcaption>{node['title']}</figcaption>
73 ''')
74 writer.body.append('</figure>')