1818with VSS.IRIs ;
1919with VSS.XML.Events ;
2020
21+ with Markdown.Attribute_Lists ;
2122with Markdown.Inlines.Visitors ;
2223with Markdown.Block_Containers ;
2324with Markdown.Blocks.Indented_Code ;
@@ -36,6 +37,9 @@ package body GNATdoc.Backend.ODF_Markup is
3637 VSS.IRIs.To_IRI (" urn:oasis:names:tc:opendocument:xmlns:office:1.0" );
3738 Text_Namespace : constant VSS.IRIs.IRI :=
3839 VSS.IRIs.To_IRI (" urn:oasis:names:tc:opendocument:xmlns:text:1.0" );
40+ SVG_Namespace : constant VSS.IRIs.IRI :=
41+ VSS.IRIs.To_IRI
42+ (" urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0" );
3943
4044 Binary_Data_Element : constant VSS.Strings.Virtual_String := " binary-data" ;
4145 Frame_Element : constant VSS.Strings.Virtual_String := " frame" ;
@@ -45,8 +49,9 @@ package body GNATdoc.Backend.ODF_Markup is
4549 List_Item_Element : constant VSS.Strings.Virtual_String := " list-item" ;
4650 P_Element : constant VSS.Strings.Virtual_String := " p" ;
4751
48- Style_Name_Attribute : constant VSS.Strings.Virtual_String :=
49- " style-name" ;
52+ Height_Attribute : constant VSS.Strings.Virtual_String := " height" ;
53+ Style_Name_Attribute : constant VSS.Strings.Virtual_String := " style-name" ;
54+ Width_Attribute : constant VSS.Strings.Virtual_String := " width" ;
5055
5156 GNATdoc_Paragraph_Style : constant VSS.Strings.Virtual_String :=
5257 " GNATdoc_20_paragraph" ;
@@ -68,6 +73,9 @@ package body GNATdoc.Backend.ODF_Markup is
6873 (Self : in out Annotated_Text_Builder;
6974 Text : VSS.Strings.Virtual_String);
7075
76+ overriding procedure Visit_Soft_Line_Break
77+ (Self : in out Annotated_Text_Builder) is null ;
78+
7179 overriding procedure Enter_Emphasis
7280 (Self : in out Annotated_Text_Builder);
7381
@@ -89,12 +97,14 @@ package body GNATdoc.Backend.ODF_Markup is
8997 overriding procedure Enter_Image
9098 (Self : in out Annotated_Text_Builder;
9199 Destination : VSS.Strings.Virtual_String;
92- Title : VSS.Strings.Virtual_String);
100+ Title : VSS.Strings.Virtual_String;
101+ Attributes : Markdown.Attribute_Lists.Attribute_List);
93102
94103 overriding procedure Leave_Image
95104 (Self : in out Annotated_Text_Builder;
96105 Destination : VSS.Strings.Virtual_String;
97- Title : VSS.Strings.Virtual_String);
106+ Title : VSS.Strings.Virtual_String;
107+ Attributes : Markdown.Attribute_Lists.Attribute_List);
98108
99109 procedure Build_Annotated_Text
100110 (Result : in out VSS.XML.Event_Vectors.Vector;
@@ -375,8 +385,11 @@ package body GNATdoc.Backend.ODF_Markup is
375385 overriding procedure Enter_Image
376386 (Self : in out Annotated_Text_Builder;
377387 Destination : VSS.Strings.Virtual_String;
378- Title : VSS.Strings.Virtual_String)
388+ Title : VSS.Strings.Virtual_String;
389+ Attributes : Markdown.Attribute_Lists.Attribute_List)
379390 is
391+ use type VSS.Strings.Virtual_String;
392+
380393 Encoded_Content : VSS.Strings.Virtual_String;
381394
382395 begin
@@ -386,6 +399,18 @@ package body GNATdoc.Backend.ODF_Markup is
386399 (Destination, Encoded_Content);
387400
388401 Write_Start_Element (Self.Stream, Draw_Namespace, Frame_Element);
402+
403+ for Attribute of Attributes loop
404+ if Attribute.Name = " width" then
405+ Write_Attribute
406+ (Self.Stream, SVG_Namespace, Width_Attribute, Attribute.Value);
407+
408+ elsif Attribute.Name = " height" then
409+ Write_Attribute
410+ (Self.Stream, SVG_Namespace, Height_Attribute, Attribute.Value);
411+ end if ;
412+ end loop ;
413+
389414 Write_Start_Element (Self.Stream, Draw_Namespace, Image_Element);
390415 Write_Start_Element (Self.Stream, Office_Namespace, Binary_Data_Element);
391416 Write_Text (Self.Stream, Encoded_Content);
@@ -448,7 +473,8 @@ package body GNATdoc.Backend.ODF_Markup is
448473 overriding procedure Leave_Image
449474 (Self : in out Annotated_Text_Builder;
450475 Destination : VSS.Strings.Virtual_String;
451- Title : VSS.Strings.Virtual_String) is
476+ Title : VSS.Strings.Virtual_String;
477+ Attributes : Markdown.Attribute_Lists.Attribute_List) is
452478 begin
453479 Write_End_Element (Self.Stream, Office_Namespace, Binary_Data_Element);
454480 Write_End_Element (Self.Stream, Draw_Namespace, Image_Element);
0 commit comments