mirror of
https://github.com/AdaCore/markdown.git
synced 2026-02-12 13:11:15 -08:00
47 lines
1.5 KiB
Ada
47 lines
1.5 KiB
Ada
--
|
|
-- Copyright (C) 2021-2023, AdaCore
|
|
--
|
|
-- SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
|
--
|
|
|
|
-- Markdown indented code block elements
|
|
|
|
with VSS.String_Vectors;
|
|
private with Markdown.Implementation.Indented_Code_Blocks;
|
|
|
|
package Markdown.Blocks.Indented_Code is
|
|
pragma Preelaborate;
|
|
|
|
type Indented_Code_Block is tagged private;
|
|
-- An indented code block is composed of one or more indented chunks
|
|
-- separated by blank lines. An indented chunk is a sequence of non-blank
|
|
-- lines, each indented four or more spaces. The contents of the code block
|
|
-- are the literal contents of the lines, including trailing line endings,
|
|
-- minus four spaces of indentation. An indented code block has no info
|
|
-- string.
|
|
|
|
function Text (Self : Indented_Code_Block)
|
|
return VSS.String_Vectors.Virtual_String_Vector;
|
|
-- Return nested code lines
|
|
|
|
function To_Block (Self : Indented_Code_Block) return Markdown.Blocks.Block;
|
|
-- Convert to Block type
|
|
|
|
function From_Block (Self : Markdown.Blocks.Block)
|
|
return Indented_Code_Block;
|
|
-- Convert the Block to Indented_Code_Block
|
|
|
|
private
|
|
|
|
type Indented_Code_Block_Access is access all
|
|
Markdown.Implementation.Indented_Code_Blocks.Indented_Code_Block'Class;
|
|
|
|
type Indented_Code_Block is new Ada.Finalization.Controlled with record
|
|
Data : Indented_Code_Block_Access;
|
|
end record;
|
|
|
|
overriding procedure Adjust (Self : in out Indented_Code_Block);
|
|
overriding procedure Finalize (Self : in out Indented_Code_Block);
|
|
|
|
end Markdown.Blocks.Indented_Code;
|