public void Message(string message)
{
System.Console.ForegroundColor = ConsoleColor.Gray;
bool inEmphasis = false;
bool inExample = false;
bool inHeading = false;
bool isEscaping = false;
System.Console.Write(IndentString);
foreach (var ch in message)
{
if (ch == '*' && !isEscaping)
{
inEmphasis = !inEmphasis;
ChangeColor(inEmphasis, inExample, inHeading);
}
else if (ch == '`' && !isEscaping)
{
inExample = !inExample;
ChangeColor(inEmphasis, inExample, inHeading);
}
else if (ch == '=' && !isEscaping)
{
inHeading = !inHeading;
ChangeColor(inEmphasis, inExample, inHeading);
}
else
{
System.Console.Write(ch);
}
isEscaping = ch == '\\';
}
System.Console.ForegroundColor = ConsoleColor.Gray;
System.Console.WriteLine();
}