Skip to content

Commit dbcb9e3

Browse files
committed
Merge branch 'topic/vadim/images' into 'master'
Support of images by RST backend See merge request eng/ide/gnatdoc!171
2 parents 37ee442 + 73c0164 commit dbcb9e3

6 files changed

+552
-22
lines changed

source/backend/gnatdoc-backend-html_markup.adb

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ with VSS.IRIs;
1919
with VSS.XML.Events;
2020
with VSS.XML.Namespaces;
2121

22+
with Markdown.Attribute_Lists;
2223
with Markdown.Inlines.Visitors;
2324
with Markdown.Block_Containers;
2425
with Markdown.Blocks.Indented_Code;
@@ -41,6 +42,9 @@ package body GNATdoc.Backend.HTML_Markup is
4142
(Self : in out Annotated_Text_Builder;
4243
Text : VSS.Strings.Virtual_String);
4344

45+
overriding procedure Visit_Soft_Line_Break
46+
(Self : in out Annotated_Text_Builder) is null;
47+
4448
overriding procedure Enter_Emphasis
4549
(Self : in out Annotated_Text_Builder);
4650

@@ -62,12 +66,14 @@ package body GNATdoc.Backend.HTML_Markup is
6266
overriding procedure Enter_Image
6367
(Self : in out Annotated_Text_Builder;
6468
Destination : VSS.Strings.Virtual_String;
65-
Title : VSS.Strings.Virtual_String);
69+
Title : VSS.Strings.Virtual_String;
70+
Attributes : Markdown.Attribute_Lists.Attribute_List);
6671

6772
overriding procedure Leave_Image
6873
(Self : in out Annotated_Text_Builder;
6974
Destination : VSS.Strings.Virtual_String;
70-
Title : VSS.Strings.Virtual_String);
75+
Title : VSS.Strings.Virtual_String;
76+
Attributes : Markdown.Attribute_Lists.Attribute_List);
7177

7278
procedure Build_Annotated_Text
7379
(Result : in out VSS.XML.Event_Vectors.Vector;
@@ -229,7 +235,6 @@ package body GNATdoc.Backend.HTML_Markup is
229235

230236
begin
231237
Markdown.Parsers.GNATdoc_Enable (Parser);
232-
Parser.Set_Extensions ((Link_Attributes => True));
233238

234239
for Line of Text loop
235240
Parser.Parse_Line (Line);
@@ -294,7 +299,8 @@ package body GNATdoc.Backend.HTML_Markup is
294299
overriding procedure Enter_Image
295300
(Self : in out Annotated_Text_Builder;
296301
Destination : VSS.Strings.Virtual_String;
297-
Title : VSS.Strings.Virtual_String) is
302+
Title : VSS.Strings.Virtual_String;
303+
Attributes : Markdown.Attribute_Lists.Attribute_List) is
298304
begin
299305
Self.Image := True;
300306
end Enter_Image;
@@ -338,7 +344,8 @@ package body GNATdoc.Backend.HTML_Markup is
338344
overriding procedure Leave_Image
339345
(Self : in out Annotated_Text_Builder;
340346
Destination : VSS.Strings.Virtual_String;
341-
Title : VSS.Strings.Virtual_String)
347+
Title : VSS.Strings.Virtual_String;
348+
Attributes : Markdown.Attribute_Lists.Attribute_List)
342349
is
343350
use type VSS.Strings.Virtual_String;
344351

@@ -354,6 +361,15 @@ package body GNATdoc.Backend.HTML_Markup is
354361
Write_Attribute (Self.Stream, "alt", Self.Text);
355362
end if;
356363

364+
for J in 1 .. Attributes.Length loop
365+
if Attributes.Name (J) = "width" then
366+
Write_Attribute (Self.Stream, "width", Attributes.Value (J));
367+
368+
elsif Attributes.Name (J) = "height" then
369+
Write_Attribute (Self.Stream, "height", Attributes.Value (J));
370+
end if;
371+
end loop;
372+
357373
Write_End_Element (Self.Stream, "img");
358374

359375
Self.Image := False;

source/backend/markdown-inlines-visitors.adb

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,9 @@ package body Markdown.Inlines.Visitors is
4747
when Markdown.Inlines.Text =>
4848
Visitor.Visit_Text (Item.Text);
4949

50+
when Markdown.Inlines.Soft_Line_Break =>
51+
Visitor.Visit_Soft_Line_Break;
52+
5053
when Markdown.Inlines.Start_Emphasis =>
5154
Visitor.Enter_Emphasis;
5255

@@ -72,12 +75,14 @@ package body Markdown.Inlines.Visitors is
7275

7376
Visitor.Enter_Image
7477
(Destination => State.Destination,
75-
Title => State.Title);
78+
Title => State.Title,
79+
Attributes => State.Attributes);
7680

7781
when Markdown.Inlines.End_Image =>
7882
Visitor.Leave_Image
7983
(Destination => State.Destination,
80-
Title => State.Title);
84+
Title => State.Title,
85+
Attributes => State.Attributes);
8186

8287
when others =>
8388
null;

source/backend/markdown-inlines-visitors.ads

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
-- SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
55
--
66

7+
with Markdown.Attribute_Lists;
8+
79
package Markdown.Inlines.Visitors
810
with Preelaborate
911
is
@@ -14,6 +16,9 @@ is
1416
(Self : in out Annotated_Text_Visitor;
1517
Text : VSS.Strings.Virtual_String) is abstract;
1618

19+
not overriding procedure Visit_Soft_Line_Break
20+
(Self : in out Annotated_Text_Visitor) is abstract;
21+
1722
not overriding procedure Enter_Emphasis
1823
(Self : in out Annotated_Text_Visitor) is abstract;
1924

@@ -35,12 +40,14 @@ is
3540
not overriding procedure Enter_Image
3641
(Self : in out Annotated_Text_Visitor;
3742
Destination : VSS.Strings.Virtual_String;
38-
Title : VSS.Strings.Virtual_String) is abstract;
43+
Title : VSS.Strings.Virtual_String;
44+
Attributes : Markdown.Attribute_Lists.Attribute_List) is abstract;
3945

4046
not overriding procedure Leave_Image
4147
(Self : in out Annotated_Text_Visitor;
4248
Destination : VSS.Strings.Virtual_String;
43-
Title : VSS.Strings.Virtual_String) is abstract;
49+
Title : VSS.Strings.Virtual_String;
50+
Attributes : Markdown.Attribute_Lists.Attribute_List) is abstract;
4451

4552
type Annotated_Text_Iterator is tagged limited private;
4653

0 commit comments

Comments
 (0)