Skip to main content

C++ API Reference

FAzimuthMarkdownParser

Declared in AzimuthMarkdownParserStatics.h.

static TArray<FMarkdownBlock> Parse(const FString& Input);

Parses raw markdown text into an array of FMarkdownBlock structs (the Abstract Syntax Tree). Each block represents a line-level element (paragraph, header, list item, code block, etc.) and contains an array of FMarkdownSpan structs representing inline formatting (bold, italic, links, etc.).

Phase 1 (Block-level): Scans line by line, classifying each line by its prefix (headers, list markers, code fences, etc.).

Phase 2 (Inline): Within each block, scans for inline delimiters (**, *, `, ~~, [) and builds formatted spans using a delimiter-stack approach.

FAzimuthMarkdownRenderer

Declared in AzimuthMarkdownRenderer.h.

static FString RenderToTaggedText(
const TArray<FMarkdownBlock>& Blocks,
const FMarkdownTagMapping& TagMapping);

static FString RenderToPlainText(
const TArray<FMarkdownBlock>& Blocks);

static FString SanitizeUnicodeSymbols(const FString& Input);
  • RenderToTaggedText walks the AST and emits <TagName>content</> formatted strings using the provided tag mapping. Block-level tags wrap their content; inline tags wrap individual spans.
  • RenderToPlainText walks the same AST but emits clean text with no markup. Suitable for clipboard, export, or logging.
  • SanitizeUnicodeSymbols performs a replacement pass over the string, converting Unicode symbols to ASCII equivalents. Handles both BMP characters and supplementary plane emoji (surrogate pairs).

FMarkdownTagMapping

Declared in AzimuthMarkdownTagMapping.h.

A plain struct mapping markdown element types to DataTable row name strings. See Appendix B for the full default mapping.

// Get the default mapping
const FMarkdownTagMapping& Mapping = GetDefaultAzimuthTagMapping();

// Or construct a custom one
FMarkdownTagMapping Custom;
Custom.Bold = TEXT("MyBoldStyle");
Custom.Header1 = TEXT("TitleRow");

Data Types

Declared in AzimuthMarkdownTypes.h.

TypeDescription
EMarkdownBlockTypeEnum: Paragraph, Header1-6, BulletListItem, NumberedListItem, CodeBlock, BlockQuote, HorizontalRule, BlankLine
EMarkdownSpanTypeEnum: PlainText, Bold, Italic, BoldItalic, InlineCode, Strikethrough, Link
FMarkdownSpanStruct: Type, Content, Url (for links only)
FMarkdownBlockStruct: Type, Spans array, Language (for code blocks), ListIndex (for numbered lists), IndentLevel