Compare commits
No commits in common. "fix-links-without-text" and "main" have entirely different histories.
fix-links-
...
main
|
|
@ -38,9 +38,6 @@ procedure Aqs2mdx is
|
||||||
Wikibook : constant League.Strings.Universal_String :=
|
Wikibook : constant League.Strings.Universal_String :=
|
||||||
+"https://en.wikibooks.org/wiki/";
|
+"https://en.wikibooks.org/wiki/";
|
||||||
|
|
||||||
ClassName : constant League.Strings.Universal_String :=
|
|
||||||
+"className";
|
|
||||||
|
|
||||||
---------------
|
---------------
|
||||||
-- Read_JSON --
|
-- Read_JSON --
|
||||||
---------------
|
---------------
|
||||||
|
|
@ -145,10 +142,10 @@ procedure Aqs2mdx is
|
||||||
Columns_Div : Pandoc.Content_Arr (1 .. Cell_List.Length);
|
Columns_Div : Pandoc.Content_Arr (1 .. Cell_List.Length);
|
||||||
|
|
||||||
Outer_Attr : constant League.JSON.Values.JSON_Value :=
|
Outer_Attr : constant League.JSON.Values.JSON_Value :=
|
||||||
Pandoc.Attr (ClassName, +"multi-column");
|
Pandoc.Attr (+"className", +"multi-column");
|
||||||
|
|
||||||
Inner_Attr : constant League.JSON.Values.JSON_Value :=
|
Inner_Attr : constant League.JSON.Values.JSON_Value :=
|
||||||
Pandoc.Attr (ClassName, +"multi-column-child");
|
Pandoc.Attr (+"className", +"multi-column-child");
|
||||||
|
|
||||||
begin
|
begin
|
||||||
pragma Assert (Content.Length = 6);
|
pragma Assert (Content.Length = 6);
|
||||||
|
|
@ -212,58 +209,6 @@ procedure Aqs2mdx is
|
||||||
return List;
|
return List;
|
||||||
end Traverse_Block;
|
end Traverse_Block;
|
||||||
|
|
||||||
function Fix_Wikilink (Target : League.Strings.Universal_String) return
|
|
||||||
League.Strings.Universal_String
|
|
||||||
is
|
|
||||||
begin
|
|
||||||
if Target.Starts_With ("w:") then
|
|
||||||
return Wiki & Target.Tail_From (3);
|
|
||||||
else
|
|
||||||
return Wikibook & Target;
|
|
||||||
end if;
|
|
||||||
end Fix_Wikilink;
|
|
||||||
|
|
||||||
function Is_Direct_URL (Content : League.JSON.Arrays.JSON_Array) return
|
|
||||||
Boolean
|
|
||||||
is
|
|
||||||
Alt_List : constant League.JSON.Arrays.JSON_Array :=
|
|
||||||
Content (2).To_Array;
|
|
||||||
Target_Tuple : constant League.JSON.Arrays.JSON_Array :=
|
|
||||||
Content (3).To_Array;
|
|
||||||
Target : constant League.Strings.Universal_String :=
|
|
||||||
Target_Tuple (1).To_String;
|
|
||||||
begin
|
|
||||||
if Alt_List.Length /= 1 then
|
|
||||||
return False;
|
|
||||||
else
|
|
||||||
declare
|
|
||||||
Alt_Text_Object : constant League.JSON.Objects.JSON_Object :=
|
|
||||||
Alt_List (1).To_Object;
|
|
||||||
Alt_Text : constant League.Strings.Universal_String :=
|
|
||||||
Alt_Text_Object (Pandoc.Content_String).To_String;
|
|
||||||
begin
|
|
||||||
return Alt_Text = Target;
|
|
||||||
end;
|
|
||||||
end if;
|
|
||||||
end Is_Direct_URL;
|
|
||||||
|
|
||||||
function Create_String (Data : League.Strings.Universal_String) return
|
|
||||||
League.JSON.Values.JSON_Value
|
|
||||||
is
|
|
||||||
Block : League.JSON.Objects.JSON_Object;
|
|
||||||
begin
|
|
||||||
Block.Insert (
|
|
||||||
Pandoc.Type_String,
|
|
||||||
League.JSON.Values.To_JSON_Value (Pandoc.To_String (Inline_String))
|
|
||||||
);
|
|
||||||
Block.Insert (
|
|
||||||
Pandoc.Content_String,
|
|
||||||
League.JSON.Values.To_JSON_Value (Data)
|
|
||||||
);
|
|
||||||
|
|
||||||
return Block.To_JSON_Value;
|
|
||||||
end Create_String;
|
|
||||||
|
|
||||||
-------------------
|
-------------------
|
||||||
-- Traverse_Link --
|
-- Traverse_Link --
|
||||||
-------------------
|
-------------------
|
||||||
|
|
@ -273,25 +218,20 @@ procedure Aqs2mdx is
|
||||||
is
|
is
|
||||||
Copy : League.JSON.Objects.JSON_Object := Block;
|
Copy : League.JSON.Objects.JSON_Object := Block;
|
||||||
Args : League.JSON.Arrays.JSON_Array := Copy (+"c").To_Array;
|
Args : League.JSON.Arrays.JSON_Array := Copy (+"c").To_Array;
|
||||||
Link : League.JSON.Arrays.JSON_Array := Args (3).To_Array;
|
Fix : League.JSON.Arrays.JSON_Array := Args (3).To_Array;
|
||||||
Target : constant League.Strings.Universal_String := Link (1).To_String;
|
Link : League.Strings.Universal_String := Fix (1).To_String;
|
||||||
Title : constant League.Strings.Universal_String := Link (2).To_String;
|
|
||||||
begin
|
begin
|
||||||
|
if Fix (2).To_String.To_Wide_Wide_String = "wikilink" then
|
||||||
if Title = +"wikilink" then
|
if Link.Starts_With ("w:") then
|
||||||
if Is_Direct_URL (Args) then
|
Link := Wiki & Link.Tail_From (3);
|
||||||
return Create_String (Fix_Wikilink (Target));
|
|
||||||
else
|
else
|
||||||
Link.Replace (1, League.JSON.Values.To_JSON_Value (
|
Link := Wikibook & Link;
|
||||||
Fix_Wikilink (Target)));
|
|
||||||
Link.Replace (2, League.JSON.Values.To_JSON_Value (+""));
|
|
||||||
Args.Replace (3, Link.To_JSON_Value);
|
|
||||||
Copy.Insert (Pandoc.Content_String, Args.To_JSON_Value);
|
|
||||||
end if;
|
|
||||||
else
|
|
||||||
if Is_Direct_URL (Args) then
|
|
||||||
return Create_String (Target);
|
|
||||||
end if;
|
end if;
|
||||||
|
|
||||||
|
Fix.Replace (1, League.JSON.Values.To_JSON_Value (Link));
|
||||||
|
Fix.Replace (2, League.JSON.Values.To_JSON_Value (+""));
|
||||||
|
Args.Replace (3, Fix.To_JSON_Value);
|
||||||
|
Copy.Insert (+"c", Args.To_JSON_Value);
|
||||||
end if;
|
end if;
|
||||||
|
|
||||||
return Copy.To_JSON_Value;
|
return Copy.To_JSON_Value;
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ package body Pandoc is
|
||||||
Block.Insert (
|
Block.Insert (
|
||||||
Type_String,
|
Type_String,
|
||||||
League.JSON.Values.To_JSON_Value (
|
League.JSON.Values.To_JSON_Value (
|
||||||
To_String (Block_Div)
|
Obj_String_Representation (Block_Div)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -80,7 +80,7 @@ package body Pandoc is
|
||||||
Block.Insert (
|
Block.Insert (
|
||||||
Type_String,
|
Type_String,
|
||||||
League.JSON.Values.To_JSON_Value (
|
League.JSON.Values.To_JSON_Value (
|
||||||
To_String (Block_Div)
|
Obj_String_Representation (Block_Div)
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -98,15 +98,12 @@ package body Pandoc is
|
||||||
function Get_Type (B : League.JSON.Objects.JSON_Object)
|
function Get_Type (B : League.JSON.Objects.JSON_Object)
|
||||||
return Object_Type is (Type_Mapping (B (Type_String).To_String));
|
return Object_Type is (Type_Mapping (B (Type_String).To_String));
|
||||||
|
|
||||||
function To_String (T : Object_Type) return League.Strings.Universal_String
|
|
||||||
is (Obj_String_Representation (T));
|
|
||||||
|
|
||||||
begin
|
begin
|
||||||
|
|
||||||
for Key in Object_Type loop
|
for Key in Object_Type loop
|
||||||
declare
|
declare
|
||||||
Str_Rep : constant League.Strings.Universal_String :=
|
Str_Rep : constant League.Strings.Universal_String :=
|
||||||
To_String (Key);
|
Obj_String_Representation (Key);
|
||||||
begin
|
begin
|
||||||
Type_Mapping.Insert (Str_Rep, Key);
|
Type_Mapping.Insert (Str_Rep, Key);
|
||||||
end;
|
end;
|
||||||
|
|
|
||||||
|
|
@ -51,8 +51,6 @@ package Pandoc is
|
||||||
|
|
||||||
function Get_Type (B : League.JSON.Objects.JSON_Object) return Object_Type;
|
function Get_Type (B : League.JSON.Objects.JSON_Object) return Object_Type;
|
||||||
|
|
||||||
function To_String (T : Object_Type) return League.Strings.Universal_String;
|
|
||||||
|
|
||||||
function "+" (T : Wide_Wide_String) return League.Strings.Universal_String
|
function "+" (T : Wide_Wide_String) return League.Strings.Universal_String
|
||||||
renames League.Strings.To_Universal_String;
|
renames League.Strings.To_Universal_String;
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user