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.
| Type | Description |
|---|---|
EMarkdownBlockType | Enum: Paragraph, Header1-6, BulletListItem, NumberedListItem, CodeBlock, BlockQuote, HorizontalRule, BlankLine |
EMarkdownSpanType | Enum: PlainText, Bold, Italic, BoldItalic, InlineCode, Strikethrough, Link |
FMarkdownSpan | Struct: Type, Content, Url (for links only) |
FMarkdownBlock | Struct: Type, Spans array, Language (for code blocks), ListIndex (for numbered lists), IndentLevel |