59 if (
Argument.AssociatedObjectValue is
string s)
88 StringBuilder Markdown =
new StringBuilder();
90 return Markdown.ToString();
101 int Rows = Matrix.
Rows;
108 foreach (
string Name
in OM.ColumnNames)
110 Markdown.Append(
"| ");
112 Markdown.Append(
' ');
117 for (Col = 1; Col <= Cols; Col++)
119 Markdown.Append(
"| ");
120 Markdown.Append(Col.ToString());
121 Markdown.Append(
' ');
125 Markdown.AppendLine(
"|");
127 for (Col = 0; Col < Cols; Col++)
129 switch (ColumnAlignment(Matrix, Col))
132 Markdown.Append(
"|:--");
136 Markdown.Append(
"|:-:");
140 Markdown.Append(
"|--:");
144 Markdown.Append(
"|---");
149 Markdown.AppendLine(
"|");
153 for (Row = 0; Row < Rows; Row++)
155 for (Col = 0; Col < Cols; Col++)
157 Markdown.Append(
"| ");
161 if (!(E?.AssociatedObjectValue is
null))
167 string NoteId =
"n" + Guid.NewGuid().ToString().Replace(
"-",
string.Empty);
172 Notes.
Add(
new KeyValuePair<string, string>(NoteId, s));
174 Markdown.Append(
"[^");
175 Markdown.Append(NoteId);
176 Markdown.Append(
']');
181 Markdown.Append(
' ');
185 Markdown.AppendLine(
"|");
191 while (!(Loop is
null))
193 for (i = Loop.
Start, c = Loop.
Pos; i < c; i++)
195 KeyValuePair<string, string> Note = Loop[i];
197 Markdown.AppendLine();
198 Markdown.Append(
"[^");
199 Markdown.Append(Note.Key);
200 Markdown.Append(
"]:");
202 foreach (
string Row2
in Note.Value.Replace(
"\r\n",
"\n").Replace(
'\r',
'\n').Split(
'\n'))
204 Markdown.Append(
'\t');
205 Markdown.AppendLine(Row2);
216 int Rows = Matrix.
Rows;
222 for (Row = 0; Row < Rows; Row++)
232 else if (Obj is
double)
234 else if (Obj is
bool)
238 switch (Convert.GetTypeCode(Obj))
240 case TypeCode.Boolean:
245 case TypeCode.DateTime:
246 case TypeCode.String:
251 case TypeCode.Decimal:
252 case TypeCode.Double:
257 case TypeCode.Single:
258 case TypeCode.UInt16:
259 case TypeCode.UInt32:
260 case TypeCode.UInt64:
265 case TypeCode.Object:
271 if (!Result.HasValue)
273 else if (Result.Value != Cell)
290 private static string EnumerableToMarkdown(IEnumerable<IElement> Elements)
292 StringBuilder Markdown =
new StringBuilder();
296 Markdown.AppendLine(
ToString(E) ??
string.Empty);
297 Markdown.AppendLine();
300 return Markdown.ToString();
320 StringBuilder Markdown =
new StringBuilder();
322 return Markdown.ToString();
332 Markdown.AppendLine(
"```graph");
334 Markdown.AppendLine();
335 Markdown.AppendLine(
"```");
336 Markdown.AppendLine();
345 StringBuilder Markdown =
new StringBuilder();
347 return Markdown.ToString();
359 Markdown.AppendLine(
"```image/png");
360 Markdown.AppendLine(Convert.ToBase64String(Bin));
361 Markdown.AppendLine(
"```");
362 Markdown.AppendLine();
371 StringBuilder Markdown =
new StringBuilder();
373 return Markdown.ToString();
383 using (SKData Data = Image.Encode(SKEncodedImageFormat.Png, 100))
385 byte[] Bin = Data.ToArray();
387 Markdown.AppendLine(
"```image/png");
388 Markdown.AppendLine(Convert.ToBase64String(Bin));
389 Markdown.AppendLine(
"```");
390 Markdown.AppendLine();
Helps with parsing of commong data types.
static readonly char[] CRLF
Contains the CR LF character sequence.
Converts an element to a markdown string.
override string FunctionName
Name of the function
static void PixelsToMarkdown(PixelInformation Pixels, StringBuilder Markdown)
Converts pixels to Markdown.
static void ImageToMarkdown(SKImage Image, StringBuilder Markdown)
Converts an image to Markdown.
override IElement Evaluate(IElement Argument, Variables Variables)
Evaluates the function.
static string ImageToMarkdown(SKImage Image)
Converts an image to Markdown.
static string MatrixToMarkdown(IMatrix Matrix)
Converts a matrix to Markdown.
static string SetToMarkdown(ISet Set)
Converts a set to Markdown.
static string PixelsToMarkdown(PixelInformation Pixels)
Converts pixels to Markdown.
static void GraphToMarkdown(Graph Graph, StringBuilder Markdown)
Converts a graph to Markdown.
static string Evaluate(IElement Argument)
Converts an element to a markdown string.
static string GraphToMarkdown(Graph Graph)
Converts a graph to Markdown.
static string VectorToMarkdown(IVector Vector)
Converts a vector to Markdown.
ToMarkdown(ScriptNode Argument, int Start, int Length, Expression Expression)
Converts an element to a markdown string.
static void MatrixToMarkdown(IMatrix Matrix, StringBuilder Markdown)
Converts a matrix to Markdown.
Contains a markdown document. This markdown document class supports original markdown,...
static string Encode(string s)
Encodes all special characters in a string so that it can be included in a markdown document without ...
Node referencing a chunk in a ChunkedList<T>
ChunkNode< T > Next
Next chunk
int Pos
Index after the last element in chunk.
int Start
Index of first element in chunk.
A chunked list is a linked list of chunks of objects of type T .
ChunkNode< T > FirstChunk
First chunk
void Add(T Item)
Adds an item to the collection.
Base class for all types of sets.
override ICollection< IElement > ChildElements
An enumeration of child elements. If the element is a scalar, this property will return null.
Class managing a script expression.
string ToXml()
Exports the graph to XML.
Base class for funcions of one variable.
ScriptNode Argument
Function argument.
Base class for all nodes in a parsed script tree.
int Length
Length of expression covered by node.
override string ToString()
int Start
Start position in script expression.
bool HasColumnNames
If the matrix has column names defined.
ToMatrix(ScriptNode Operand, bool NullCheck, int Start, int Length, Expression Expression)
To-Matrix operator.
Basic interface for all types of elements.
object AssociatedObjectValue
Associated object value.
ICollection< IElement > ChildElements
An enumeration of child elements. If the element is a scalar, this property will return null.
Basic interface for matrices.
int Columns
Number of columns.
IElement GetElement(int Column, int Row)
Gets an element of the matrix.
Basic interface for vectors.
Basic interface for all types of sets.
Interface for objects that can be converted into matrices.
TextAlignment
Text alignment of contents.