initial commit

This commit is contained in:
2026-05-14 01:49:48 +03:00
commit 208d34864e
15 changed files with 172 additions and 0 deletions
+10
View File
@@ -0,0 +1,10 @@
#pragma once
#include "Node.h"
#include "InlineNode.h"
#include <vector>
#include <string>
struct BlockNode : public Node {
virtual ~BlockNode() = default;
};
+11
View File
@@ -0,0 +1,11 @@
#pragma once
#include "BlockNode.h"
struct CodeBlock : public BlockNode {
std::string code;
NodeKind getKind() const {
return NodeKind::CodeBlock;
}
};
+12
View File
@@ -0,0 +1,12 @@
#pragma once
#include "BlockNode.h"
struct Header : public BlockNode {
std::string headerText;
std::vector<std::unique_ptr<InlineNode>> children;
NodeKind getKind() const {
return NodeKind::Header;
}
};
+12
View File
@@ -0,0 +1,12 @@
#pragma once
#include "BlockNode.h"
#include "ListItem.h"
struct List : public BlockNode {
std::vector<std::unique_ptr<ListItem>> children;
NodeKind getKind() const {
return NodeKind::List;
}
};
+11
View File
@@ -0,0 +1,11 @@
#pragma once
#include "BlockNode.h"
struct ListItem : public BlockNode {
std::vector<std::unique_ptr<InlineNode>> children;
NodeKind getKind() const {
return NodeKind::ListItem;
}
};
+11
View File
@@ -0,0 +1,11 @@
#pragma once
#include "BlockNode.h"
struct Paragraph : public BlockNode {
std::vector<std::unique_ptr<InlineNode>> children;
NodeKind getKind() const {
return NodeKind::Paragraph;
}
};
+11
View File
@@ -0,0 +1,11 @@
#pragma once
#include "InlineNode.h"
struct Bold : public InlineNode {
std::vector<std::unique_ptr<InlineNode>> children;
NodeKind getKind() const {
return NodeKind::Bold;
}
};
+11
View File
@@ -0,0 +1,11 @@
#pragma once
#include "InlineNode.h"
struct InlineCode : public InlineNode {
std::string inlineCodeString;
NodeKind getKind() const {
return NodeKind::InlineCode;
}
};
+7
View File
@@ -0,0 +1,7 @@
#pragma once
#include "Node.h"
struct InlineNode : public Node {
virtual ~InlineNode() = default;
};
+11
View File
@@ -0,0 +1,11 @@
#pragma once
#include "InlineNode.h"
struct Italic : public InlineNode {
std::vector<std::unique_ptr<InlineNode>> children;
NodeKind getKind() const {
return NodeKind::Italic;
}
};
+12
View File
@@ -0,0 +1,12 @@
#pragma once
#include "InlineNode.h"
struct Link : public InlineNode {
std::string url;
std::vector<std::unique_ptr<InlineNode>> children;
NodeKind getKind() const {
return NodeKind::Link;
}
};
+11
View File
@@ -0,0 +1,11 @@
#pragma once
#include "InlineNode.h"
struct Text : public InlineNode {
std::string text;
NodeKind getKind() const {
return NodeKind::Text;
}
};
+10
View File
@@ -0,0 +1,10 @@
#pragma once
#include <memory>
#include <vector>
#include "NodeKind.h"
struct Node {
virtual ~Node() = default;
virtual NodeKind getKind() const = 0;
};
+15
View File
@@ -0,0 +1,15 @@
#pragma once
enum class NodeKind {
CodeBlock,
Header,
List,
ListItem,
Paragraph,
Bold,
InlineCode,
Italic,
Link,
Text
};