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

1""" 

2@file 

3@brief Defines the backend for directive ``image``. 

4""" 

5from ..backend import Backend 

6 

7 

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 ) 

23 

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']]]) 

31 

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'])) 

67 

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>')